1 2023-06-13 Piotr Trojanek <trojanek@adacore.com>
3 * sem_aggr.adb (Resolve_Iterated_Component_Association): Simply resolve
6 2023-06-13 Bob Duff <duff@adacore.com>
9 (Expand_N_Quantified_Expression): Detect the secondary-stack
10 case, and find the innermost scope where we should mark/release,
11 and Set_Uses_Sec_Stack on that. Skip intermediate blocks and loops
12 that are part of expansion.
14 2023-06-13 Piotr Trojanek <trojanek@adacore.com>
16 * sem_util.adb (Is_Repeatedly_Evaluated): Recognize iterated component
17 association as repeatedly evaluated.
19 2023-06-13 Piotr Trojanek <trojanek@adacore.com>
21 * sem_util.adb (Is_Potentially_Unevaluated): Recognize iterated
22 component association as potentially unevaluated.
24 2023-06-13 Piotr Trojanek <trojanek@adacore.com>
26 * sem_res.adb (Resolve_Call): Replace early call to
27 In_Quantified_Expression with a call to Is_Potentially_Unevaluated that
28 was only done when Full_Analysis is true.
30 2023-06-13 Piotr Trojanek <trojanek@adacore.com>
32 * aspects.ads (Aspect_Id): Add new aspect.
33 (Implementation_Defined_Aspect): New aspect is
34 implementation-defined.
35 (Aspect_Argument): New aspect has an expression argument.
36 (Is_Representation_Aspect): New aspect is not a representation
38 (Aspect_Names): Link new aspect identifier with a name.
39 (Aspect_Delay): New aspect is never delayed.
40 * contracts.adb (Expand_Subprogram_Contract): Mention new aspect
42 (Add_Contract_Item): Attach pragma corresponding to the new aspect
44 (Analyze_Entry_Or_Subprogram_Contract): Analyze pragma
45 corresponding to the new aspect that appears with subprogram spec.
46 (Analyze_Subprogram_Body_Stub_Contract): Expand pragma
47 corresponding to the new aspect.
49 (Add_Contract_Item, Analyze_Entry_Or_Subprogram_Contract)
50 (Analyze_Entry_Or_Subprogram_Body_Contract)
51 (Analyze_Subprogram_Body_Stub_Contract): Mention new aspect in
53 * einfo-utils.adb (Get_Pragma): Return pragma attached to
55 * einfo-utils.ads (Get_Pragma): Mention new contract in comment.
56 * exp_prag.adb (Expand_Pragma_Always_Terminates): Placeholder for
57 possibly expanding new aspect.
58 * exp_prag.ads (Expand_Pragma_Always_Terminates): Dedicated
59 routine for expansion of the new aspect.
60 * inline.adb (Remove_Aspects_And_Pragmas): Remove aspect from
62 * par-prag.adb (Prag): Postpone checking of the pragma until
64 * sem_ch12.adb: Mention new aspect in explanation of handling
65 contracts on generic units.
66 * sem_ch13.adb (Analyze_Aspect_Specifications): Convert new aspect
67 into a corresponding pragma.
68 (Check_Aspect_At_Freeze_Point): Don't expect new aspect.
69 * sem_prag.adb (Analyze_Always_Terminates_In_Decl_Part): Analyze
70 pragma corresponding to the new aspect.
71 (Analyze_Pragma): Handle pragma corresponding to the new aspect.
72 (Is_Non_Significant_Pragma_Reference): Handle references appearing
74 * sem_prag.ads (Aspect_Specifying_Pragma): New aspect can be
75 emulated with a pragma.
76 (Assertion_Expression_Pragma): New aspect has an assertion
78 (Pragma_Significant_To_Subprograms): New aspect is significant to
80 (Analyze_Always_Terminates_In_Decl_Part): Add spec for routine
81 that analyses new aspect.
82 (Find_Related_Declaration_Or_Body): Mention new aspect in comment.
83 * sem_util.adb (Is_Subprogram_Contract_Annotation): New aspect is
84 a subprogram contract annotation.
85 * sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new
87 * sinfo.ads (Is_Generic_Contract_Pragma): New pragma is a generic
89 (Contract): Explain attaching new pragma to subprogram contract.
90 * snames.ads-tmpl (Name_Always_Terminates): New name for the new
92 (Pragma_Always_Terminates): New pragma identifier.
94 2023-06-13 Piotr Trojanek <trojanek@adacore.com>
96 * sem_elab.adb (Check_Overriding_Primitive): Prevent Corresponding_Body
97 to be called with entity of an abstract subprogram.
99 2023-06-13 Eric Botcazou <ebotcazou@adacore.com>
101 * sem_ch12.adb (Save_References_In_Identifier): In the case where
102 the identifier has been turned into a function call by analysis,
103 call Set_Global_Type on the entity if it is global.
105 2023-06-13 Marc Poulhiès <poulhies@adacore.com>
107 * sem_aggr.adb (Resolve_Iterated_Component_Association): Call
108 Preanalyze_And_Resolve instead of Resolve_Aggr_Expr except for
110 Co-authored-by: Ed Schonberg <schonberg@adacore.com>
112 2023-06-13 Eric Botcazou <ebotcazou@adacore.com>
114 * contracts.adb (Contract_Error): New exception.
115 (Add_Contract_Item): Raise Contract_Error instead of Program_Error.
116 (Add_Generic_Contract_Pragma): Deal with Contract_Error.
118 2023-06-13 Eric Botcazou <ebotcazou@adacore.com>
120 * sem_attr.adb (Eval_Attribute): Add more exceptions to the early
121 return for a prefix which is a nonfrozen generic actual type.
122 * sem_ch12.adb (Copy_Generic_Node): Also check private views in the
123 case of an entity name or operator analyzed as a function call.
124 (Set_Global_Type): Make it a child of Save_Global_References.
125 (Save_References_In_Operator): In the case where the operator has
126 been turned into a function call, call Set_Global_Type on the entity
129 2023-06-13 Eric Botcazou <ebotcazou@adacore.com>
131 * contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): For a
132 subprogram body that has no contracts and does not come from source,
133 make sure that contracts on its corresponding spec are analyzed, if
134 any, before expanding them.
136 2023-06-13 Eric Botcazou <ebotcazou@adacore.com>
138 * gen_il-fields.ads (Opt_Field_Enum): Add No_Finalize_Actions and
139 remove No_Side_Effect_Removal.
140 * gen_il-gen-gen_nodes.adb (N_Function_Call): Remove semantic flag
141 No_Side_Effect_Removal
142 (N_Assignment_Statement): Add semantic flag No_Finalize_Actions.
143 * sinfo.ads (No_Ctrl_Actions): Adjust comment.
144 (No_Finalize_Actions): New flag on assignment statements.
145 (No_Side_Effect_Removal): Delete.
146 * exp_aggr.adb (Build_Record_Aggr_Code): Remove obsolete comment and
147 Ancestor_Is_Expression variable. In the case of an extension, do
148 not generate a call to Adjust manually, call Set_No_Finalize_Actions
149 instead. Do not set the tags, replace call to Make_Unsuppress_Block
150 by Make_Suppress_Block and remove useless assertions.
151 In the general case, call Initialize_Component.
152 (Initialize_Controlled_Component): Delete.
153 (Initialize_Simple_Component): Delete.
154 (Initialize_Component): Do the low-level processing, but do not
155 generate a call to Adjust manually, call Set_No_Finalize_Actions.
156 (Process_Transient_Component): Delete.
157 (Process_Transient_Component_Completion): Likewise.
158 * exp_ch5.adb (Expand_Assign_Array): Deal with No_Finalize_Actions.
159 (Expand_Assign_Array_Loop): Likewise.
160 (Expand_N_Assignment_Statement): Likewise.
161 (Make_Tag_Ctrl_Assignment): Likewise.
162 * exp_util.adb (Remove_Side_Effects): Do not test the
163 No_Side_Effect_Removal flag.
164 * sem_prag.adb (Process_Suppress_Unsuppress): Give the warning in
165 SPARK mode only for pragma Suppress.
166 * tbuild.ads (Make_Suppress_Block): New declaration.
167 (Make_Unsuppress_Block): Adjust comment.
168 * tbuild.adb (Make_Suppress_Block): New procedure.
169 (Make_Unsuppress_Block): Unsuppress instead of suppressing.
171 2023-06-13 Eric Botcazou <ebotcazou@adacore.com>
173 * sem_ch5.adb (Analyze_Assignment): Turn Rhs into a constant and
174 remove calls to the following subprograms.
175 (Transform_BIP_Assignment): Delete.
176 (Should_Transform_BIP_Assignment): Likewise.
178 2023-06-13 Piotr Trojanek <trojanek@adacore.com>
180 * sem_util.ads (Is_Inherited_Operation_For_Type): Remove spec.
181 * sem_util.adb (Is_Inherited_Operation_For_Type): Remove body.
183 2023-06-13 Eric Botcazou <ebotcazou@adacore.com>
185 * exp_aggr.adb (Build_Record_Aggr_Code): Add new variable Ancestor_Q
186 to store the result of Unqualify on Ancestor. Remove the dead call
187 to Generate_Finalization_Actions in the case of another aggregate as
188 ancestor part. Remove the redundant setting of Assignment_OK. Use
189 Init_Typ in lieu of Etype (Ancestor) more consistently.
191 2023-06-13 Eric Botcazou <ebotcazou@adacore.com>
193 * exp_aggr.adb (Build_Record_Aggr_Code): In the case of an extension
194 aggregate of a limited type whose ancestor part is an aggregate, do
195 not skip the final code assigning the tag of the extension.
197 2023-06-13 Yannick Moy <moy@adacore.com>
199 * ghost.adb (Check_Ghost_Context): Allow absence of Ghost_Id
200 for attribute. Update error message to mention Ghost_Predicate.
201 (Is_Ghost_Attribute_Reference): New query.
202 * ghost.ads (Is_Ghost_Attribute_Reference): New query.
203 * sem_attr.adb (Resolve_Attribute): Check ghost context for ghost
206 2023-06-13 Daniel King <dmking@adacore.com>
208 * libgnat/s-stoele.ads: Add No_Elaboration_Code_All pragma.
210 2023-06-13 Eric Botcazou <ebotcazou@adacore.com>
212 * exp_util.ads (Make_Tag_Assignment_From_Type): Declare.
213 * exp_util.adb (Make_Tag_Assignment_From_Type): New function.
214 * exp_aggr.adb (Build_Record_Aggr_Code): Call the above function.
215 (Initialize_Simple_Component): Likewise.
216 * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Likewise.
217 (Build_Record_Init_Proc.Build_Init_Procedure ): Likewise.
218 (Make_Tag_Assignment): Likewise. Rename local variable and call
219 Unqualify to go through qualified expressions.
220 * exp_ch4.adb (Expand_Allocator_Expression): Likewise.
222 2023-06-13 Yannick Moy <moy@adacore.com>
224 * libgnat/a-strsup.ads: Change predicate aspect.
225 * sem_ch13.adb (Add_Predicate): Fix for first predicate.
227 2023-06-13 Eric Botcazou <ebotcazou@adacore.com>
229 * exp_aggr.adb (Initialize_Component): Perform immediate expansion
230 of the initialization expression if it is a conditional expression
231 and the component type is controlled.
233 2023-06-13 Eric Botcazou <ebotcazou@adacore.com>
235 * exp_aggr.adb (Initialize_Component): New procedure factored out
236 from the processing of array and record aggregates.
237 (Initialize_Controlled_Component): Likewise.
238 (Initialize_Simple_Component): Likewise.
239 (Build_Array_Aggr_Code.Gen_Assign): Remove In_Loop parameter.
240 Call Initialize_Component to initialize the component.
241 (Initialize_Array_Component): Delete.
242 (Initialize_Ctrl_Array_Component): Likewise.
243 (Build_Array_Aggr_Code): Adjust calls to Gen_Assign.
244 (Build_Record_Aggr_Code): Call Initialize_Simple_Component or
245 Initialize_Component to initialize the component.
246 (Initialize_Ctrl_Record_Component): Delete.
247 (Initialize_Record_Component): Likewise.
249 2023-06-13 Piotr Trojanek <trojanek@adacore.com>
251 * exp_ch11.adb (Expand_N_Raise_Statement): Expansion of raise statements
252 never happens in GNATprove mode.
254 2023-06-13 Piotr Trojanek <trojanek@adacore.com>
256 * exp_ch11.adb (Find_Local_Handler): Replace guard against other
257 constructs appearing in the list of exception handlers with iteration
258 using First_Non_Pragma/Next_Non_Pragma.
260 2023-06-13 Piotr Trojanek <trojanek@adacore.com>
262 * exp_ch11.ads (Find_Local_Handler): Fix typo in comment.
263 * exp_ch11.adb (Find_Local_Handler): Remove redundant check for the
264 Exception_Handler list being present; use membership test to eliminate
265 local object LCN; fold nested IF statements. Remove useless ELSIF
268 2023-06-13 Piotr Trojanek <trojanek@adacore.com>
270 * sem_util.adb (Check_Function_Writable_Actuals): Tune style; use
271 subtype name to detect membership test nodes.
273 2023-06-13 Piotr Trojanek <trojanek@adacore.com>
275 * exp_disp.adb (Make_Disp_Asynchronous_Select_Spec): Use a single call
278 2023-06-13 Yannick Moy <moy@adacore.com>
280 * doc/gnat_rm/implementation_defined_aspects.rst: Document new
282 * doc/gnat_rm/implementation_defined_pragmas.rst: Whitespace.
283 * aspects.adb (Init_Canonical_Aspect): Set it to Predicate.
284 * aspects.ads: Set global constants for new aspect.
285 * einfo.ads: Describe new flag related to new aspect.
286 * exp_ch6.adb (Can_Fold_Predicate_Call): Do not fold new aspect.
287 * exp_util.adb (Make_Predicate_Check): Add comment.
288 * gen_il-fields.ads: Add new flag.
289 * gen_il-gen-gen_entities.adb: Add new flag.
290 * ghost.adb (Is_OK_Ghost_Context): Ghost predicate is an OK
292 (Mark_Ghost_Pragma): Add overloading with ghost mode parameter.
293 * ghost.ads (Mark_Ghost_Pragma): Add overloading with ghpst mode
295 (Name_To_Ghost_Mode): Make function public.
296 * sem_aggr.adb: Issue error for violation of valid use.
297 * sem_case.adb: Issue error for violation of valid use.
298 * sem_ch13.adb: Adapt for new aspect.
299 * sem_ch3.adb (Analyze_Full_Type_Declaration): Remove dead code
300 which was trying to propagate Has_Predicates flag in the wrong
301 direction (from derived to parent type).
302 (Analyze_Number_Declaration): Issue error for violation of valid
304 (Build_Derived_Type): Cleanup inheritance of predicate flags from
305 parent to derived type.
306 (Build_Predicate_Function): Only add a predicate check when it
307 is not ignored as Ghost code.
308 * sem_ch4.adb (Analyze_Membership_Op): Issue an error for use of
309 a subtype with a ghost predicate as name in a membership test.
310 * sem_ch5.adb (Check_Predicate_Use): Issue error for violation of
312 * sem_eval.adb: Adapt code for Dynamic_Predicate to account for
314 * sem_prag.adb (Analyze_Pragma): Make pragma ghost or not.
315 * sem_util.adb (Bad_Predicated_Subtype_Use): Adapt to new aspect.
316 (Inherit_Predicate_Flags): Add inheritance of flag. Add parameter
317 to apply to derived types.
318 * sem_util.ads (Inherit_Predicate_Flags): Change signature.
319 * snames.ads-tmpl: Add new aspect name.
320 * gnat_rm.texi: Regenerate.
322 2023-06-13 Piotr Trojanek <trojanek@adacore.com>
324 * exp_ch3.adb (Make_Controlling_Function_Wrappers): Remove early
327 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
329 * gcc-interface/trans.cc (get_storage_model_access): Also strip any
330 type conversion in the node when unwinding the components.
332 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
334 * gcc-interface/trans.cc (node_is_component): Remove parentheses.
335 (node_is_type_conversion): New predicate.
336 (get_atomic_access): Use it.
337 (get_storage_model_access): Likewise and look into the parent to
338 find a component if it returns true.
339 (present_in_lhs_or_actual_p): Likewise.
341 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
343 * gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Check that
344 the storage model has Copy_From before instantiating loads for it.
345 <Attr_Length>: Likewise.
346 <Attr_Bit_Position>: Likewise.
347 (gnat_to_gnu) <N_Indexed_Component>: Likewise.
350 2023-05-30 Marc Poulhiès <poulhies@adacore.com>
352 * gcc-interface/trans.cc (Attribute_to_gnu): Also strip conversion
355 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
357 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a
358 local variable for the GNAT index type.
359 <E_Array_Subtype>: Likewise. Call Is_Null_Range on the bounds and
360 force the zero on TYPE_SIZE and TYPE_SIZE_UNIT if it returns true.
362 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
364 * gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: Test the
365 precision of the operation rather than that of the result type.
367 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
369 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Replace
370 integer_zero_node with null_pointer_node for pointer types.
371 * gcc-interface/trans.cc (gnat_gimplify_expr) <NULL_EXPR>: Likewise.
372 * gcc-interface/utils.cc (maybe_pad_type): Do not attempt to make a
373 packable type from a fat pointer type.
374 * gcc-interface/utils2.cc (build_atomic_load): Use a local variable.
375 (build_atomic_store): Likewise.
377 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
379 * gcc-interface/misc.cc (internal_error_function): Be prepared for
380 an input_location set to UNKNOWN_LOCATION.
382 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
384 * gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Tweak.
385 (gnat_to_gnu) <N_Assignment_Statement>: Declare a local variable.
386 For a target with a storage model, use the Actual_Designated_Subtype
387 to compute the size if it is present.
389 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
391 * gcc-interface/trans.cc (Call_to_gnu): Remove code implementing the
392 by-copy semantics for actuals with nonnative storage models.
393 (gnat_to_gnu) <N_Assignment_Statement>: Remove code instantiating a
394 temporary for assignments between nonnative storage models.
396 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
398 * gcc-interface/decl.cc (range_cannot_be_superflat): Return true
399 immediately if Cannot_Be_Superflat is set.
400 * gcc-interface/misc.cc (gnat_post_options): Do not override the
401 -Wstringop-overflow setting.
403 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
405 * gcc-interface/Make-lang.in (ADA_CFLAGS): Move up.
406 (ALL_ADAFLAGS): Add $(NO_PIE_CFLAGS).
407 (ada/mdll.o): Remove.
408 (ada/mdll-fil.o): Likewise.
409 (ada/mdll-utl.o): Likewise.
411 2023-05-30 Marc Poulhiès <poulhies@adacore.com>
413 * gcc-interface/trans.cc (get_storage_model_access): Don't require
414 storage model access for dereference used as lvalue or renamings.
416 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
418 * exp_aggr.adb (Build_Array_Aggr_Code): Move the declaration of Typ
420 (Initialize_Array_Component): Test the unqualified version of the
421 expression for the nested array case.
422 (Initialize_Ctrl_Array_Component): Do not duplicate the expression
423 here. Do the pattern matching of the unqualified version of it.
424 (Gen_Assign): Call Unqualify to compute Expr_Q and use Expr_Q in
425 subsequent pattern matching.
426 (Initialize_Ctrl_Record_Component): Do the pattern matching of the
427 unqualified version of the aggregate.
428 (Build_Record_Aggr_Code): Call Unqualify.
429 (Convert_Aggr_In_Assignment): Likewise.
430 (Convert_Aggr_In_Object_Decl): Likewise.
431 (Component_OK_For_Backend): Likewise.
432 (Is_Delayed_Aggregate): Likewise.
434 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
436 * exp_aggr.adb (Build_Array_Aggr_Code.Get_Assoc_Expr): Duplicate the
437 expression here instead of...
438 (Build_Array_Aggr_Code): ...here.
440 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
442 * freeze.adb (Check_Large_Modular_Array): Fix head comment, use
443 Standard_Long_Long_Integer_Size directly and generate a reference
444 just before the raise statement if the Etype of the object is an
445 itype declared in an open scope.
447 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
449 * exp_ch7.adb (Find_Enclosing_Transient_Scope): Return the index in
450 the scope table instead of the scope's entity.
451 (Establish_Transient_Scope): If an enclosing scope already exists,
452 do not set the Uses_Sec_Stack flag on it if the node to be wrapped
453 is a return statement which requires secondary stack management.
455 2023-05-30 Joel Brobecker <brobecker@adacore.com>
457 * Makefile.rtl: Use libgnat/s-tsmona__linux.adb on
458 aarch64-linux. Link libgnat with -ldl, as the use of
459 s-tsmona__linux.adb requires it.
461 2023-05-30 Piotr Trojanek <trojanek@adacore.com>
464 (Build_Access_Subprogram_Wrapper_Body): Build wrapper body if requested
465 by routine that builds wrapper spec.
467 (Analyze_Full_Type_Declaration): Only build wrapper when expander is
469 (Build_Access_Subprogram_Wrapper):
470 Remove special-case for GNATprove.
472 2023-05-30 Ronan Desplanques <desplanques@adacore.com>
474 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix minor issues.
475 * doc/gnat_ugn/the_gnat_compilation_model.rst: Fix minor issues.
476 * gnat_ugn.texi: Regenerate.
478 2023-05-30 Johannes Kliemann <kliemann@adacore.com>
480 * libgnat/s-parame.adb: Check that Default_Stack_Size >=
482 * libgnat/s-parame__rtems.adb: Ditto.
483 * libgnat/s-parame__vxworks.adb: Check that Default_Stack_Size >=
484 Minimum_Stack_size and use the proper Minimum_Stack_Size if
485 Stack_Check_Limits is enabled.
487 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
489 * sem_res.adb (Resolve_Call): Restrict previous change to calls that
490 return on the same stack as the enclosing function. Tidy up.
492 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
494 * libgnat/a-cidlli.adb (Put_Image): Simplify.
495 * libgnat/a-coinve.adb (Put_Image): Likewise.
497 2023-05-30 Eric Botcazou <ebotcazou@adacore.com>
499 * exp_util.adb (Build_DIC_Procedure_Body.Add_Own_DIC): When inside
500 a generic unit, preanalyze the expression directly.
501 (Build_Invariant_Procedure_Body.Add_Own_Invariants): Likewise.
503 2023-05-30 Cedric Landet <landet@adacore.com>
505 * init.c: Replace FIXME by ???
507 2023-05-29 Cedric Landet <landet@adacore.com>
509 * s-oscons-tmplt.c: move the definition of sigset out of the
512 2023-05-29 Cedric Landet <landet@adacore.com>
514 * Makefile.rtl: Move g-spogwa$(objext) from GNATRTL_NONTASKING_OBJS
515 to GNATRTL_SOCKETS_OBJS
517 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
519 * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec in
520 both cases to copy the spec of the subprogram.
522 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
524 * exp_ch7.adb (Establish_Transient_Scope.Find_Transient_Context):
525 Bail out for a simple return statement only if the transient scope
526 and the function both require secondary stack management, or else
527 if the function is a thunk.
528 * sem_res.adb (Resolve_Call): Do not create a transient scope when
529 the call is the expression of a simple return statement.
531 2023-05-29 Patrick Bernardi <bernardi@adacore.com>
533 * libgnat/a-excach.adb (Call_Chain): Replace
534 Code_Address_For_AAA/ZZZ functions with AAA/ZZZ'Code_Address.
535 * libgnat/a-except.adb (Code_Address_For_AAA/ZZZ): Delete.
536 (AAA/ZZZ): New null procedures.
537 * libgnat/g-debpoo.adb
538 (Code_Address_For_Allocate_End): Delete.
539 (Code_Address_For_Deallocate_End): Delete.
540 (Code_Address_For_Dereference_End): Delete.
541 (Allocate): Remove label and use Code_Address attribute to
542 determine subprogram addresses.
543 (Dellocate): Likewise.
544 (Dereference): Likewise.
545 (Allocate_End): Convert to null procedure.
546 (Dellocate_End): Likewise.
547 (Dereference_End): Likewise.
549 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
551 * exp_ch6.adb (Expand_Simple_Function_Return): Call Insert_Actions
552 consistently when rewriting the expression.
554 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
556 * exp_util.adb (Is_Finalizable_Transient.Is_Indexed_Container):
557 New predicate to detect a temporary created to hold the result of
558 a constant indexing on a container.
559 (Is_Finalizable_Transient.Is_Iterated_Container): Adjust a couple
560 of obsolete comments.
561 (Is_Finalizable_Transient): Return False if Is_Indexed_Container
562 returns True on the object.
564 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
566 * sem_res.adb (Has_Applicable_User_Defined_Literal): Make it clear
567 that the predicate also checks the node itself.
568 (Try_User_Defined_Literal): Move current implementation to...
569 Deal only with literals, named numbers and conditional expressions
570 whose dependent expressions are literals or named numbers.
571 (Try_User_Defined_Literal_For_Operator): ...this. Remove multiple
572 return False statements and put a single one at the end.
573 (Resolve): Call Try_User_Defined_Literal instead of directly
574 Has_Applicable_User_Defined_Literal for all nodes. Call
575 Try_User_Defined_Literal_For_Operator for operator nodes.
577 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
579 * sem_res.adb (Invoked_With_Different_Arguments): Use Get_Called_Entity,
580 which properly deals with calls via an access-to-subprogram; fix
581 inconsistent use of a Call object declared in enclosing subprogram.
583 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
586 (Add_Pre_Post_Condition): Attach pre/post aspects to E_Subprogram_Type
588 (Analyze_Entry_Or_Subprogram_Contract): Adapt to use full type
589 declaration for a contract attached to E_Subprogram_Type entity.
591 (Analyze_Pre_Post_Condition): Add pre/post aspects to the designed type.
593 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
595 * sem_util.adb (Check_Function_Writable_Actuals): Remove guard against
596 a membership test with no alternatives; simplify with a membership test.
598 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
600 * doc/gnat_ugn/gnat_and_program_execution.rst
601 (Some Useful Memory Pools): Remove extra whitespace from examples.
602 * sem_aggr.adb (Make_String_Into_Aggregate): Remove extra whitespace.
603 * gnat_ugn.texi: Regenerate.
605 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
607 * exp_aggr.adb (Convert_Aggr_In_Allocator): Replace Get_TSS_Name
608 with a high-level Is_TSS.
609 * sem_ch6.adb (Check_Conformance): Replace DECLARE block and
610 nested IF with a call to Get_TSS_Name and a membership test.
611 (Has_Reliable_Extra_Formals): Refactor repeated calls to
613 * sem_disp.adb (Check_Dispatching_Operation): Replace repeated
614 calls to Get_TSS_Name with a membership test.
616 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
618 * exp_ch5.adb (Expand_N_Case_Statement): Do not remove the statement
619 if it is the node to be wrapped by a transient scope.
621 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
623 * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Do not defer
624 anything to the back-end when the main unit is generic.
626 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
628 * sem_res.adb (Try_User_Defined_Literal): Restrict previous change
631 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
633 * sem_res.adb (Try_User_Defined_Literal): For arithmetic operators,
634 also accept operands whose type is covered by the resolution type.
636 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
638 * exp_aggr.adb (Initialize_Array_Component): Fix condition detecting
639 the nested case that requires an adjustment.
641 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
643 * exp_ch4.adb (Expand_N_In): Deal specifically with a null operand.
645 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
647 * exp_ch6.adb (Expand_Simple_Function_Return): Deal with a rewriting
648 of the simple return during the adjustment of its expression.
650 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
652 * exp_ch4.adb (Expand_N_Case_Expression): Distribute simple return
653 statements enclosing the conditional expression into the dependent
654 expressions in almost all cases.
655 (Expand_N_If_Expression): Likewise.
656 (Process_Transient_In_Expression): Adjust to the above distribution.
657 * exp_ch6.adb (Expand_Ctrl_Function_Call): Deal with calls in the
658 dependent expressions of a conditional expression.
659 * sem_ch6.adb (Analyze_Function_Return): Deal with the rewriting of
660 a simple return statement during the resolution of its expression.
662 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
664 * sem_res.adb (Resolve_Entity_Name): Refine rules for Exceptional_Cases.
666 2023-05-29 Marc Poulhiès <poulhies@adacore.com>
668 * exp_aggr.adb (Convert_To_Assignments): Do not mark node for
669 delayed expansion if parent type has the Aggregate aspect.
670 * sem_util.adb (Is_Container_Aggregate): Move...
671 * sem_util.ads (Is_Container_Aggregate): ... here and make it
674 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
676 * sem_res.adb (Resolve_Entity_Name): Relax rules for Exceptional_Cases.
678 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
680 * sem_ch4.ads (Unresolved_Operator): New procedure.
681 * sem_ch4.adb (Has_Possible_Literal_Aspects): Rename into...
682 (Has_Possible_User_Defined_Literal): ...this. Tidy up.
683 (Operator_Check): Accept again unresolved operators if they have a
684 possible user-defined literal as operand. Factor out the handling
685 of the general error message into...
686 (Unresolved_Operator): ...this new procedure.
687 * sem_res.adb (Resolve): Be prepared for unresolved operators on
688 entry in Ada 2022 or later. If they are still unresolved on exit,
689 call Unresolved_Operator to give the error message.
690 (Try_User_Defined_Literal): Tidy up.
692 2023-05-29 Steve Baird <baird@adacore.com>
695 (Expand_N_Object_Declaration.Default_Initialize_Object): Add test for
696 specified Default_Component_Value aspect when deciding whether
697 either Initialize_Scalars or Normalize_Scalars impacts default
698 initialization of an array object.
700 2023-05-29 Javier Miranda <miranda@adacore.com>
703 (Resolve_Record_Aggregate): For aggregates of derived tagged
704 record types with discriminants, when collecting components
705 from ancestors, pass to subprogram Gather_Components the
706 parent type. Required to report errors on wrong aggregate
709 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
711 * sem_util.adb (Check_Result_And_Post_State): Replace low-level
712 navigation with a high-level Unique_Entity.
714 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
716 * sem_util.adb (Check_Result_And_Post_State): Properly handle entry
719 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
721 * contracts.adb (Fix_Parent): Fir part both for lists and nodes.
723 2023-05-29 Arnaud Charlet <charlet@adacore.com>
725 * sem_ch7.adb: Refine handling of inlining for CCG
727 2023-05-29 Eric Botcazou <ebotcazou@adacore.com>
729 * sem_ch12.adb (Copy_Generic_Node): Test the original node kind
730 for the sake of consistency. For identifiers and other entity
731 names and operators, accept an expanded name as associated node.
732 Replace "or" with "or else" in condtion and fix its formatting.
734 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
736 * sem_util.adb (Check_Result_And_Post_State): Tune message.
738 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
740 * contracts.adb (Remove_Formals): Remove.
741 (Preanalyze_Condition): Replace Pop_Scope with End_Scope.
742 * sem_ch13.adb (Build_Discrete_Static_Predicate): Replace
743 Pop_Scope with End_Scope; enclose Install_Formals within
744 Push_Scope/End_Scope.
746 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
748 * sem_prag.adb (Analyze_Pre_Post_Condition): Tune error message.
750 2023-05-29 Javier Miranda <miranda@adacore.com>
752 * scans.ads (Inside_Interpolated_String_Expression): New variable.
753 * par-ch2.adb (P_Interpolated_String_Literal): Set/clear new
754 variable when parsing interpolated string expressions.
755 * scng.adb (Set_String): Skip processing operator symbols when we
756 arescanning an interpolated string literal.
758 2023-05-29 Johannes Kliemann <kliemann@adacore.com>
760 * Makefile.rtl (QNX): Use s-parame__qnx.adb for s-parame.adb.
761 * libgnat/s-parame__qnx.adb: Add QNX specific version of
764 2023-05-29 Yannick Moy <moy@adacore.com>
766 * libgnat/a-ngelfu.ads: Restore SPARK_Mode from context.
768 2023-05-29 Marc Poulhiès <poulhies@adacore.com>
770 * contracts.adb (Restore_Original_Selected_Component): Adjust assertion.
772 2023-05-29 Piotr Trojanek <trojanek@adacore.com>
775 (Add_Pre_Post_Condition): Adapt to handle pre/post of an
776 access-to-subprogram type.
777 (Analyze_Type_Contract): Analyze pre/post of an
778 access-to-subprogram.
780 (Analyze_Type_Contract): Adapt comment.
782 (Build_Access_Subprogram_Wrapper): Copy pre/post aspects to
783 wrapper spec and keep it on the type.
785 (Analyze_Pre_Post_Condition): Expect pre/post aspects on
786 access-to-subprogram and complain if they appear without -gnat2022
788 (Analyze_Pre_Post_Condition_In_Decl_Part): Adapt to handle
789 pre/post on an access-to-subprogram type entity.
790 * sem_attr.adb (Analyze_Attribute_Old_Result): Likewise.
793 2023-05-26 Bob Duff <duff@adacore.com>
796 (Build_Derived_Record_Type): Temporarily set the state of the
797 Derived_Type to "self-hidden" while processing constraints
798 and discriminants of a record extension.
800 2023-05-26 Bob Duff <duff@adacore.com>
802 * einfo.ads: Add comma.
803 * contracts.adb: Fix typos.
804 * exp_attr.adb: Likewise.
805 * exp_ch5.adb: Likewise.
806 * exp_ch6.adb: Likewise.
807 * lib-xref.adb: Likewise.
809 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
811 * debug.adb (d.N): Document new usage.
812 * exp_ch4.adb (Expand_N_Type_Conversion): Copy the Float_Truncate
813 flag when rewriting a floating-point to fixed-point conversion as
814 a floating-point to integer conversion.
815 * exp_fixd.adb: Add with and use clauses for Debug.
816 (Expand_Convert_Fixed_To_Fixed): Generate a truncation in all cases
817 except if the result is explicitly rounded.
818 (Expand_Convert_Integer_To_Fixed): Likewise.
819 (Expand_Convert_Float_To_Fixed): Generate a truncation for all kind
820 of fixed-point types, except if the result is explicitly rounded, or
821 -gnatd.N is specified and the type is an ordinary fixed-point type.
822 * sinfo.ads (Float_Truncate): Document usage for floating-point to
823 fixed-point conversions.
825 2023-05-26 Javier Miranda <miranda@adacore.com>
828 (Expand_N_Allocator): If an allocator with constraints is called
829 in the return statement of a function returning a general access
830 type, then propagate to the itype the master of the general
831 access type (since it is the master associated with the
834 2023-05-26 Yannick Moy <moy@adacore.com>
836 * sem_aggr.adb (Resolve_Record_Aggregate): Add dummy initialization and
837 assertion that clarifies when we reassigned to a useful value.
839 2023-05-26 Yannick Moy <moy@adacore.com>
841 * doc/gnat_rm/gnat_language_extensions.rst: Be more explicit on
842 pattern matching limitation.
843 * gnat_rm.texi: Regenerate.
844 * gnat_ugn.texi: Regenerate.
846 2023-05-26 Yannick Moy <moy@adacore.com>
848 * libgnat/a-calend.ads: Mark with SPARK_Mode=>Off the functions which may
850 * libgnat/a-ngelfu.ads: Mark with SPARK_Mode=>Off the functions which may
851 lead to an overflow (which is not the case of Tan with one parameter for
852 example, or Arctanh or Arcoth, despite their mathematical range covering
854 * libgnat/a-textio.ads: Remove Always_Return annotation from functions, as
855 this is now compulsory for functions to always return in SPARK.
856 * libgnat/i-cstrin.ads: Add Might_Not_Return annotation to Update procedure
857 which may not return.
859 2023-05-26 Bob Duff <duff@adacore.com>
861 * exp_put_image.adb (Build_Image_Call): Treat 'Img the same as
863 * exp_imgv.adb (Expand_Image_Attribute): If Discard_Names, expand
864 to 'Image instead of 'Img.
865 * snames.ads-tmpl, par-ch4.adb, sem_attr.adb, sem_attr.ads:
866 Cleanups: Rename Attribute_Class_Array to be Attribute_Set. Remove
867 unnecessary qualifications. DRY: Don't repeat "True".
869 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
871 * sem_prag.adb (Record_Possible_Body_Reference): Remove call to Present.
872 * sem_util.adb (Find_Untagged_Type_Of): Likewise.
874 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
876 * exp_aggr.adb (Initialize_Array_Component): Remove obsolete code.
877 (Expand_Array_Aggregate): In the case where a temporary is created
878 and the parent is an assignment statement with No_Ctrl_Actions set,
879 set Is_Ignored_Transient on the temporary.
881 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
883 * sem_ch12.adb (Instantiate_Package_Body): Set the ghost mode to
884 that of the instance only after loading the generic's parent.
885 (Instantiate_Subprogram_Body): Likewise.
887 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
889 * exp_ch4.adb (Expand_Set_Membership): Simplify by using Evolve_Or_Else.
891 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
893 * exp_ch4.adb (Is_OK_Object_Reference): Replace loop with a call to
894 Unqual_Conv; consequently, change object from variable to constant;
895 replace an IF statement with an AND THEN expression.
897 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
900 (Build_Entry_Count_Expression): Remove loop over component declaration;
901 consequently remove a parameter that is no longer used; adapt callers.
902 (Make_Task_Create_Call): Refine type of a local variable.
904 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
906 * sem_cat.adb (Check_Non_Static_Default_Expr): Detect components inside
907 loop, not in the loop condition itself.
909 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
911 * libgnat/a-cbdlli.ads (List): Move Nodes component to the end.
913 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
915 * libgnat/a-crdlli.ads (List): Move Nodes component to the end.
917 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
919 * sem_attr.adb (Is_Thin_Pointer_To_Unc_Array): New predicate.
920 (Resolve_Attribute): Apply the static matching legality rule to an
921 Unrestricted_Access attribute applied to an aliased prefix if the
922 type is a thin pointer. Call Is_Thin_Pointer_To_Unc_Array for the
923 aliasing legality rule as well.
925 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
927 * sem_util.adb (Is_Null_Record_Definition): Use First_Non_Pragma and
928 Next_Non_Pragma to ignore pragmas within component list.
930 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
932 * sem_prag.adb (Get_Argument): Improve detection of generic units.
934 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
936 * sem_ch4.adb (Check_Action_OK): Replace low-level test with a
938 * sem_ch13.adb (Is_Predicate_Static): Likewise.
940 2023-05-26 Javier Miranda <miranda@adacore.com>
943 (Expand_N_Conditional_Entry_Call): Factorize code to avoid
944 duplicating subtrees; required to avoid problems when the copied
945 code has implicit labels.
946 * sem_util.ads (New_Copy_Separate_List): Removed.
947 (New_Copy_Separate_Tree): Removed.
948 * sem_util.adb (New_Copy_Separate_List): Removed.
949 (New_Copy_Separate_Tree): Removed.
951 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
953 * sem_ch13.adb (Check_Component_List): Local variable Compl is now
954 a constant; a nested block is no longer needed.
956 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
959 (Resolve_Record_Aggregate): Remove useless assignment.
961 (Has_Variant_Part): Remove useless guard; this routine is only called
962 on type entities (and now will crash in other cases).
964 (Create_Constrained_Components): Only assign Assoc_List when necessary;
966 (Is_Variant_Record): Refactor repeated calls to Parent.
968 (Gather_Components): Assert that discriminant association has just one
969 choice in component_association; refactor repeated calls to Next.
971 (Gather_Components): Tune whitespace in comment.
973 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
975 * sem_ch3.adb (Check_CPP_Type_Has_No_Defaults): Iterate with
976 First_Non_Pragma and Next_Non_Pragma.
977 * exp_dist.adb (Append_Record_Traversal): Likewise.
979 2023-05-26 Javier Miranda <miranda@adacore.com>
981 * exp_ch9.adb (Build_Class_Wide_Master): Remember internal blocks
982 that have a task master entity declaration.
983 (Build_Master_Entity): Code cleanup.
984 * sem_util.ads (Is_Internal_Block): New subprogram.
985 * sem_util.adb (Is_Internal_Block): New subprogram.
987 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
989 * sem_util.adb (Gather_Components): Remove guard for empty list of
992 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
994 * back_end.adb (Call_Back_End): Add gigi_standard_address to the
995 signature of the gigi procedure and alphabetize other parameters.
996 Pass Standard_Address as actual parameter for it.
997 * cstand.adb (Create_Standard): Do not set Is_Descendant_Of_Address
999 * gcc-interface/gigi.h (gigi): Add a standard_address parameter and
1001 * gcc-interface/trans.cc (gigi): Likewise. Record a builtin address
1002 type and save it as the type for Standard.Address.
1004 2023-05-26 Ghjuvan Lacambre <lacambre@adacore.com>
1006 * exp_disp.adb (Expand_Dispatching_Call): Handle new Controlling_Tag.
1007 * sem_scil.adb (Check_SCIL_Node): Treat N_Object_Renaming_Declaration as
1008 N_Object_Declaration.
1010 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
1013 (Build_Constrained_Type): Remove local constants that were shadowing
1014 equivalent global constants; replace a wrapper that calls
1015 Make_Integer_Literal with a numeric literal; remove explicit
1016 Aliased_Present parameter which is equivalent to the default value.
1017 (Check_Bounds): Remove unused initial value.
1018 (Expand_Array_Aggregate): Use aggregate type from the context.
1020 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
1022 * einfo.ads (Delay_Cleanups): Document new usage.
1023 * exp_ch7.ads (Build_Finalizer): New declaration.
1024 * exp_ch7.adb (Build_Finalizer.Process_Declarations): Do not treat
1025 library-level package instantiations specially.
1026 (Build_Finalizer): Return early for package bodies and specs that
1027 are not compilation units instead of using a more convoluted test.
1028 (Expand_N_Package_Body): Do not build a finalizer if Delay_Cleanups
1029 is set on the defining entity.
1030 (Expand_N_Package_Declaration): Likewise.
1031 * inline.ads (Pending_Body_Info): Reorder and add Fin_Scop.
1032 (Add_Pending_Instantiation): Add Fin_Scop parameter.
1033 * inline.adb (Add_Pending_Instantiation): Likewise and copy it into
1034 the Pending_Body_Info appended to Pending_Instantiations.
1035 (Add_Scope_To_Clean): Change parameter name to Scop and remove now
1036 irrelevant processing.
1037 (Cleanup_Scopes): Deal with scopes that are package specs or bodies.
1038 (Instantiate_Body): For package instantiations, deal specially with
1039 scopes that are package bodies and with scopes that are dynamic.
1040 Pass the resulting scope to Add_Scope_To_Clean directly.
1041 * sem_ch12.adb (Analyze_Package_Instantiation): In the case where a
1042 body is needed, compute the enclosing finalization scope and pass it
1043 in the call to Add_Pending_Instantiation.
1044 (Inline_Instance_Body): Adjust aggregate passed in the calls to
1045 Instantiate_Package_Body.
1046 (Load_Parent_Of_Generic): Likewise.
1048 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
1050 * sem_util.adb (Compile_Time_Constraint_Error): Test the Ekind.
1052 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
1054 * exp_aggr.adb (Build_Constrained_Type): Use List_Length to count
1055 expressions in consecutive subaggregates.
1057 2023-05-26 Doug Rupp <rupp@adacore.com>
1059 * libgnarl/s-osinte__qnx.ads (sigset_t): Modify
1060 declaration to use system.os_constants computed
1063 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
1065 * exp_sel.adb: Add clauses for Sem_Util, remove them for Opt, Sinfo
1067 (Build_K): Always use 'Tag of the object.
1068 (Build_S_Assignment): Likewise.
1070 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
1073 (Is_Formal_Of_Current_Function): This routine expects an entity
1074 reference and not the entity itself, so its parameter is a Node_Id
1075 and not an Entity_Id.
1077 2023-05-26 Piotr Trojanek <trojanek@adacore.com>
1080 (Build_Array_Aggr_Code): Change variable to constant.
1081 (Check_Same_Aggr_Bounds): Fix style; remove unused initial value.
1083 2023-05-26 Ronan Desplanques <desplanques@adacore.com>
1085 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Create extra formals
1088 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
1090 * checks.adb (Selected_Range_Checks): Add guards to protect calls
1091 to Expr_Value on bounds.
1093 2023-05-26 Eric Botcazou <ebotcazou@adacore.com>
1095 * sem_eval.ads (Is_Null_Range): Remove requirements of compile-time
1096 known bounds and add WARNING line.
1097 (Not_Null_Range): Remove requirements of compile-time known bounds.
1098 * sem_eval.adb (Is_Null_Range): Fall back to Compile_Time_Compare.
1099 (Not_Null_Range): Likewise.
1100 * fe.h (Is_Null_Range): New predicate.
1102 2023-05-25 Javier Miranda <miranda@adacore.com>
1105 (Warn_On_Null_Component_Association): New subprogram.
1106 (Empty_Range): Adding missing support for iterated component
1108 (Resolve_Array_Aggregate): Report warning on iterated component
1109 association that may initialize some component of an array of
1110 null-excluding access type components with a null value.
1112 (Expand_N_Expression_With_Actions): Add missing type check since
1113 the subtype of the EWA node and the subtype of the expression
1116 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1118 * sem_util.adb (Determining_Expressions): Fix style; fix layout and
1119 ordering of pragma names; expect pragma Exceptional_Cases.
1121 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1123 * einfo-utils.adb (Write_Entity_Info): Use procedural Next_Index.
1124 * sem_aggr.adb (Collect_Aggr_Bounds): Reuse local constant.
1125 (Resolve_Null_Array_Aggregate): Use procedural Next_Index.
1127 2023-05-25 Javier Miranda <miranda@adacore.com>
1129 * exp_aggr.adb (Build_Record_Aggr_Code): Protect access to
1130 aggregate components when the aggregate is empty.
1132 2023-05-25 Johannes Kliemann <kliemann@adacore.com>
1134 * libgnat/system-vxworks7-ppc-kernel.ads: Enable
1135 Support_Atomic_Primitives.
1136 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
1138 2023-05-25 Eric Botcazou <ebotcazou@adacore.com>
1140 * sem_ch3.adb (Find_Type_Of_Object): Copy the object definition when
1141 building the subtype declaration in the case of a spec expression.
1143 2023-05-25 Tom Tromey <tromey@adacore.com>
1145 * Make-generated.in (ada/stamp-snames): Check result of
1148 2023-05-25 Eric Botcazou <ebotcazou@adacore.com>
1150 * cstand.adb (Create_Standard): Set the Is_Descendant_Of_Address
1151 flag on Standard_Address.
1152 * freeze.adb (Freeze_Entity): Copy the modulus of System.Address
1153 onto Standard_Address.
1155 2023-05-25 Eric Botcazou <ebotcazou@adacore.com>
1157 * libgnat/system-aix.ads (Address): Likewise.
1158 * libgnat/system-darwin-arm.ads (Address): Likewise.
1159 * libgnat/system-darwin-ppc.ads (Address): Likewise.
1160 * libgnat/system-darwin-x86.ads (Address): Likewise.
1161 * libgnat/system-djgpp.ads (Address): Likewise.
1162 * libgnat/system-dragonfly-x86_64.ads (Address): Likewise.
1163 * libgnat/system-freebsd.ads (Address): Likewise.
1164 * libgnat/system-hpux-ia64.ads (Address): Likewise.
1165 * libgnat/system-hpux.ads (Address): Likewise.
1166 * libgnat/system-linux-alpha.ads (Address): Likewise.
1167 * libgnat/system-linux-arm.ads (Address): Likewise.
1168 * libgnat/system-linux-hppa.ads (Address): Likewise.
1169 * libgnat/system-linux-ia64.ads (Address): Likewise.
1170 * libgnat/system-linux-m68k.ads (Address): Likewise.
1171 * libgnat/system-linux-mips.ads (Address): Likewise.
1172 * libgnat/system-linux-ppc.ads (Address): Likewise.
1173 * libgnat/system-linux-riscv.ads (Address): Likewise.
1174 * libgnat/system-linux-s390.ads (Address): Likewise.
1175 * libgnat/system-linux-sh4.ads (Address): Likewise.
1176 * libgnat/system-linux-sparc.ads (Address): Likewise.
1177 * libgnat/system-linux-x86.ads (Address): Likewise.
1178 * libgnat/system-lynxos178-ppc.ads (Address): Likewise.
1179 * libgnat/system-lynxos178-x86.ads (Address): Likewise.
1180 * libgnat/system-mingw.ads (Address): Likewise.
1181 * libgnat/system-qnx-arm.ads (Address): Likewise.
1182 * libgnat/system-rtems.ads (Address): Likewise.
1183 * libgnat/system-solaris-sparc.ads (Address): Likewise.
1184 * libgnat/system-solaris-x86.ads (Address): Likewise.
1185 * libgnat/system-vxworks-ppc-kernel.ads (Address): Likewise.
1186 * libgnat/system-vxworks-ppc-rtp-smp.ads (Address): Likewise.
1187 * libgnat/system-vxworks-ppc-rtp.ads (Address): Likewise.
1188 * libgnat/system-vxworks7-aarch64-rtp-smp.ads (Address): Likewise.
1189 * libgnat/system-vxworks7-aarch64.ads (Address): Likewise.
1190 * libgnat/system-vxworks7-arm-rtp-smp.ads (Address): Likewise.
1191 * libgnat/system-vxworks7-arm.ads (Address): Likewise.
1192 * libgnat/system-vxworks7-ppc-kernel.ads (Address): Likewise.
1193 * libgnat/system-vxworks7-ppc-rtp-smp.ads (Address): Likewise.
1194 * libgnat/system-vxworks7-ppc64-kernel.ads (Address): Likewise.
1195 * libgnat/system-vxworks7-ppc64-rtp-smp.ads (Address): Likewise.
1196 * libgnat/system-vxworks7-x86-kernel.ads (Address): Likewise.
1197 * libgnat/system-vxworks7-x86-rtp-smp.ads (Address): Likewise.
1198 * libgnat/system-vxworks7-x86_64-kernel.ads (Address): Likewise.
1199 * libgnat/system-vxworks7-x86_64-rtp-smp.ads (Address): Likewise.
1201 2023-05-25 Marc Poulhiès <poulhies@adacore.com>
1203 * sem_ch13.adb (Check_Aspect_At_Freeze_Point): fix format string,
1204 use existing local Ident.
1206 2023-05-25 Bob Duff <duff@adacore.com>
1208 * atree.adb (Check_Vanishing_Fields): Fix bug in the "blah type
1209 only" cases. Remove the special cases for E_Void. Misc cleanup.
1210 (Mutate_Nkind): Disallow mutating to the same kind.
1211 (Mutate_Ekind): Disallow mutating to E_Void.
1212 (From E_Void is still OK -- entities start out as E_Void by
1213 default.) Fix bug in statistics gathering -- was setting the wrong
1214 count. Enable Check_Vanishing_Fields for entities.
1215 * sem_ch8.adb (Is_Self_Hidden): New function.
1216 (Find_Direct_Name): Call Is_Self_Hidden to use the new
1217 Is_Not_Self_Hidden flag to determine whether a declaration is
1218 hidden from all visibility by itself. This replaces the old method
1220 (Find_Expanded_Name): Likewise.
1221 (Find_Selected_Component): Likewise.
1222 * sem_util.adb (Enter_Name): Remove setting of Ekind to E_Void.
1223 * sem_ch3.adb: Set the Is_Not_Self_Hidden flag in appropriate
1224 places. Comment fixes.
1225 (Inherit_Component): Remove setting of Ekind to E_Void.
1227 (Analyze_Protected_Type_Declaration): Update comment. Skip Itypes,
1228 which should not be turned into components.
1229 * atree.ads (Mutate_Nkind): Document error case.
1230 (Mutate_Ekind): Remove comments apologizing for E_Void mutations.
1231 Document error cases.
1233 2023-05-25 Eric Botcazou <ebotcazou@adacore.com>
1235 * libgnat/a-ststio.adb (Set_Mode): Test System.Memory_Size.
1236 * libgnat/g-debuti.ads (Address_64): Likewise.
1237 * libgnat/i-c.ads: Add with clause for System.
1238 (ptrdiff_t): Define based on the size of memory space.
1240 * libgnat/s-crtl.ads (size_t): Likewise.
1241 (ssize_t): Likewise.
1242 * libgnat/s-memory.ads (size_t): Likewise.
1243 * libgnat/s-parame.ads (Size_Type): Likewise.
1244 * libgnat/s-parame__hpux.ads (Size_Type): Likewise.
1245 * libgnat/s-parame__posix2008.ads (Size_Type): Likewise.
1246 * libgnat/s-parame__vxworks.ads (Size_Type): Likewise.
1247 * libgnat/s-putima.adb (Signed_Address): Likewise.
1248 (Unsigned_Address): Likewise.
1249 * libgnat/s-stoele.ads (Storage_Offset): Likewise.
1251 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1253 * sem_util.adb (Visit_Node): Decrement EWA_Level with the same condition
1254 as when it was incremented.
1256 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1258 * sem_util.ads (New_Copy_Tree): Remove Scopes_In_EWA_OK from spec;
1260 * sem_util.adb (New_Copy_Tree): Remove Scopes_In_EWA_OK from body;
1263 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1265 * sem_util.adb (Update_New_Entities): Remove redundant check for entity
1268 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1270 * atree.adb (Copy_List): Call Copy_Separate_Tree for both entities and
1273 2023-05-25 Steve Baird <baird@adacore.com>
1276 (Cached_Streaming_Ops): A new package, providing maps to save
1277 previously-generated Read/Write/Input/Output procedures.
1278 (Expand_N_Attribute_Reference): When a new subprogram is generated
1279 for a Read/Write/Input/Output attribute reference, record that
1280 type/subp pair in the appropriate Cached_Streaming_Ops map.
1281 (Find_Stream_Subprogram): Check the appropriate
1282 Cached_Streaming_Ops map to see if an appropriate subprogram has
1283 already been generated. If so, then return it. The appropriateness
1284 test includes a call to a new nested subprogram,
1285 In_Available_Context.
1286 * exp_strm.ads, exp_strm.adb: Do not pass in a Loc parameter (or a
1287 source-location-bearing Nod parameter) to the 16 procedures
1288 provided for building streaming-related subprograms. Use the
1289 source location of the type instead.
1290 * exp_dist.adb, exp_ch3.adb: Adapt to Exp_Strm spec changes. For
1291 these calls the source location of the type was already being
1294 2023-05-25 Marc Poulhiès <poulhies@adacore.com>
1296 * sem_ch6.adb (Analyze_Function_Return): Add missing
1297 Is_Access_Type check before accessing the Designated_Type field.
1299 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1301 * sem_ch6.adb (Analyze_Return_Type): Remove unused initial value.
1303 2023-05-25 Marc Poulhiès <poulhies@adacore.com>
1305 * sem_ch13.adb (Analyze_One_Aspect): Call Record_Rep_Item.
1306 (Check_Aspect_At_Freeze_Point): Check the aspect is specified on
1307 non-array type only...
1308 (Analyze_One_Aspect): ... instead of doing it too early here.
1309 * sem_aggr.adb (Resolve_Container_Aggregate): Do nothing in case
1310 the parameters failed to resolve.
1312 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1314 * sem_util.adb (Check_Internal_Protected_Use): Add standard protection
1315 against search going too far.
1317 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1320 (Add_Pre_Post_Condition): Mention new aspects in the comment.
1322 (Add_Contract_Item): Likewise.
1323 (Analyze_Subprogram_Body_Stub_Contract): Likewise.
1325 (Contract_Freeze_Error): Likewise.
1326 (Ensure_Aggregate_Form): Likewise.
1328 (Find_Related_Declaration_Or_Body): Likewise.
1330 (Is_Generic_Contract_Pragma): Likewise.
1332 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1335 (Implementation_Defined_Aspect): Recently added aspects are
1336 implementation-defined, just like Contract_Cases.
1338 (Aspect_Specifying_Pragma): Recently added aspects have corresponding
1339 pragmas, just like Contract_Cases.
1340 (Pragma_Significant_To_Subprograms): Recently added aspects are
1341 significant to subprograms, just like Contract_Cases.
1343 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1345 * sem_res.adb (Resolve_Entity_Name): Tune handling of formal parameters
1346 in contract Exceptional_Cases.
1348 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1350 * par-ch7.adb (P_Package): Remove redundant guard from call to
1352 * par-ch9.adb (P_Task): Likewise.
1353 * sem_ch6.adb (Analyze_Expression_Function, Is_Inline_Pragma): Likewise.
1355 2023-05-25 Eric Botcazou <ebotcazou@adacore.com>
1357 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Use Get_Actual_Subtype
1358 to retrieve the actual subtype for all actuals and do it in only one
1359 place for all unconstrained composite formal types.
1361 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1363 * sem_prag.adb (Analyze_Pragma): Fix references to Exceptional_Cases in
1364 code copied from handling of Subprogram_Variant.
1366 2023-05-25 Ronan Desplanques <desplanques@adacore.com>
1368 * sem_ch3.adb (Replace_Type): Add more documentation.
1370 2023-05-25 Ronan Desplanques <desplanques@adacore.com>
1372 * sem_ch3.adb (Replace_Type): Use existing constant wherever
1375 2023-05-25 Ronan Desplanques <desplanques@adacore.com>
1377 * sem_ch3.adb (Replace_Type): Reduce span of variable.
1379 2023-05-25 Bob Duff <duff@adacore.com>
1381 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Set the flag
1382 for protected types.
1383 (Analyze_Single_Protected_Declaration): Likewise, for singleton
1385 (Analyze_Task_Type_Declaration): Set the flag for task types.
1386 (Analyze_Single_Task_Declaration): Likewise, for singleton task
1388 * sem_ch10.adb (Decorate_Type): Set the flag for types treated as
1390 (Build_Shadow_Entity): Set the flag for shadow entities.
1391 (Decorate_State): Set the flag for an abstract state.
1392 (Build_Limited_Views): Set the flag for limited view of package.
1393 * sem_attr.adb (Check_Not_Incomplete_Type): Disable the check when
1394 this is a current instance.
1396 2023-05-25 Ronan Desplanques <desplanques@adacore.com>
1398 * freeze.adb (Build_DTW_Body): Add appropriate type conversions for
1399 controlling access parameters.
1400 * sem_util.adb (Build_Overriding_Spec): Fix designated types in
1401 controlling access parameters.
1403 2023-05-25 Bob Duff <duff@adacore.com>
1405 * gen_il-gen-gen_entities.adb (E_Label): Add
1406 Entry_Cancel_Parameter. This is necessary because
1407 Analyze_Implicit_Label_Declaration set the Ekind to E_Label.
1408 Without this change, this field would fail the vanishing-fields
1409 check in Atree (which is currently commented out).
1410 * einfo.ads (Entry_Cancel_Parameter): Document for E_Label.
1411 * sem_eval.adb (Why_Not_Static): Protect against previous errors
1412 (no need to explain why something is not static if it's already
1413 illegal for other reasons).
1414 * sem_util.ads (Enter_Name): Fix misleading comment.
1416 2023-05-25 Eric Botcazou <ebotcazou@adacore.com>
1418 * einfo.ads (Scope_Depth): Fix circular definition.
1419 (Scope_Depth_Value): Fix value for library units.
1421 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1423 * sem_ch11.adb (Analyze_Raise_Expression): Tune warning condition.
1424 * libgnat/g-dirope.ads (Open): Remove a potentially inaccurate comment.
1425 * libgnat/g-dirope.adb (Open): Remove a potentially useless assignment;
1426 the Dir output parameter should be assigned a null value anyway by the
1427 preceding call to Free.
1429 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1431 * sem_res.adb (Resolve_Entity_Name): Allow aliased parameters; tune
1434 2023-05-25 Marc Poulhiès <poulhies@adacore.com>
1436 * sem_ch13.adb (Analyze_One_Aspect): Mark Aggregate aspect as
1437 needing delayed resolution and reject the aspect on non-array
1440 2023-05-25 Bob Duff <duff@adacore.com>
1442 * sinfo-utils.adb: Update comment to refer to
1443 New_Node_Debugging_Output.
1445 2023-05-25 Marc Poulhiès <poulhies@adacore.com>
1447 * rtsfind.adb (Load_RTU.Restore_SPARK_Context): New.
1448 (Load_RTU): Use Restore_SPARK_Context on all exit paths.
1449 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Initialize local
1452 2023-05-25 Piotr Trojanek <trojanek@adacore.com>
1455 (Analyze_Attribute_Old_Result): Allow uses of 'Old and 'Result within
1458 (Within_Exceptional_Cases_Consequence): New utility routine.
1459 (Resolve_Entity_Name): Restrict use of formal parameters within the
1462 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1465 (Aspect_Id): Add aspect identifier.
1466 (Aspect_Argument): New aspect accepts an expression.
1467 (Is_Representation_Aspect): New aspect is not a representation
1469 (Aspect_Names): Associate name with the new aspect identifier.
1470 (Aspect_Delay): New aspect is never delayed.
1472 (Add_Contract_Item): Store new aspect among contract items.
1473 (Analyze_Entry_Or_Subprogram_Contract): Likewise.
1474 (Analyze_Subprogram_Body_Stub_Contract): Likewise.
1475 (Process_Contract_Cases): Expand new aspect, if present.
1477 (Analyze_Entry_Or_Subprogram_Body_Contract): Mention new aspect in
1479 (Analyze_Entry_Or_Subprogram_Contract): Likewise.
1481 (Get_Pragma): Allow new aspect to be picked by the backend.
1483 (Get_Pragma): Mention new aspect in spec.
1485 (Expand_Pragma_Exceptional_Cases): Dummy expansion routine.
1487 (Expand_Pragma_Exceptional_Cases): Add spec for expansion routine.
1489 (Remove_Aspects_And_Pragmas): Remove aspect from bodies to inline.
1491 (Par.Prag): Accept pragma in the parser, so it will be checked
1494 (Implementation of Generic Contracts): Mention new aspect in
1497 (Analyze_Aspect_Specifications): Transform new aspect info a
1498 corresponding pragma.
1500 (Analyze_Exceptional_Cases_In_Decl_Part): Analyze aspect
1501 expression; heavily inspired by the existing code for analysis of
1502 Subprogram_Variant and exception handlers.
1503 (Analyze_Pragma): Analyze pragma corresponding to the new aspect.
1504 (Is_Non_Significant_Pragma_Reference): Add new pragma to the
1507 (Assertion_Expression_Pragma): New pragma acts as an assertion
1508 expression, even though it is not currently expanded.
1509 (Analyze_Exceptional_Cases_In_Decl_Part): Add spec.
1511 (Is_Subprogram_Contract_Annotation): Mark new annotation is a
1512 subprogram contract, so the subprogram with it won't be inlined.
1514 (Is_Subprogram_Contract_Annotation): Mention new aspect in
1517 (Contract_Test_Cases): Mention new aspect in comment.
1518 * snames.ads-tmpl: Add entries for the new name and pragma.
1520 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1522 * sem_ch13.adb (Build_Predicate_Functions): If the current scope
1523 is not that of the type, push this scope and pop it at the end.
1524 * sem_util.ads (Current_Scope_No_Loops_No_Blocks): Delete.
1525 * sem_util.adb (Current_Scope_No_Loops_No_Blocks): Likewise.
1526 (Set_Public_Status): Call again Current_Scope.
1528 2023-05-23 Gary Dismukes <dismukes@adacore.com>
1530 * exp_ch6.adb (Might_Have_Tasks): Remove unneeded Etype call from
1531 call to Is_Limited_Record, since that flag is now properly
1532 inherited by class-wide types.
1533 * sem_ch3.adb (Analyze_Private_Extension_Declaration): Remove call
1534 to Make_Class_Wide_Type, which is done too early, and will later
1535 be done in Build_Derived_Record_Type after flags such as
1536 Is_Limited_Record and Is_Controlled_Active have been set on the
1539 2023-05-23 Patrick Bernardi <bernardi@adacore.com>
1541 * libgnat/s-stchop.adb (Stack_Check): Remove redundant parentheses.
1543 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1545 * freeze.adb (Freeze_Record_Type): Add tag for redundant pragma Pack.
1546 * sem_aggr.adb (Resolve_Record_Aggregate): Add tag for redundant OTHERS
1548 * sem_ch8.adb (Use_One_Type): Add tag for redundant USE clauses.
1550 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1553 (Check_Duplication): Fix inconsistent iteration.
1554 (Others_Present): Iterate over handlers using First_Non_Pragma and
1555 Next_Non_Pragma just like in Check_Duplication.
1557 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1559 * einfo.ads (Delay_Subprogram_Descriptors): Delete.
1560 * gen_il-fields.ads (Opt_Field_Enum): Remove
1561 Delay_Subprogram_Descriptors.
1562 * gen_il-gen-gen_entities.adb (Gen_Entities): Likewise.
1563 * gen_il-gen-gen_nodes.adb (N_Entry_Body): Add Corresponding_Spec.
1564 * sinfo.ads (Corresponding_Spec): Document new use.
1565 (N_Entry_Body): Likewise.
1566 * exp_ch6.adb (Expand_Protected_Object_Reference): Be prepared for
1567 protected subprograms that have been expanded.
1568 * exp_ch7.adb (Expand_Cleanup_Actions): Remove unreachable code.
1569 * exp_ch9.adb (Build_Protected_Entry): Add a local variable for the
1570 new block and propagate Uses_Sec_Stack from the corresponding spec.
1571 (Expand_N_Protected_Body) <N_Subprogram_Body>: Unconditionally reset
1572 the scopes of top-level entities in the new body.
1573 * inline.adb (Cleanup_Scopes): Do not adjust the scope on the fly.
1574 * sem_ch9.adb (Analyze_Entry_Body): Set Corresponding_Spec.
1575 * sem_ch12.adb (Analyze_Package_Instantiation): Remove obsolete code
1576 setting Delay_Subprogram_Descriptors and tidy up.
1577 * sem_util.adb (Scope_Within): Deal with protected subprograms that
1579 (Scope_Within_Or_Same): Likewise.
1581 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1583 * libgnarl/s-taskin.ads (Atomic_Address): Delete.
1584 (Attribute_Array): Add pragma Atomic_Components.
1585 (Ada_Task_Control_Block): Adjust default value of Attributes.
1586 * libgnarl/s-tasini.adb (Finalize_Attributes): Adjust type of local
1588 * libgnarl/s-tataat.ads (Deallocator): Adjust type of parameter.
1589 (To_Attribute): Adjust source type.
1590 * libgnarl/a-tasatt.adb: Add clauses for System.Storage_Elements.
1591 (New_Attribute): Adjust return type.
1592 (Deallocate): Adjust type of parameter.
1593 (To_Real_Attribute): Adjust source type.
1594 (To_Address): Add target type.
1595 (To_Attribute): Adjust source type.
1596 (Fast_Path): Adjust tested type.
1597 (Finalize): Compare with Null_Address.
1598 (Reference): Likewise.
1599 (Reinitialize): Likewise.
1600 (Set_Value): Likewise. Add conversion to Integer_Address.
1603 2023-05-23 Raphael Amiard <amiard@adacore.com>
1605 * scng.adb (Scan): Replace occurrences of All_Extensions_Allowed
1606 by Core_Extensions_Allowed.
1608 2023-05-23 Claire Dross <dross@adacore.com>
1610 * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Use new helpers.
1611 * libgnat/s-vauspe.ads (Raw_Unsigned_Starts_As_Based_Ghost,
1612 Raw_Unsigned_Is_Based_Ghost): New ghost helper functions.
1613 (Is_Raw_Unsigned_Format_Ghost, Scan_Split_No_Overflow_Ghost,
1614 Scan_Split_Value_Ghost, Raw_Unsigned_Last_Ghost): Use new
1617 2023-05-23 Arnaud Charlet <charlet@adacore.com>
1619 * par-ch5.adb, style.ads, styleg.adb, styleg.ads
1620 (Check_Xtra_Parens): Remove extra parameter Enable.
1621 (Check_Xtra_Parens_Precedence): New.
1622 (P_Case_Statement): Add -gnatyx style check.
1623 * sem_ch4.adb: Replace calls to Check_Xtra_Parens by
1624 Check_Xtra_Parens_Precedence.
1625 * stylesw.ads, stylesw.adb, usage.adb: Add support for
1627 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1628 Update -gnatyxzg doc.
1629 * sem_prag.adb, libgnat/s-regpat.adb,
1630 libgnarl/s-interr__hwint.adb, libgnarl/s-interr__vxworks.adb:
1631 Remove extra parens.
1632 * par-ch3.adb (P_Discrete_Range): Do not emit a style check if
1633 the expression is not a simple expression.
1634 * gnat_ugn.texi: Regenerate.
1636 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1638 * libgnat/s-dwalin.adb (Enable_Cache): Use the subtract operator of
1639 System.Storage_Elements to compute the offset.
1640 (Symbolic_Address): Likewise.
1642 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1644 * sem_res.adb (Resolve_Intrinsic_Operator): Always perform the same
1645 resolution for the special mod operator of System.Storage_Elements.
1647 2023-05-23 Raphael Amiard <amiard@adacore.com>
1649 * doc/gnat_rm.rst, doc/gnat_rm/gnat_language_extensions.rst,
1650 doc/gnat_rm/implementation_defined_pragmas.rst:
1651 * gnat_rm.texi: Regenerate.
1653 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1655 * exp_ch4.adb (Expand_N_Op_Mod): Adjust the detection of the special
1656 operator of System.Storage_Elements. Do not rewrite it into a rem.
1657 * sem_res.adb (Resolve_Intrinsic_Operator): Use the base type of the
1658 left operand for the special mod operator of System.Storage_Elements
1660 2023-05-23 Vadim Godunko <godunko@adacore.com>
1662 * libgnat/a-coinho__shared.adb (Constant_Reference): Remove call
1664 (Query_Element): Likewise.
1666 2023-05-23 Ronan Desplanques <desplanques@adacore.com>
1668 * sem_disp.adb: Fix reference to Ada issue in comment.
1670 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1672 * exp_disp.adb (Expand_Dispatching_Call): In the abstract interface
1673 class-wide case, use 'Tag of the object as the controlling tag.
1674 (Expand_Interface_Thunk): Perform address arithmetic using operators
1675 of System.Storage_Elements.
1677 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1679 * libgnat/i-cpoint.adb: Add clauses for System.Storage_Elements.
1681 (Offset): New subtype of Storage_Offset.
1682 (To_Offset): New instance of Unchecked_Conversion.
1683 (To_Pointer): Adjust.
1684 (To_Addr): Likewise.
1685 (To_Ptrdiff): Likewise.
1686 ("+"): Call To_Offset on the offset.
1688 * libgnat/s-bituti.adb: Add clauses for System.Storage_Elements.
1689 (Val_Bytes): Change type to Storage_Count.
1690 (Get_Val_2): Add qualification to second operand of mod operator.
1691 (Set_Val_2): Likewise.
1692 (Copy_Bitfield): Likewise. Change type of Src_Adjust & Dest_Adjust.
1693 * libgnat/s-stratt.ads (Thin_Pointer): Change to subtype of Address.
1694 * libgnat/s-statxd.adb (I_AD): Adjust.
1698 2023-05-23 Steve Baird <baird@adacore.com>
1701 (Is_Variable): Correctly return False for a selected component
1702 name of the form Some_Object.Some_Discriminant, even if
1703 Some_Object is a variable. We don't want to allow such a name as
1704 an actual parameter in a call if the corresponding formal
1705 parameter's mode is not "in".
1707 2023-05-23 Yannick Moy <moy@adacore.com>
1709 * sem_util.adb (Check_Node): Add default init on local Id.
1711 2023-05-23 Yannick Moy <moy@adacore.com>
1713 * libgnat/i-c.adb (To_Ada): Add loop invariant.
1715 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1717 * exp_ch4.adb (Expand_N_Op_Mod): Deal with the special mod
1718 operator of System.Storage_Elements.
1719 * exp_intr.adb (Expand_To_Integer): New procedure.
1720 (Expand_Intrinsic_Call): Call Expand_To_Integer appropriately.
1721 (Expand_To_Address): Deal with an argument with modular type.
1722 * sem_ch3.adb (Derive_Subprogram): Also set convention Intrinsic
1723 on a derived intrinsic subprogram.
1724 * sem_res.adb (Resolve_Arithmetic_Op): Deal with intrinsic
1725 operators not coming from source exactly as those coming from
1726 source and also generate a reference in both cases.
1727 (Resolve_Op_Expon): Likewise.
1728 (Resolve_Intrinsic_Operator): Call Implementation_Base_Type to get
1729 a nonprivate base type.
1730 * snames.ads-tmpl (Name_To_Integer): New intrinsic name.
1731 * libgnat/s-stoele.ads: Replace pragma Convention with pragma
1732 Import throughout and remove pragma Inline_Always and
1734 * libgnat/s-stoele.adb: Replace entire contents with pragma
1736 * libgnat/s-atacco.adb: Adjust comment about pragma No_Body.
1738 2023-05-23 Javier Miranda <miranda@adacore.com>
1740 * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove
1741 call to preanalyze class-wide conditions since here it is too
1742 early; they must be preanalyzed when full views of private types
1744 * sem_ch7.adb (Analyze_Package_Specification): Preanalyze
1745 class-wide conditions of dispatching primitives defined in nested
1748 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1750 * errout.adb (Last_Sloc): Refactor a heavily repeated "S := S + 1"
1751 statement into a subprogram; replace assertions with defensive code;
1752 fix few more off-by-one errors.
1754 2023-05-23 Ronan Desplanques <desplanques@adacore.com>
1756 * einfo.ads: Mention full name of LSP.
1758 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1760 * errout.adb (Last_Sloc): Rewrite skipping past numeric literals.
1762 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1764 * sem_ch13.adb (Build_Predicate_Function_Declaration): Adjust the
1765 commentary to the current implementation.
1766 * sem_util.ads (Current_Scope_No_Loops): Move around.
1767 (Current_Scope_No_Loops_No_Blocks): New declaration.
1768 (Add_Block_Identifier): Fix formatting.
1769 * sem_util.adb (Add_Block_Identifier): Likewise.
1770 (Current_Scope_No_Loops_No_Blocks): New function.
1771 (Set_Public_Status): Call Current_Scope_No_Loops_No_Blocks instead
1772 of Current_Scope to get the current scope.
1774 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1776 * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do not
1777 manually generate a predicate check. Call Unqualify before doing
1778 pattern matching on the expression.
1779 * sem_ch3.adb (Analyze_Object_Declaration): Also freeze the actual
1780 subtype when it is built in the definite case.
1782 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1784 * libgnarl/s-interr.adb
1785 (Registered_Handler): Remove default expression.
1786 (Registered_Handlers): Switch to singly-linked list.
1787 (Bind_Interrupt_To_Entry): Sync whitespace with other unit variants.
1788 (Is_Registered): Use singly-linked list.
1789 (Register_Interrupt_Handler): Use singly-linked list and initialized
1790 allocator; sync assertion with other unit variants.
1791 * libgnarl/s-interr__sigaction.adb: Likewise.
1792 * libgnarl/s-interr__vxworks.adb: Likewise.
1793 * libgnarl/s-interr__hwint.adb: Likewise.
1794 (Is_Registered): Remove repeated declaration.
1796 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1798 * pprint.adb (Expression_Image): Restore some of the old pretty-printing
1801 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1803 * errout.adb (First_And_Last_Nodes): Ignore accessibility parameters.
1805 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1807 * exp_ch4.adb (Expand_N_Op_Ne): Simply don't add extra parens.
1809 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1811 * pprint.adb (Expression_Image): Move Count_Parentheses and
1812 Fix_Parentheses routines from GNATprove and apply them before
1813 returning the slice of a source code buffer.
1815 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1818 (Paren_Required): New subsidiary routine for better handling of
1819 parentheses in First_Node/Last_Node.
1820 (First_Sloc, Last_Sloc): Use Get_Source_File_Index to correctly
1821 handle generic instances and inlined subprograms; tune handling of
1822 parentheses; improve handling of literals.
1823 * pprint.adb (Expression_Image): Simplify using
1824 First_Sloc/Last_Sloc.
1825 * sem_ch6.adb (Analyze_Expression_Function): Remove parenthesis
1826 when relocating expression from expression function to simple
1829 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1831 * exp_prag.adb (Expand_Pragma_Check): Suppress warning for checks of
1832 subprogram variants.
1834 2023-05-23 Eric Botcazou <ebotcazou@adacore.com>
1836 * frontend.adb (Frontend): Merge two conditional blocks and adjust.
1838 2023-05-23 Piotr Trojanek <trojanek@adacore.com>
1840 * libgnat/s-mmap.adb (Mapped_Region_Record): Fix typo in comment.
1842 2023-05-23 Ronan Desplanques <desplanques@adacore.com>
1844 * sem_ch7.adb: Remove duplicate comment.
1846 2023-05-23 Javier Miranda <miranda@adacore.com>
1849 (Analyze_Required_Limited_With_Units): New subprogram.
1850 (Depends_On_Limited_Views): New subprogram.
1851 (Has_Limited_With_Clauses): New subprogram.
1852 (Analyze_Compilation_Unit): Call the new subprogram that performs
1853 the full analysis of required limited-with units.
1855 2023-05-22 Ronan Desplanques <desplanques@adacore.com>
1857 * cstand.adb: Use more idiomatic procedure.
1859 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1861 * errout.adb (First_Loc): Avoid repeated calls.
1862 (Last_Loc): Likewise.
1864 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1866 * inline.adb (Cleanup_Scopes): Do not propagate the Uses_Sec_Stack
1867 flag from original to rewritten protected subprograms here...
1868 * exp_ch9.adb (Expand_N_Protected_Body) <N_Subprogram_Body>:
1869 ...but here instead. Add local variables and remove a useless
1872 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1874 * exp_ch7.adb (Expand_N_Package_Body): Call Defining_Entity to get
1875 the entity of the body.
1877 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1879 * exp_attr.adb (Expand_Loop_Entry_Attribute): Use location of the
1880 attribute reference, not of the loop statement.
1882 2023-05-22 Ronan Desplanques <desplanques@adacore.com>
1884 * par-ch3.adb: Add missing word in comment.
1886 2023-05-22 Justin Squirek <squirek@adacore.com>
1888 * checks.adb (Install_Null_Excluding_Check): Avoid non-null
1889 optimizations when assertions are enabled.
1891 2023-05-22 Marc Poulhiès <poulhies@adacore.com>
1893 * exp_aggr.adb (Process_Transient_Component): Reset Analyzed flag
1894 for the copy of the initialization expression.
1895 * sem_attr.adb (Validate_Non_Static_Attribute_Function_Call): Skip
1896 error emission during Pre_Analyze.
1898 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1900 * exp_ch7.adb (Process_Package_Body): New procedure taken from...
1901 (Build_Finalizer.Process_Declarations): ...here. Call the above
1902 procedure to deal with both package bodies and package body stubs.
1904 2023-05-22 Ronan Desplanques <desplanques@adacore.com>
1906 * atree.ads: Remove outdated part of comment.
1908 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1910 * exp_ch7.adb (Build_Finalizer): Reverse the test comparing the
1911 instantiation and declaration nodes of a package instance, and
1912 therefore bail out only when they are equal. Adjust comments.
1913 (Expand_N_Package_Declaration): Do not clear the Finalizer field.
1914 * lib-writ.adb: Add with and use clauses for Sem_Util.
1915 (Write_Unit_Information): Look at unit nodes to find finalizers.
1916 * sem_ch12.adb (Analyze_Package_Instantiation): Beef up the comment
1917 about the rewriting of the instantiation node into a declaration.
1919 2023-05-22 Bob Duff <duff@adacore.com>
1921 * cstand.adb (Is_Past_Self_Hiding_Point): Rename to be
1923 * einfo.ads: Likewise.
1924 * exp_aggr.adb: Likewise.
1925 * gen_il-fields.ads: Likewise.
1926 * gen_il-gen-gen_entities.adb: Likewise.
1927 * sem.adb: Likewise.
1928 * sem_aggr.adb: Likewise.
1929 * sem_ch11.adb: Likewise.
1930 * sem_ch12.adb: Likewise.
1931 * sem_ch5.adb: Likewise.
1932 * sem_ch6.adb: Likewise.
1933 * sem_ch7.adb: Likewise.
1934 * sem_prag.adb: Likewise.
1936 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
1938 * exp_ch3.adb (Make_Controlling_Function_Wrappers): Create the body
1939 as the expanded body of an expression function.
1941 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1943 * pprint.adb (Expression_Image): Handle several previously unsupported
1946 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1948 * sem_res.adb (Resolve_Entity_Name): Combine two IF statements that
1949 execute code only for references that come from source.
1951 2023-05-22 Bob Duff <duff@adacore.com>
1953 * einfo.ads (Is_Past_Self_Hiding_Point): Document.
1954 * gen_il-fields.ads (Is_Past_Self_Hiding_Point): Add to list of
1956 * gen_il-gen-gen_entities.adb (Is_Past_Self_Hiding_Point): Declare
1958 * exp_aggr.adb: Set Is_Past_Self_Hiding_Point as appropriate.
1959 * sem.adb: Likewise.
1960 * sem_aggr.adb: Likewise.
1961 * sem_ch11.adb: Likewise.
1962 * sem_ch12.adb: Likewise.
1963 * sem_ch5.adb: Likewise.
1964 * sem_ch7.adb: Likewise.
1965 * sem_prag.adb: Likewise.
1966 * sem_ch6.adb: Likewise.
1967 (Set_Formal_Mode): Minor cleanup: Move from spec.
1969 (Set_Formal_Mode): Minor cleanup: Move to body.
1970 * cstand.adb: Call Set_Is_Past_Self_Hiding_Point on all entities
1971 as soon as they are created.
1972 * comperr.adb (Compiler_Abort): Minor cleanup -- use 'in' instead
1974 * debug.adb: Minor comment cleanups.
1976 2023-05-22 Steve Baird <baird@adacore.com>
1978 * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok):
1979 Accept an executable pragma occuring in a declare expression as
1980 per AI22-0045. This means Assert and Inspection_Point pragmas as
1981 well as any implementation-defined pragmas that the implementation
1982 chooses to categorize as executable. Currently Assume and Debug
1983 are the only such pragmas.
1985 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1988 (Check_Postcondition_Use_In_Inlined_Subprogram): Mention
1989 Subprogram_Variant in the comment.
1990 (Analyze_Subprogram_Variant_In_Decl_Part): Warn when contract is
1991 ignored because of pragma Inline_Always and frontend inlining.
1993 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
1995 * sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram): Only
1996 emit warning when frontend inlining is enabled.
1998 2023-05-22 Arnaud Charlet <charlet@adacore.com>
2000 * par-ch3.adb, sem_ch4.adb (P_Discrete_Range, Analyze_Logical_Op,
2001 Analyze_Short_Circuit): Add calls to Check_Xtra_Parentheses.
2002 * par-ch5.adb (P_Condition): Move logic to Check_Xtra_Parentheses.
2003 * style.ads, styleg.adb, styleg.ads (Check_Xtra_Parens): Move logic
2004 related to expressions requiring parentheses here.
2006 2023-05-22 Arnaud Charlet <charlet@adacore.com>
2008 * ali-util.adb, par-endh.adb, par-prag.adb, par-ch2.adb,
2009 checks.adb, fmap.adb, libgnat/a-nbnbig.ads, libgnat/g-dynhta.adb,
2010 libgnat/s-carun8.adb, libgnat/s-strcom.adb, libgnat/a-dhfina.adb,
2011 libgnat/a-direct.adb, libgnat/a-rbtgbo.adb, libgnat/a-strsea.adb,
2012 libgnat/a-ststio.adb, libgnat/a-suenco.adb, libgnat/a-costso.adb,
2013 libgnat/a-strmap.adb, libgnat/g-alleve.adb,
2014 libgnat/g-debpoo.adb, libgnat/g-sercom__linux.adb,
2015 libgnat/s-genbig.adb, libgnat/s-mmap.adb, libgnat/s-regpat.adb,
2016 par-ch5.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb,
2017 sem_ch8.adb, sem_eval.adb, sem_prag.adb, sem_type.adb,
2018 exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb,
2019 exp_ch6.adb, exp_ch9.adb, exp_put_image.adb, freeze.adb, live.adb,
2020 sem_aggr.adb, sem_cat.adb, sem_ch10.adb, sem_ch3.adb, sem_ch6.adb,
2021 sem_ch9.adb, sem_disp.adb, sem_elab.adb, sem_res.adb,
2022 sem_util.adb, sinput.adb, uintp.adb, bcheck.adb, binde.adb,
2023 binderr.adb, einfo-utils.adb, clean.adb, sem_ch4.adb, gnatls.adb,
2024 gprep.adb, sem_ch11.adb: Remove extra parentheses.
2026 2023-05-22 Arnaud Charlet <charlet@adacore.com>
2028 * sem_aggr.adb (Get_Value): Use ?? instead of ?.
2030 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
2032 * exp_aggr.adb (Aggregate_Size): Remove redundant calls to
2034 * exp_ch5.adb (Expand_N_If_Statement): Likewise.
2035 * sem_prag.adb (Analyze_Pragma): Likewise.
2036 * sem_warn.adb (Find_Var): Likewise.
2038 2023-05-22 Claire Dross <dross@adacore.com>
2040 * sem_util.adb (Find_Actual): On calls through dereferences,
2041 return the corresponding formal in the designated subprogram
2044 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
2046 * sem_util.ads (Is_Actual_Tagged_Parameter): Remove spec.
2047 * sem_util.adb (Is_Actual_Tagged_Parameter): Remove body.
2049 2023-05-22 Joffrey Huguet <huguet@adacore.com>
2051 * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads
2052 (To_Unbounded_String): Add postcondition. Add aspect SPARK_Mode
2053 Off on the version that takes a Natural as parameter.
2054 (To_String): Complete postcondition.
2055 (Set_Unbounded_String): Add postcondition.
2056 (Element): Likewise.
2059 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
2061 * exp_ch3.adb (Freeze_Type): Do not associate the Finalize_Address
2062 routine for a class-wide type if restriction No_Dispatching_Calls
2065 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
2067 * libgnat/s-genbig.ads (From_Bignum): New overloaded declarations.
2068 * libgnat/s-genbig.adb (LLLI): New subtype.
2069 (LLLI_Is_128): New boolean constant.
2070 (From_Bignum): Change the return type of the signed implementation
2071 to Long_Long_Long_Integer and add support for the case where its
2072 size is 128 bits. Add a wrapper around it for Long_Long_Integer.
2073 Add an unsigned implementation returning Unsigned_128 and a wrapper
2074 around it for Unsigned_64.
2075 (To_Bignum): Test LLLI_Is_128 instead of its size.
2076 (To_String.Image): Add qualification to calls to From_Bignum.
2077 * libgnat/a-nbnbin.adb (To_Big_Integer): Likewise.
2078 (Signed_Conversions.From_Big_Integer): Likewise.
2079 (Unsigned_Conversions): Likewise.
2081 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
2083 * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec
2084 to copy the spec from the subprogram to the generated subprogram
2086 (Freeze_Entity): Do not wrap imported subprograms inside generics.
2088 2023-05-22 Steve Baird <baird@adacore.com>
2090 * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok):
2091 If Comes_From_Source (A) is False, then look at Original_Node (A)
2092 instead of A. In particular, if an (illegal) expression function
2093 is transformed into a "vanilla" function, we don't want to allow
2094 it just because Comes_From_Source is now False.
2096 2023-05-22 Steve Baird <baird@adacore.com>
2098 * sem_prag.adb (Analyze_Pragma): In Check_No_Return, call
2099 Error_Msg_Ada_2022_Feature in the case of a function. Remove code
2100 outside of Check_No_Return that was querying Ada_Version.
2102 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
2104 * exp_ch4.adb (Expand_N_Expression_With_Actions.Process_Action): Do
2105 not look into nested blocks.
2107 2023-05-22 Eric Botcazou <ebotcazou@adacore.com>
2109 * sem_ch3.adb (Find_Type_Of_Object): In a spec expression, also set
2110 the Scope of the type, and call Constrain_Array for array subtypes.
2112 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
2114 * pprint.adb (Expression_Image): Reduce scope of local variables; inline
2115 local uncommented constant From_Source; concatenate string with a single
2116 character, as it is likely to execute faster; add missing cases to
2117 traversal for the rightmost node and assertion to demonstrate that the
2118 ??? comment is no longer relevant.
2120 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
2122 * pprint.adb (Expr_Name): Qualify CASE expression with N_Subexpr; add
2123 missing alternative for N_Raise_Storage_Error; remove dead alternatives;
2124 explicitly list unsupported alternatives.
2126 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
2128 * pprint.adb (Expr_Name): Exclude DEL from printable range.
2130 2023-05-22 Piotr Trojanek <trojanek@adacore.com>
2132 * sem_util.ads (New_Copy_Tree): Update comment.
2133 * sem_util.adb (New_Copy_Tree): Update Controlling_Argument, very
2134 much like we update the First/Next_Named_Association.
2136 2023-05-22 Bob Duff <duff@adacore.com>
2138 * fe.h: Remove Ada_With_Extensions and add commentary.
2139 * opt.ads: Rearrange code and add commentary.
2141 2023-05-22 Bob Duff <duff@adacore.com>
2143 * sem_util.adb (Process_Type): Stop the recursion.
2144 * exp_aggr.adb (Build_Record_Aggr_Code): Add assertion.
2146 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2148 * gcc-interface/decl.cc (gnat_to_gnu_entity): Use _P defines
2150 (constructor_address_p): Ditto.
2151 (elaborate_expression_1): Ditto.
2152 * gcc-interface/trans.cc (Identifier_to_gnu): Ditto.
2154 (Subprogram_Body_to_gnu): Ditto.
2155 (gnat_to_gnu): Ditto.
2156 (gnat_to_gnu_external): Ditto.
2157 (add_decl_expr): Ditto.
2158 (gnat_gimplify_expr): Ditto.
2159 * gcc-interface/utils.cc (create_var_decl): Ditto.
2160 * gcc-interface/utils2.cc (get_base_type): Ditto.
2161 (build_binary_op): Ditto.
2162 (build_unary_op): Ditto.
2163 (gnat_protect_expr): Ditto.
2164 (gnat_invariant_expr): Ditto.
2166 2023-05-16 Steve Baird <baird@adacore.com>
2168 * usage.adb: Generate output text describing the -gnatw_s switch
2169 (and the corresponding -gnatw_S switch).
2171 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
2173 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Reduce>:
2174 Use the canonical accumulator type as the type of the accumulator
2175 in the prefixed case.
2177 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
2179 * exp_aggr.adb (Expand_Array_Aggregate): Do not set Warnings_Off on
2180 the temporary created when in-place expansion is not possible.
2182 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
2184 * freeze.adb (Freeze_Expression): When the freezing is to be done
2185 outside the current scope, skip any scope that is an internal loop.
2187 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
2189 * exp_imgv.adb (Rewrite_Object_Image): If the prefix is a component
2190 that depends on a discriminant, create an actual subtype for it.
2192 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
2194 * sem_ch13.adb: Add with and use clauses for Expander.
2195 (Resolve_Aspect_Expressions) <Aspect_Predicate>: Emulate a
2196 bona-fide preanalysis setup before calling
2197 Resolve_Aspect_Expression.
2199 2023-05-16 Yannick Moy <moy@adacore.com>
2201 * libgnat/s-aridou.adb (Lemma_Div_Pow2): Add assertion.
2202 * libgnat/s-arit32.adb (Lemma_Abs_Div_Commutation): Simplify.
2203 * libgnat/s-expmod.adb (Lemma_Exp_Mod): Add assertions.
2204 (Lemma_Euclidean_Mod): Add body to lemma.
2205 (Lemma_Mult_Mod): Add assertion.
2206 * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Modify assertion.
2207 * libgnat/s-vauspe.ads (Raw_Unsigned_Last_Ghost): Add
2209 * libgnat/s-widthi.adb: Use more precise types.
2211 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
2213 * sem_res.adb (Has_Applicable_User_Defined_Literal): Apply the
2214 same processing for derived untagged types as for tagged types.
2215 * sem_util.ads (Corresponding_Primitive_Op): Adjust description.
2216 * sem_util.adb (Corresponding_Primitive_Op): Handle untagged
2219 2023-05-16 Javier Miranda <miranda@adacore.com>
2222 (Analyze_Attribute_Old_Result): When preanalyzing a class-wide
2223 condition, search in the scopes stack for the subprogram that has
2224 the condition. This is required because returning the current
2225 scope causes reporting spurious errors when the occurrence of the
2226 attribute is found, for example, in a quantified expression.
2228 2023-05-16 Javier Miranda <miranda@adacore.com>
2231 (Needs_BIP_Alloc_Form): Return False for functions with foreign
2232 convention since we never use build-in-place for such functions.
2234 2023-05-16 Piotr Trojanek <trojanek@adacore.com>
2236 * sem_util.adb (Aggregate_Constraint_Checks): Don't exit early
2237 when preanalysing in GNATprove mode. Now the condition is
2238 consistent with other similar conditions in other code.
2240 2023-05-16 Ghjuvan Lacambre <lacambre@adacore.com>
2242 * usage.adb (Usage): Document -gnatyD.
2244 2023-05-16 Marc Poulhiès <poulhies@adacore.com>
2246 * libgnat/s-tsmona__linux.adb (link_map, r_debug_type): Add
2247 'aliased' on all components.
2249 2023-05-16 Johannes Kliemann <kliemann@adacore.com>
2251 * libgnat/system-linux-ppc.ads: Add Support_Atomic_Primitives.
2252 * libgnat/s-atopri__32.ads: Add 32 bit version of s-atopri.ads.
2253 * Makefile.rtl: Use s-atopro__32.ads for ppc-linux.
2255 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
2257 * sem_util.adb (Get_Actual_Subtype): For an explicit dereference,
2258 return the Actual_Designated_Subtype if it is present.
2259 (Get_Actual_Subtype_If_Available): Likewise.
2261 2023-05-16 Arnaud Charlet <charlet@adacore.com>
2263 * errout.ads: Update comment.
2264 * errout.adb (Skip_Msg_Insertion_Warning): Update to take e.g.
2265 -gnatyM into account.
2266 * erroutc.adb (Get_Warning_Option, Get_Warning_Tag)
2267 (Prescan_Message): Add support for Style tags.
2268 * par-ch5.adb, par-ch6.adb, par-ch7.adb, par-endh.adb,
2269 par-util.adb, style.adb, styleg.adb: Set tag on all style
2272 2023-05-16 Tom Tromey <tromey@adacore.com>
2274 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
2275 (Switches_for_gnatbind): Fix typo.
2276 * libgnat/g-spipat.ads: Fix typo.
2277 * gnat_ugn.texi: Regenerate.
2279 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
2281 * exp_aggr.adb (Build_Assignment_With_Temporary): Adjust comment
2282 and fix type of second parameter. Create the temporary on the
2283 secondary stack by calling Build_Temporary_On_Secondary_Stack.
2284 (Convert_Array_Aggr_In_Allocator): Adjust formatting.
2285 (Expand_Array_Aggregate): Likewise.
2286 * exp_ch4.adb (Expand_N_Allocator): Set Actual_Designated_Subtype
2287 on the dereference in the initialization for all composite types.
2288 * exp_ch5.adb (Expand_N_Assignment_Statement): Create a temporary
2289 on the host for an assignment between nonnative storage models.
2290 Suppress more checks when Suppress_Assignment_Checks is set.
2291 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Deal with actuals
2292 that are dereferences with an Actual_Designated_Subtype. Add
2293 support for nonnative storage models.
2294 (Expand_Actuals): Create a copy if the actual is a dereference
2295 with a nonnative storage model.
2296 * exp_util.ads (Build_Temporary_On_Secondary_Stack): Declare.
2297 * exp_util.adb (Build_Temporary_On_Secondary_Stack): New function.
2298 * sem_ch5.adb (Analyze_Assignment.Set_Assignment_Type): Do not
2299 build an actual subtype for dereferences with an
2300 Actual_Designated_Subtype
2301 * sinfo.ads (Actual_Designated_Subtype): Adjust documentation.
2302 (Suppress_Assignment_Checks): Likewise.
2304 2023-05-16 Piotr Trojanek <trojanek@adacore.com>
2306 * exp_spark.adb (SPARK_Freeze_Type): Copy whole handling of DIC
2307 and Type_Invariant from Freeze_Type.
2309 2023-05-16 Richard Kenner <kenner@adacore.com>
2311 * sem_util.adb (Subprogram_Name): If what's passed is already an
2312 entity, use that for the name.
2314 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
2316 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
2317 (No_Dependence): Give examples of new No_Dependence restrictions.
2318 * gnat_rm.texi: Regenerate.
2320 2023-05-16 Arnaud Charlet <charlet@adacore.com>
2322 * snames.ads-tmpl (Name_ASCII): New.
2323 * style.adb (Check_Identifier): Fix handling of ASCII.
2325 2023-05-16 Eric Botcazou <ebotcazou@adacore.com>
2327 * gen_il-fields.ads (Opt_Field_Enum): Add Cannot_Be_Superflat.
2328 * gen_il-gen-gen_nodes.adb (N_Range): Add Cannot_Be_Superflat as
2329 semantical flag and change Includes_Infinities to semantical.
2330 * sinfo.ads (Cannot_Be_Superflat): Document it for N_Range.
2331 * exp_ch4.adb (Expand_Concatenate): Set Cannot_Be_Superflat on the
2332 range of the result if the result cannot be null.
2334 2023-05-16 Richard Kenner <kenner@adacore.com>
2336 * gen_il-gen-gen_nodes.adb (Present_Expr): Type is now Uint.
2338 2023-05-16 Yannick Moy <moy@adacore.com>
2340 * libgnat/s-aridou.adb (Big3, Is_Mult_Decomposition)
2341 (Is_Scaled_Mult_Decomposition): Add annotation for inlining.
2342 (Double_Divide, Scaled_Divide): Simplify and remove ghost code.
2343 (Prove_Multiplication): Add calls to lemmas to make proof go
2345 * libgnat/s-aridou.ads (Big, In_Double_Int_Range): Add annotation
2348 2023-05-16 Yannick Moy <moy@adacore.com>
2350 * libgnat/a-strsup.adb: Add intermediate assertions.
2352 2023-05-16 Arnaud Charlet <charlet@adacore.com>
2354 * gnat1drv.adb: Ensure all dependencies are recorded even when not
2357 2023-05-16 Yannick Moy <moy@adacore.com>
2359 * libgnat/a-strsup.adb: Set assertion policy for Loop_Variant.
2361 2023-05-16 Marc Poulhiès <poulhies@adacore.com>
2363 * sem_ch12.adb (Instantiate_Package_Body): Simplify if/then/else.
2364 (Instantiate_Subprogram_Body): Likewise.
2366 2023-05-16 Yannick Moy <moy@adacore.com>
2368 * libgnat/s-aridou.adb:
2369 (Big3): Remove override made useless.
2370 (Lemma_Quot_Rem): Add new lemma and justify it, as no prover
2371 manages to prove it.
2372 (Lemma_Div_Pow2): Use new lemma Lemma_Quot_Rem.
2373 (Prove_Scaled_Mult_Decomposition_Regroup3): Retype for
2375 (Scaled_Divide): Remove useless assertions.Decompose some
2376 assertions with cut operations. Use Assert_And_Cut for second
2377 half. Add assertions.
2379 2023-05-15 Marc Poulhiès <poulhies@adacore.com>
2381 * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment.
2383 2023-05-15 Yannick Moy <moy@adacore.com>
2385 * libgnat/a-strbou.ads: Add justifications for Mapping.
2386 * libgnat/a-strfix.adb: Same.
2387 * libgnat/a-strfix.ads: Same.
2388 * libgnat/a-strsea.adb: Same.
2389 * libgnat/a-strsea.ads: Same.
2390 * libgnat/a-strsup.adb: Same and add loop variants.
2391 * libgnat/a-strsup.ads: Same and add specification of termination.
2393 2023-05-15 Yannick Moy <moy@adacore.com>
2395 * libgnat/a-strsup.adb (Super_Slice): Reorder component assignment
2396 to avoid failing predicate check related to initialization.
2397 * libgnat/s-expmod.adb (Exp_Modular): Add intermediate assertion.
2399 2023-05-15 Yannick Moy <moy@adacore.com>
2401 * libgnat/i-c.adb: Add loop variants. Remove useless
2404 2023-05-15 Bob Duff <duff@adacore.com>
2406 * einfo-utils.ads: Remove comment.
2408 2023-05-15 Bob Duff <duff@adacore.com>
2410 * einfo-utils.ads, einfo-utils.adb: Get rid of the Proc_Next_...
2411 procedures. Use Inline aspect instead of pragma Inline.
2412 Is_Discrete_Or_Fixed_Point_Type did not have pragma Inline, but
2413 now has the aspect; this was probably an oversight
2414 (which illustrates why aspects are better).
2416 2023-05-15 Ronan Desplanques <desplanques@adacore.com>
2418 * doc/gnat_ugn/gnat_utility_programs.rst: Fix formatting
2421 2023-05-15 Bob Duff <duff@adacore.com>
2424 (Proc_Next_Component_Or_Discriminant): Call
2425 Next_Component_Or_Discriminant.
2427 2023-05-15 Bob Duff <duff@adacore.com>
2430 (First_Entity): Update comment explaining why this exists on all
2431 [sub]types, as opposed to just the ones with associated entities.
2433 2023-05-15 Bob Duff <duff@adacore.com>
2436 (Check_Vanishing_Fields): Disable the check for "root/base type
2437 only" fields. This is a bug fix -- if we're checking some subtype
2438 S, we don't want to reach over to the root or base type and
2439 Reinit_Field_To_Zero of that, thus modifying the field for lots of
2440 subtypes other than S. Disable in the to/from E_Void cases. Misc
2442 * gen_il-gen-gen_entities.adb: Define First_Entity, Last_Entity,
2443 and Stored_Constraint for all type entities, because there are too
2444 many cases where Reinit_Field_To_Zero would otherwise be needed.
2445 In any case, it seems cleaner to have First_Entity and Last_Entity
2446 defined in the same entity kinds.
2448 (First_Entity, Last_Entity, Stored_Constraint): Update comments to
2449 reflect gen_il-gen-gen_entities.adb changes.
2450 (Lit_Hash): Add missing "[root type only]" comment.
2451 * exp_ch5.adb: Add Reinit_Field_To_Zero calls for vanishing
2453 * sem_ch10.adb: Likewise.
2454 * sem_ch6.adb: Likewise.
2455 * sem_ch7.adb: Likewise.
2456 * sem_ch8.adb: Likewise.
2457 * sem_ch3.adb: Likewise. Also remove now-unnecessary
2458 Reinit_Field_To_Zero calls.
2460 2023-05-15 Eric Botcazou <ebotcazou@adacore.com>
2462 * sem_ch7.adb (Hide_Public_Entities): Use the same condition for
2463 subprogram bodies without specification as for those with one.
2465 2023-05-15 Piotr Trojanek <trojanek@adacore.com>
2467 * sem_util.adb (New_Copy_Tree): Remove redundant calls to Present.
2469 2023-05-15 Ronan Desplanques <desplanques@adacore.com>
2471 * sem_ch8.adb (End_Scope): Simplify lookup of predecessor in
2474 2023-05-15 Piotr Trojanek <trojanek@adacore.com>
2476 * sem_aggr.adb (Resolve_Aggregate): Accept aggregates with OTHERS
2477 appearing inside unchecked conversions.
2479 2023-05-15 Steve Baird <baird@adacore.com>
2481 * warnsw.ads: Add a new element,
2482 Warn_On_Ineffective_Predicate_Test, to the Opt_Warnings_Enum
2484 * warnsw.adb: Bind "-gnatw_s" to the new
2485 Warn_On_Ineffective_Predicate_Test switch. Add the new switch to
2486 the set of switches enabled by -gnata .
2488 (Build_Discrete_Static_Predicate): Declare new local procedure,
2489 Warn_If_Test_Ineffective, which conditionally generates new
2490 warning. Call this new procedure when building a new element of an
2492 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
2493 Document the -gnatw_s switch (and the corresponding -gnatw_S
2495 * gnat_ugn.texi: Regenerate.
2497 2023-05-15 Yannick Moy <moy@adacore.com>
2499 * sem_attr.adb: Update comment referring to rule number.
2501 2023-05-15 Ronan Desplanques <desplanques@adacore.com>
2503 * sem_attr.adb: sem_attr.adb (Analyze_Access_Attribute): Tighten
2504 validity check for task types.
2506 2023-05-15 Ronan Desplanques <desplanques@adacore.com>
2508 * doc/gnat_rm/implementation_defined_characteristics.rst: Fix
2509 minor documentation formatting issue.
2510 * gnat_rm.texi: Regenerate.
2511 * gnat_ugn.texi: Regenerate.
2513 2023-05-15 Bob Duff <duff@adacore.com>
2516 (Expand_N_Op_Expon): Remove the too-big check. Simplify. Signed
2517 and modular cases are combined, etc. Remove code with comment "We
2518 only handle cases where the right type is a[sic] integer", because
2519 the right operand must always be an integer at this point.
2521 2023-05-15 Bob Duff <duff@adacore.com>
2524 (Analyze_Attribute): Add a call to Check_Error_Detected.
2526 2023-05-15 Yannick Moy <moy@adacore.com>
2528 * par-prag.adb (First_Arg_Is_Matching_Tool_Name): Fix access to
2529 expression in pragma association.
2531 2023-05-15 Eric Botcazou <ebotcazou@adacore.com>
2533 * repinfo.ads (JSON output format): Document special case of
2534 Present member of a Variant object.
2535 * repinfo.adb (List_Structural_Record_Layout): Change the type of
2536 Ext_Level parameter to Integer. Restrict the first recursion with
2537 increasing levels to the fixed part and implement a second
2538 recursion with decreasing levels for the variant part. Deal with
2539 an extension of a type with unknown discriminants.
2541 2023-05-15 Claire Dross <dross@adacore.com>
2543 * libgnat/s-valueu.adb: Use cut operations inside assertion to
2545 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-spark and
2546 s-spcuop dependencies.
2548 2023-05-15 Yannick Moy <moy@adacore.com>
2550 * sem_prag.adb (Check_Grouping): Allow Annotate pragmas between
2553 2023-05-15 Javier Miranda <miranda@adacore.com>
2555 * doc/gnat_rm/implementation_defined_pragmas.rst
2556 (Extensions_Allowed): Document string interpolation.
2557 * gnat_rm.texi: Regenerate.
2558 * gnat_ugn.texi: Regenerate.
2560 2023-05-15 Joel Brobecker <brobecker@adacore.com>
2562 * doc/gnat_ugn/platform_specific_information.rst
2563 (_PIE_Enabled_By_Default_On_Linux): New section.
2564 * gnat-style.texi: Regenerate.
2565 * gnat_ugn.texi: Regenerate.
2567 2023-05-15 Javier Miranda <miranda@adacore.com>
2570 (Has_Dispatching_Constructor_Call): New subprogram.
2571 (Expand_Interface_Conversion): No need to perform dynamic
2572 interface conversion when the operand and the target type are
2573 interface types and the target interface type is an ancestor of
2574 the operand type. The unique exception to this rule is when the
2575 operand has a dispatching constructor call (as documented in the
2578 2023-05-15 Piotr Trojanek <trojanek@adacore.com>
2580 * sem_attr.adb (Analyze_Attribute): Reject attribute Initialized
2581 on unchecked unions; fix grammar in comment.
2583 2023-05-15 Ronan Desplanques <desplanques@adacore.com>
2585 * sem_ch13.adb (Validate_Unchecked_Conversion): Fix behavior on
2586 System.Address to access to subprogram subtype conversion.
2588 2023-05-15 Piotr Trojanek <trojanek@adacore.com>
2591 (Is_Syntactic_Node): Refactored from New_Copy_Tree.
2593 (Is_Syntactic_Node): Likewise.
2594 (Copy_Separate_Tree): Use Is_Syntactic_Node.
2596 (Has_More_Ids): Move to Atree.
2597 (Is_Syntactic_Node): Likewise.
2599 2023-04-18 Jin Ma <jinma@linux.alibaba.com>
2601 * gcc-interface/utils.cc (unchecked_convert): Fix typo.
2603 2023-04-17 Martin Liska <mliska@suse.cz>
2605 * gnatvsn.ads: Bump Library_Version to 14.
2607 2023-04-15 Eric Botcazou <ebotcazou@adacore.com>
2610 * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Do not reset
2611 align to zero in any case. Set TYPE_USER_ALIGN on the type only if
2612 it is an aggregate type, or else a type whose default alignment is
2613 specifically capped on selected platforms.
2615 2023-04-14 Eric Botcazou <ebotcazou@adacore.com>
2618 * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Reset align
2619 to zero if its value is equal to TYPE_ALIGN and the type is scalar.
2620 Set TYPE_USER_ALIGN on the type only if align is positive.
2622 2023-03-06 Javier Miranda <miranda@adacore.com>
2625 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): For functions with
2626 separate spec, if their return type was visible through a limited-
2627 with context clause, their extra formals were not added when the
2628 spec was analyzed. Now the full view must be available, and the
2629 extra formals can be created and Returns_By_Ref computed.
2631 2023-03-06 Eric Botcazou <ebotcazou@adacore.com>
2635 * Make-generated.in: Do not use GNATMAKE.
2636 * gcc-interface/Makefile.in: Ditto.
2638 2023-02-26 Peter Foley <pefoley2@pefoley.com>
2641 * Make-generated.in: Use GNATMAKE.
2642 * gcc-interface/Makefile.in: Ditto.
2644 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
2646 * gcc-interface/trans.cc (gnat_gimplify_expr): Add missing guard.
2648 2023-02-14 Dongsheng Song <dongsheng.song@gmail.com>
2650 * adaint.c [Linux]: Include <features.h>.
2651 (__gnat_get_executable_load_address) [Linux]: Enable only for
2654 2023-01-16 Marc Poulhiès <poulhies@adacore.com>
2656 * gcc-interface/Make-lang.in: Update copyright years.
2657 * gcc-interface/Makefile.in: Likewise.
2658 * gcc-interface/ada-builtin-types.def: Likewise.
2659 * gcc-interface/ada-builtins.def: Likewise.
2660 * gcc-interface/ada-tree.def: Likewise.
2661 * gcc-interface/ada-tree.h: Likewise.
2662 * gcc-interface/ada.h: Likewise.
2663 * gcc-interface/config-lang.in: Likewise.
2664 * gcc-interface/cuintp.cc: Likewise.
2665 * gcc-interface/decl.cc: Likewise.
2666 * gcc-interface/gadaint.h: Likewise.
2667 * gcc-interface/gigi.h: Likewise.
2668 * gcc-interface/lang-specs.h: Likewise.
2669 * gcc-interface/lang.opt: Likewise.
2670 * gcc-interface/misc.cc: Likewise.
2671 * gcc-interface/system.ads: Likewise.
2672 * gcc-interface/targtyps.cc: Likewise.
2673 * gcc-interface/trans.cc: Likewise.
2674 * gcc-interface/utils.cc: Likewise.
2675 * gcc-interface/utils2.cc: Likewise.
2677 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2679 * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment.
2681 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2683 * exp_ch3.adb (Make_Allocator_For_Return): Convert the expression
2684 to the return object's type in the constrained array case as well.
2686 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2688 * exp_ch3.adb (Expand_N_Object_Declaration): For a class-wide non-
2689 interface stand-alone object initialized by a function call, call
2690 Remove_Side_Effects on the expression to capture the result.
2692 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2694 * exp_util.ads (Has_Tag_Of_Type): Declare.
2695 * exp_util.adb (Has_Tag_Of_Type): Move to package level. Recurse on
2696 qualified expressions.
2697 * exp_ch3.adb (Expand_N_Object_Declaration): Use a static reference
2698 to the interface tag in more cases for class-wide interface objects.
2700 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2702 * exp_util.adb (Make_CW_Equivalent_Type.Has_Tag_Of_Type): Fix pasto.
2704 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2706 * exp_util.adb (Is_Temporary_For_Interface_Object): Delete.
2707 (Is_Finalizable_Transient.Is_Aliased): Deal with the specific case
2708 of temporaries generated for interface objects.
2710 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2712 * exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a back-
2713 and-forth displacement of the object's address when using a renaming
2714 for an interface object with an expression of the same type.
2715 * exp_ch4.adb (Expand_Allocator_Expression): Do not remove the side
2716 effects of the expression up front for the simple allocators. Do not
2717 call the Adjust primitive if the expression is a function call.
2718 * exp_ch6.adb (Expand_Ctrl_Function_Call): Do not expand the call
2719 unnecessarily for a special return object.
2720 (Expand_Simple_Function_Return): Restore the displacement of the
2721 return object's address in the case where the expression is the call
2722 to a function whose result type is a type that needs finalization.
2723 * exp_util.adb (Expand_Subtype_From_Expr): Do not remove the side
2724 effects of the expression before calling Make_Subtype_From_Expr.
2725 (Make_CW_Equivalent_Type): If the expression has the tag of its type
2726 and this type has a uniform size, use 'Object_Size of this type in
2727 lieu of 'Size of the expression to compute the expression's size.
2729 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2731 * exp_ch3.adb (Make_Allocator_For_Return): Put back an interface
2732 conversion for expressions with non-interface class-wide type.
2734 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2736 * exp_ch3.adb (Expand_N_Object_Declaration): Also optimize aliased
2737 objects if their nominal subtype is not an unconstrained array.
2739 2023-01-16 Eric Botcazou <ebotcazou@adacore.com>
2741 * exp_ch3.adb (Expand_N_Object_Declaration): Factor out conditions
2742 needed for an initializating expression that is a function call to
2743 be renamable into the Is_Renamable_Function_Call predicate.
2744 Use it to implement the renaming in the case of class-wide interface
2745 objects. Remove an interface conversion on all paths, separate and
2746 optimize the renaming path in the special expansion for interfaces.
2747 (Is_Renamable_Function_Call): New predicate.
2748 (Make_Allocator_For_Return): Put back an interface conversion.
2749 * exp_ch6.adb (Apply_CW_Accessibility_Check): Remove useless access
2750 checks on RE_Tag_Ptr.
2752 2023-01-09 Arnaud Charlet <charlet@adacore.com>
2754 * accessibility.adb, accessibility.ads, ada_get_targ.adb: Update copyright year.
2755 * adabkend.adb, adabkend.ads, adadecode.c, adadecode.h, adaint.c: Likewise.
2756 * adaint.h, affinity.c, ali-util.adb, ali-util.ads, ali.adb: Likewise.
2757 * ali.ads, alloc.ads, argv-lynxos178-raven-cert.c, argv.c: Likewise.
2758 * aspects.adb, aspects.ads, atree.adb, atree.ads, atree.h: Likewise.
2759 * aux-io.c, back_end.adb, back_end.ads, backend_utils.adb: Likewise.
2760 * backend_utils.ads, bcheck.adb, bcheck.ads, binde.adb, binde.ads: Likewise.
2761 * binderr.adb, binderr.ads, bindgen.adb, bindgen.ads: Likewise.
2762 * bindo-augmentors.adb, bindo-augmentors.ads, bindo-builders.adb: Likewise.
2763 * bindo-builders.ads, bindo-diagnostics.adb: Likewise.
2764 * bindo-diagnostics.ads, bindo-elaborators.adb: Likewise.
2765 * bindo-elaborators.ads, bindo-graphs.adb, bindo-graphs.ads: Likewise.
2766 * bindo-units.adb, bindo-units.ads, bindo-validators.adb: Likewise.
2767 * bindo-validators.ads, bindo-writers.adb, bindo-writers.ads: Likewise.
2768 * bindo.adb, bindo.ads, bindusg.adb, bindusg.ads, butil.adb: Likewise.
2769 * butil.ads, cal.c, casing.adb, casing.ads, checks.adb: Likewise.
2770 * checks.ads, cio.c, clean.adb, clean.ads: Likewise.
2771 * comperr.adb, comperr.ads, contracts.adb, contracts.ads: Likewise.
2772 * csets.adb, csets.ads, cstand.adb: Likewise.
2773 * cstand.ads, cstreams.c, ctrl_c.c, debug.adb, debug.ads: Likewise.
2774 * debug_a.adb, debug_a.ads, einfo-utils.adb, einfo-utils.ads: Likewise.
2775 * einfo.adb, einfo.ads, elists.adb, elists.ads, elists.h, env.c: Likewise.
2776 * env.h, err_vars.ads, errno.c, errout.adb, errout.ads: Likewise.
2777 * erroutc.adb, erroutc.ads, errutil.adb, errutil.ads: Likewise.
2778 * eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb, exp_aggr.ads: Likewise.
2779 * exp_atag.adb, exp_atag.ads, exp_attr.adb, exp_attr.ads: Likewise.
2780 * exp_cg.adb, exp_cg.ads, exp_ch10.ads, exp_ch11.adb: Likewise.
2781 * exp_ch11.ads, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb: Likewise.
2782 * exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.adb: Likewise.
2783 * exp_ch3.ads, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb, exp_ch5.ads: Likewise.
2784 * exp_ch6.adb, exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, exp_ch8.adb: Likewise.
2785 * exp_ch8.ads, exp_ch9.adb, exp_ch9.ads, exp_code.adb: Likewise.
2786 * exp_code.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.adb: Likewise.
2787 * exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb: Likewise.
2788 * exp_fixd.ads, exp_imgv.adb, exp_imgv.ads, exp_intr.adb: Likewise.
2789 * exp_intr.ads, exp_pakd.adb, exp_pakd.ads, exp_prag.adb: Likewise.
2790 * exp_prag.ads, exp_put_image.adb, exp_put_image.ads, exp_sel.adb: Likewise.
2791 * exp_sel.ads, exp_smem.adb, exp_smem.ads, exp_spark.adb: Likewise.
2792 * exp_spark.ads, exp_strm.adb, exp_strm.ads, exp_tss.adb: Likewise.
2793 * exp_tss.ads, exp_unst.adb, exp_unst.ads, exp_util.adb: Likewise.
2794 * exp_util.ads, expander.adb, expander.ads, expect.c, fe.h: Likewise.
2795 * final.c, fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads: Likewise.
2796 * fname-uf.adb, fname-uf.ads, fname.adb, fname.ads, freeze.adb: Likewise.
2797 * freeze.ads, frontend.adb, frontend.ads, gen_il-fields.ads: Likewise.
2798 * gen_il-gen-gen_entities.adb, gen_il-gen-gen_nodes.adb: Likewise.
2799 * gen_il-gen.adb, gen_il-gen.ads, gen_il-internals.adb: Likewise.
2800 * gen_il-internals.ads, gen_il-main.adb, gen_il-types.ads: Likewise.
2801 * gen_il.adb, gen_il.ads, get_scos.adb, get_scos.ads: Likewise.
2802 * get_targ.adb, get_targ.ads, ghost.adb, ghost.ads, gnat1drv.adb: Likewise.
2803 * gnat1drv.ads, gnat_cuda.adb, gnat_cuda.ads: Likewise.
2804 * gnatbind.adb, gnatbind.ads, gnatchop.adb: Likewise.
2805 * gnatclean.adb, gnatcmd.adb, gnatcmd.ads, gnatdll.adb: Likewise.
2806 * gnatkr.adb, gnatkr.ads, gnatlink.adb, gnatlink.ads, gnatls.adb: Likewise.
2807 * gnatls.ads, gnatmake.adb, gnatmake.ads, gnatname.adb: Likewise.
2808 * gnatname.ads, gnatprep.adb, gnatprep.ads: Likewise.
2809 * gprep.adb, gprep.ads, gsocket.h: Likewise.
2810 * hostparm.ads: Likewise.
2811 * impunit.adb, impunit.ads, indepsw-aix.adb, indepsw-darwin.adb: Likewise.
2812 * indepsw-gnu.adb, indepsw.adb, indepsw.ads, init.c: Likewise.
2813 * initialize.c, inline.adb, inline.ads, itypes.adb, itypes.ads: Likewise.
2814 * krunch.adb, krunch.ads, layout.adb, layout.ads: Likewise.
2815 * lib-list.adb, lib-load.adb, lib-load.ads, lib-sort.adb: Likewise.
2816 * lib-util.adb, lib-util.ads, lib-writ.adb, lib-writ.ads: Likewise.
2817 * lib-xref-spark_specific.adb, lib-xref.adb, lib-xref.ads: Likewise.
2818 * lib.adb, lib.ads, libgnarl/a-astaco.adb, libgnarl/a-dispat.adb: Likewise.
2819 * libgnarl/a-dynpri.adb, libgnarl/a-etgrbu.ads: Likewise.
2820 * libgnarl/a-exetim__darwin.adb, libgnarl/a-exetim__default.ads: Likewise.
2821 * libgnarl/a-exetim__mingw.adb, libgnarl/a-exetim__mingw.ads: Likewise.
2822 * libgnarl/a-exetim__posix.adb, libgnarl/a-interr.adb: Likewise.
2823 * libgnarl/a-interr.ads, libgnarl/a-intnam.ads: Likewise.
2824 * libgnarl/a-intnam__aix.ads, libgnarl/a-intnam__darwin.ads: Likewise.
2825 * libgnarl/a-intnam__dragonfly.ads, libgnarl/a-intnam__dummy.ads: Likewise.
2826 * libgnarl/a-intnam__freebsd.ads, libgnarl/a-intnam__hpux.ads: Likewise.
2827 * libgnarl/a-intnam__linux.ads, libgnarl/a-intnam__lynxos.ads: Likewise.
2828 * libgnarl/a-intnam__mingw.ads, libgnarl/a-intnam__qnx.ads: Likewise.
2829 * libgnarl/a-intnam__rtems.ads, libgnarl/a-intnam__solaris.ads: Likewise.
2830 * libgnarl/a-intnam__vxworks.ads, libgnarl/a-reatim.adb: Likewise.
2831 * libgnarl/a-reatim.ads, libgnarl/a-retide.adb: Likewise.
2832 * libgnarl/a-retide.ads, libgnarl/a-rttiev.adb: Likewise.
2833 * libgnarl/a-rttiev.ads, libgnarl/a-synbar.adb: Likewise.
2834 * libgnarl/a-synbar.ads, libgnarl/a-synbar__posix.adb: Likewise.
2835 * libgnarl/a-synbar__posix.ads, libgnarl/a-sytaco.adb: Likewise.
2836 * libgnarl/a-sytaco.ads, libgnarl/a-tasatt.adb: Likewise.
2837 * libgnarl/a-tasatt.ads, libgnarl/a-taside.adb: Likewise.
2838 * libgnarl/a-taside.ads, libgnarl/a-tasini.adb: Likewise.
2839 * libgnarl/a-tasini.ads, libgnarl/a-taster.adb: Likewise.
2840 * libgnarl/g-boubuf.adb, libgnarl/g-boubuf.ads: Likewise.
2841 * libgnarl/g-boumai.ads, libgnarl/g-semaph.adb: Likewise.
2842 * libgnarl/g-semaph.ads, libgnarl/g-signal.adb: Likewise.
2843 * libgnarl/g-signal.ads, libgnarl/g-tastus.ads: Likewise.
2844 * libgnarl/g-thread.adb, libgnarl/g-thread.ads: Likewise.
2845 * libgnarl/i-vxinco.adb, libgnarl/i-vxinco.ads: Likewise.
2846 * libgnarl/s-inmaop.ads, libgnarl/s-inmaop__dummy.adb: Likewise.
2847 * libgnarl/s-inmaop__hwint.adb, libgnarl/s-inmaop__posix.adb: Likewise.
2848 * libgnarl/s-interr.adb, libgnarl/s-interr.ads: Likewise.
2849 * libgnarl/s-interr__dummy.adb, libgnarl/s-interr__hwint.adb: Likewise.
2850 * libgnarl/s-interr__sigaction.adb: Likewise.
2851 * libgnarl/s-interr__vxworks.adb, libgnarl/s-intman.ads: Likewise.
2852 * libgnarl/s-intman__android.adb, libgnarl/s-intman__dummy.adb: Likewise.
2853 * libgnarl/s-intman__lynxos.adb, libgnarl/s-intman__mingw.adb: Likewise.
2854 * libgnarl/s-intman__posix.adb, libgnarl/s-intman__qnx.adb: Likewise.
2855 * libgnarl/s-intman__rtems.adb, libgnarl/s-intman__rtems.ads: Likewise.
2856 * libgnarl/s-intman__solaris.adb, libgnarl/s-intman__susv3.adb: Likewise.
2857 * libgnarl/s-intman__vxworks.adb, libgnarl/s-intman__vxworks.ads: Likewise.
2858 * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads: Likewise.
2859 * libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads: Likewise.
2860 * libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads: Likewise.
2861 * libgnarl/s-linux__sparc.ads, libgnarl/s-linux__x32.ads: Likewise.
2862 * libgnarl/s-mudido.adb, libgnarl/s-mudido__affinity.adb: Likewise.
2863 * libgnarl/s-osinte__aix.adb, libgnarl/s-osinte__aix.ads: Likewise.
2864 * libgnarl/s-osinte__android.adb, libgnarl/s-osinte__android.ads: Likewise.
2865 * libgnarl/s-osinte__darwin.adb, libgnarl/s-osinte__darwin.ads: Likewise.
2866 * libgnarl/s-osinte__dragonfly.adb: Likewise.
2867 * libgnarl/s-osinte__dragonfly.ads, libgnarl/s-osinte__dummy.ads: Likewise.
2868 * libgnarl/s-osinte__freebsd.adb, libgnarl/s-osinte__freebsd.ads: Likewise.
2869 * libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__gnu.ads: Likewise.
2870 * libgnarl/s-osinte__hpux-dce.adb: Likewise.
2871 * libgnarl/s-osinte__hpux-dce.ads, libgnarl/s-osinte__hpux.ads: Likewise.
2872 * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
2873 * libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178.adb: Likewise.
2874 * libgnarl/s-osinte__lynxos178e.ads, libgnarl/s-osinte__mingw.ads: Likewise.
2875 * libgnarl/s-osinte__posix.adb, libgnarl/s-osinte__qnx.adb: Likewise.
2876 * libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.adb: Likewise.
2877 * libgnarl/s-osinte__rtems.ads, libgnarl/s-osinte__solaris.adb: Likewise.
2878 * libgnarl/s-osinte__solaris.ads, libgnarl/s-osinte__vxworks.adb: Likewise.
2879 * libgnarl/s-osinte__vxworks.ads, libgnarl/s-osinte__x32.adb: Likewise.
2880 * libgnarl/s-proinf.adb, libgnarl/s-proinf.ads: Likewise.
2881 * libgnarl/s-putaim.adb, libgnarl/s-putaim.ads: Likewise.
2882 * libgnarl/s-qnx.ads, libgnarl/s-solita.adb: Likewise.
2883 * libgnarl/s-solita.ads, libgnarl/s-stusta.adb: Likewise.
2884 * libgnarl/s-stusta.ads, libgnarl/s-taasde.adb: Likewise.
2885 * libgnarl/s-taasde.ads, libgnarl/s-tadeca.adb: Likewise.
2886 * libgnarl/s-tadeca.ads, libgnarl/s-tadert.adb: Likewise.
2887 * libgnarl/s-tadert.ads, libgnarl/s-taenca.adb: Likewise.
2888 * libgnarl/s-taenca.ads, libgnarl/s-taprob.adb: Likewise.
2889 * libgnarl/s-taprob.ads, libgnarl/s-taprop.ads: Likewise.
2890 * libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb: Likewise.
2891 * libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb: Likewise.
2892 * libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb: Likewise.
2893 * libgnarl/s-taprop__rtems.adb, libgnarl/s-taprop__solaris.adb: Likewise.
2894 * libgnarl/s-taprop__vxworks.adb, libgnarl/s-tarest.adb: Likewise.
2895 * libgnarl/s-tarest.ads, libgnarl/s-tasdeb.adb: Likewise.
2896 * libgnarl/s-tasdeb.ads, libgnarl/s-tasinf.adb: Likewise.
2897 * libgnarl/s-tasinf.ads, libgnarl/s-tasinf__linux.adb: Likewise.
2898 * libgnarl/s-tasinf__linux.ads, libgnarl/s-tasinf__mingw.adb: Likewise.
2899 * libgnarl/s-tasinf__mingw.ads, libgnarl/s-tasinf__solaris.adb: Likewise.
2900 * libgnarl/s-tasinf__solaris.ads, libgnarl/s-tasinf__vxworks.ads: Likewise.
2901 * libgnarl/s-tasini.adb, libgnarl/s-tasini.ads: Likewise.
2902 * libgnarl/s-taskin.adb, libgnarl/s-taskin.ads: Likewise.
2903 * libgnarl/s-taspri__dummy.ads, libgnarl/s-taspri__hpux-dce.ads: Likewise.
2904 * libgnarl/s-taspri__lynxos.ads, libgnarl/s-taspri__mingw.ads: Likewise.
2905 * libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
2906 * libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads: Likewise.
2907 * libgnarl/s-taspri__vxworks.ads, libgnarl/s-tasque.adb: Likewise.
2908 * libgnarl/s-tasque.ads, libgnarl/s-tasren.adb: Likewise.
2909 * libgnarl/s-tasren.ads, libgnarl/s-tasres.ads: Likewise.
2910 * libgnarl/s-tassta.adb, libgnarl/s-tassta.ads: Likewise.
2911 * libgnarl/s-tasuti.adb, libgnarl/s-tasuti.ads: Likewise.
2912 * libgnarl/s-tataat.adb, libgnarl/s-tataat.ads: Likewise.
2913 * libgnarl/s-tpinop.adb, libgnarl/s-tpinop.ads: Likewise.
2914 * libgnarl/s-tpoaal.adb, libgnarl/s-tpoben.adb: Likewise.
2915 * libgnarl/s-tpoben.ads, libgnarl/s-tpobmu.adb: Likewise.
2916 * libgnarl/s-tpobmu.ads, libgnarl/s-tpobop.adb: Likewise.
2917 * libgnarl/s-tpobop.ads, libgnarl/s-tpopmo.adb: Likewise.
2918 * libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
2919 * libgnarl/s-tpopsp__posix.adb, libgnarl/s-tpopsp__solaris.adb: Likewise.
2920 * libgnarl/s-tpopsp__tls.adb, libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
2921 * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
2922 * libgnarl/s-tpopsp__vxworks.adb, libgnarl/s-tporft.adb: Likewise.
2923 * libgnarl/s-tposen.adb, libgnarl/s-tposen.ads: Likewise.
2924 * libgnarl/s-vxwext.adb, libgnarl/s-vxwext.ads: Likewise.
2925 * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
2926 * libgnarl/s-vxwext__kernel.adb, libgnarl/s-vxwext__kernel.ads: Likewise.
2927 * libgnarl/s-vxwext__rtp-smp.adb, libgnarl/s-vxwext__rtp.adb: Likewise.
2928 * libgnarl/s-vxwext__rtp.ads, libgnarl/s-vxwork__aarch64.ads: Likewise.
2929 * libgnarl/s-vxwork__arm.ads, libgnarl/s-vxwork__ppc.ads: Likewise.
2930 * libgnarl/s-vxwork__x86.ads, libgnarl/thread.c: Likewise.
2931 * libgnat/a-assert.adb, libgnat/a-assert.ads: Likewise.
2932 * libgnat/a-btgbso.adb, libgnat/a-btgbso.ads: Likewise.
2933 * libgnat/a-calari.adb, libgnat/a-calari.ads: Likewise.
2934 * libgnat/a-calcon.adb, libgnat/a-calcon.ads: Likewise.
2935 * libgnat/a-caldel.adb, libgnat/a-caldel.ads: Likewise.
2936 * libgnat/a-calend.adb, libgnat/a-calend.ads: Likewise.
2937 * libgnat/a-calfor.adb, libgnat/a-calfor.ads: Likewise.
2938 * libgnat/a-catizo.adb, libgnat/a-cbdlli.adb: Likewise.
2939 * libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb: Likewise.
2940 * libgnat/a-cbhama.ads, libgnat/a-cbhase.adb: Likewise.
2941 * libgnat/a-cbhase.ads, libgnat/a-cbmutr.adb: Likewise.
2942 * libgnat/a-cbmutr.ads, libgnat/a-cborma.adb: Likewise.
2943 * libgnat/a-cborma.ads, libgnat/a-cborse.adb: Likewise.
2944 * libgnat/a-cborse.ads, libgnat/a-cbprqu.adb: Likewise.
2945 * libgnat/a-cbprqu.ads, libgnat/a-cbsyqu.adb: Likewise.
2946 * libgnat/a-cbsyqu.ads, libgnat/a-cdlili.adb: Likewise.
2947 * libgnat/a-cdlili.ads, libgnat/a-cfdlli.ads: Likewise.
2948 * libgnat/a-cfhama.ads, libgnat/a-cfhase.ads: Likewise.
2949 * libgnat/a-cfidll.ads, libgnat/a-cfinse.ads: Likewise.
2950 * libgnat/a-cfinve.ads, libgnat/a-cforma.ads: Likewise.
2951 * libgnat/a-cforse.ads, libgnat/a-cgaaso.adb: Likewise.
2952 * libgnat/a-cgaaso.ads, libgnat/a-cgarso.adb: Likewise.
2953 * libgnat/a-cgcaso.adb, libgnat/a-chacon.adb: Likewise.
2954 * libgnat/a-chacon.ads, libgnat/a-chahan.adb: Likewise.
2955 * libgnat/a-chahan.ads, libgnat/a-chlat9.ads: Likewise.
2956 * libgnat/a-chtgbk.adb, libgnat/a-chtgbk.ads: Likewise.
2957 * libgnat/a-chtgbo.adb, libgnat/a-chtgbo.ads: Likewise.
2958 * libgnat/a-chtgfk.adb, libgnat/a-chtgfk.ads: Likewise.
2959 * libgnat/a-chtgfo.adb, libgnat/a-chtgfo.ads: Likewise.
2960 * libgnat/a-chtgke.adb, libgnat/a-chtgke.ads: Likewise.
2961 * libgnat/a-chtgop.adb, libgnat/a-chtgop.ads: Likewise.
2962 * libgnat/a-chzla1.ads, libgnat/a-chzla9.ads: Likewise.
2963 * libgnat/a-cidlli.adb, libgnat/a-cidlli.ads: Likewise.
2964 * libgnat/a-cihama.adb, libgnat/a-cihama.ads: Likewise.
2965 * libgnat/a-cihase.adb, libgnat/a-cihase.ads: Likewise.
2966 * libgnat/a-cimutr.adb, libgnat/a-cimutr.ads: Likewise.
2967 * libgnat/a-ciorma.adb, libgnat/a-ciorma.ads: Likewise.
2968 * libgnat/a-ciormu.adb, libgnat/a-ciormu.ads: Likewise.
2969 * libgnat/a-ciorse.adb, libgnat/a-ciorse.ads: Likewise.
2970 * libgnat/a-clrefi.adb, libgnat/a-clrefi.ads: Likewise.
2971 * libgnat/a-coboho.adb, libgnat/a-coboho.ads: Likewise.
2972 * libgnat/a-cobove.adb, libgnat/a-cobove.ads: Likewise.
2973 * libgnat/a-cofove.ads, libgnat/a-cofuma.ads: Likewise.
2974 * libgnat/a-cofuse.ads, libgnat/a-cofuve.ads: Likewise.
2975 * libgnat/a-cogeso.adb, libgnat/a-cogeso.ads: Likewise.
2976 * libgnat/a-cohama.adb, libgnat/a-cohama.ads: Likewise.
2977 * libgnat/a-cohase.adb, libgnat/a-cohase.ads: Likewise.
2978 * libgnat/a-cohata.ads, libgnat/a-coinho.adb: Likewise.
2979 * libgnat/a-coinho.ads, libgnat/a-coinho__shared.adb: Likewise.
2980 * libgnat/a-coinho__shared.ads, libgnat/a-coinve.adb: Likewise.
2981 * libgnat/a-coinve.ads, libgnat/a-colien.adb: Likewise.
2982 * libgnat/a-colien.ads, libgnat/a-colire.adb: Likewise.
2983 * libgnat/a-colire.ads, libgnat/a-comlin.adb: Likewise.
2984 * libgnat/a-comlin.ads, libgnat/a-comutr.adb: Likewise.
2985 * libgnat/a-comutr.ads, libgnat/a-conhel.adb: Likewise.
2986 * libgnat/a-conhel.ads, libgnat/a-convec.adb: Likewise.
2987 * libgnat/a-convec.ads, libgnat/a-coorma.adb: Likewise.
2988 * libgnat/a-coorma.ads, libgnat/a-coormu.adb: Likewise.
2989 * libgnat/a-coormu.ads, libgnat/a-coorse.adb: Likewise.
2990 * libgnat/a-coorse.ads, libgnat/a-coprnu.adb: Likewise.
2991 * libgnat/a-coprnu.ads, libgnat/a-costso.adb: Likewise.
2992 * libgnat/a-costso.ads, libgnat/a-crbltr.ads: Likewise.
2993 * libgnat/a-crbtgk.adb, libgnat/a-crbtgk.ads: Likewise.
2994 * libgnat/a-crbtgo.adb, libgnat/a-crbtgo.ads: Likewise.
2995 * libgnat/a-crdlli.adb, libgnat/a-crdlli.ads: Likewise.
2996 * libgnat/a-csquin.ads, libgnat/a-cuprqu.adb: Likewise.
2997 * libgnat/a-cuprqu.ads, libgnat/a-cusyqu.adb: Likewise.
2998 * libgnat/a-cusyqu.ads, libgnat/a-cwila1.ads: Likewise.
2999 * libgnat/a-cwila9.ads, libgnat/a-decima.adb: Likewise.
3000 * libgnat/a-decima.ads, libgnat/a-decima__128.ads: Likewise.
3001 * libgnat/a-dhfina.adb, libgnat/a-dhfina.ads: Likewise.
3002 * libgnat/a-diocst.adb, libgnat/a-diocst.ads: Likewise.
3003 * libgnat/a-direct.adb, libgnat/a-direct.ads: Likewise.
3004 * libgnat/a-direio.adb, libgnat/a-direio.ads: Likewise.
3005 * libgnat/a-dirval.adb, libgnat/a-dirval.ads: Likewise.
3006 * libgnat/a-dirval__mingw.adb, libgnat/a-einuoc.adb: Likewise.
3007 * libgnat/a-einuoc.ads, libgnat/a-elchha.adb: Likewise.
3008 * libgnat/a-elchha.ads, libgnat/a-envvar.adb: Likewise.
3009 * libgnat/a-excach.adb, libgnat/a-except.adb: Likewise.
3010 * libgnat/a-except.ads, libgnat/a-exctra.adb: Likewise.
3011 * libgnat/a-exctra.ads, libgnat/a-exexda.adb: Likewise.
3012 * libgnat/a-exexpr.adb, libgnat/a-exextr.adb: Likewise.
3013 * libgnat/a-exstat.adb, libgnat/a-finali.adb: Likewise.
3014 * libgnat/a-finali.ads, libgnat/a-locale.adb: Likewise.
3015 * libgnat/a-locale.ads, libgnat/a-nagefl.ads: Likewise.
3016 * libgnat/a-naliop.ads, libgnat/a-naliop__nolibm.ads: Likewise.
3017 * libgnat/a-nallfl.ads, libgnat/a-nallfl__wraplf.ads: Likewise.
3018 * libgnat/a-nalofl.ads, libgnat/a-nalofl__simd.ads: Likewise.
3019 * libgnat/a-nashfl.ads, libgnat/a-nashfl__wraplf.ads: Likewise.
3020 * libgnat/a-nbnbig.adb, libgnat/a-nbnbin.adb: Likewise.
3021 * libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb: Likewise.
3022 * libgnat/a-ngcefu.adb, libgnat/a-ngcoar.adb: Likewise.
3023 * libgnat/a-ngcoty.adb, libgnat/a-ngcoty.ads: Likewise.
3024 * libgnat/a-ngelfu.adb, libgnat/a-ngelfu.ads: Likewise.
3025 * libgnat/a-ngrear.adb, libgnat/a-ngrear.ads: Likewise.
3026 * libgnat/a-nuauco.ads, libgnat/a-nuauco__x86.ads: Likewise.
3027 * libgnat/a-nuaufl.ads, libgnat/a-nuaufl__simd.ads: Likewise.
3028 * libgnat/a-nuaufl__wraplf.ads, libgnat/a-nudira.adb: Likewise.
3029 * libgnat/a-nudira.ads, libgnat/a-nuflra.adb: Likewise.
3030 * libgnat/a-nuflra.ads, libgnat/a-numaux.ads: Likewise.
3031 * libgnat/a-rbtgbk.adb, libgnat/a-rbtgbk.ads: Likewise.
3032 * libgnat/a-rbtgbo.adb, libgnat/a-rbtgbo.ads: Likewise.
3033 * libgnat/a-rbtgso.adb, libgnat/a-rbtgso.ads: Likewise.
3034 * libgnat/a-sbecin.adb, libgnat/a-sbecin.ads: Likewise.
3035 * libgnat/a-sbhcin.adb, libgnat/a-sbhcin.ads: Likewise.
3036 * libgnat/a-sblcin.adb, libgnat/a-sblcin.ads: Likewise.
3037 * libgnat/a-secain.adb, libgnat/a-secain.ads: Likewise.
3038 * libgnat/a-sequio.adb, libgnat/a-sequio.ads: Likewise.
3039 * libgnat/a-sfecin.ads, libgnat/a-sfhcin.ads: Likewise.
3040 * libgnat/a-sflcin.ads, libgnat/a-shcain.adb: Likewise.
3041 * libgnat/a-shcain.ads, libgnat/a-siocst.adb: Likewise.
3042 * libgnat/a-siocst.ads, libgnat/a-slcain.adb: Likewise.
3043 * libgnat/a-slcain.ads, libgnat/a-ssicst.adb: Likewise.
3044 * libgnat/a-ssicst.ads, libgnat/a-stboha.adb: Likewise.
3045 * libgnat/a-stbubo.adb, libgnat/a-stbubo.ads: Likewise.
3046 * libgnat/a-stbufi.adb, libgnat/a-stbufi.ads: Likewise.
3047 * libgnat/a-stbufo.adb, libgnat/a-stbufo.ads: Likewise.
3048 * libgnat/a-stbuun.adb, libgnat/a-stbuut.adb: Likewise.
3049 * libgnat/a-stbuut.ads, libgnat/a-stmaco.ads: Likewise.
3050 * libgnat/a-storio.adb, libgnat/a-strbou.adb: Likewise.
3051 * libgnat/a-strbou.ads, libgnat/a-stream.adb: Likewise.
3052 * libgnat/a-stream.ads, libgnat/a-strfix.adb: Likewise.
3053 * libgnat/a-strhas.adb, libgnat/a-strmap.adb: Likewise.
3054 * libgnat/a-strmap.ads, libgnat/a-strsea.adb: Likewise.
3055 * libgnat/a-strsea.ads, libgnat/a-strsto.ads: Likewise.
3056 * libgnat/a-strsup.adb, libgnat/a-strsup.ads: Likewise.
3057 * libgnat/a-strunb.adb, libgnat/a-strunb.ads: Likewise.
3058 * libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads: Likewise.
3059 * libgnat/a-ststbo.adb, libgnat/a-ststbo.ads: Likewise.
3060 * libgnat/a-ststio.adb, libgnat/a-ststio.ads: Likewise.
3061 * libgnat/a-ststun.adb, libgnat/a-ststun.ads: Likewise.
3062 * libgnat/a-sttebu.adb, libgnat/a-stunau.adb: Likewise.
3063 * libgnat/a-stunau.ads, libgnat/a-stunau__shared.adb: Likewise.
3064 * libgnat/a-stunha.adb, libgnat/a-stuten.adb: Likewise.
3065 * libgnat/a-stwibo.adb, libgnat/a-stwibo.ads: Likewise.
3066 * libgnat/a-stwifi.adb, libgnat/a-stwiha.adb: Likewise.
3067 * libgnat/a-stwima.adb, libgnat/a-stwima.ads: Likewise.
3068 * libgnat/a-stwise.adb, libgnat/a-stwise.ads: Likewise.
3069 * libgnat/a-stwisu.adb, libgnat/a-stwisu.ads: Likewise.
3070 * libgnat/a-stwiun.adb, libgnat/a-stwiun.ads: Likewise.
3071 * libgnat/a-stwiun__shared.adb, libgnat/a-stwiun__shared.ads: Likewise.
3072 * libgnat/a-stzbou.adb, libgnat/a-stzbou.ads: Likewise.
3073 * libgnat/a-stzfix.adb, libgnat/a-stzhas.adb: Likewise.
3074 * libgnat/a-stzmap.adb, libgnat/a-stzmap.ads: Likewise.
3075 * libgnat/a-stzsea.adb, libgnat/a-stzsea.ads: Likewise.
3076 * libgnat/a-stzsup.adb, libgnat/a-stzsup.ads: Likewise.
3077 * libgnat/a-stzunb.adb, libgnat/a-stzunb.ads: Likewise.
3078 * libgnat/a-stzunb__shared.adb, libgnat/a-stzunb__shared.ads: Likewise.
3079 * libgnat/a-suecin.adb, libgnat/a-suecin.ads: Likewise.
3080 * libgnat/a-suenco.adb, libgnat/a-suenst.adb: Likewise.
3081 * libgnat/a-suewst.adb, libgnat/a-suezst.adb: Likewise.
3082 * libgnat/a-suhcin.adb, libgnat/a-suhcin.ads: Likewise.
3083 * libgnat/a-sulcin.adb, libgnat/a-sulcin.ads: Likewise.
3084 * libgnat/a-suteio.adb, libgnat/a-suteio.ads: Likewise.
3085 * libgnat/a-suteio__shared.adb, libgnat/a-swbwha.adb: Likewise.
3086 * libgnat/a-swmwco.ads, libgnat/a-swunau.adb: Likewise.
3087 * libgnat/a-swunau.ads, libgnat/a-swunau__shared.adb: Likewise.
3088 * libgnat/a-swuwha.adb, libgnat/a-swuwti.adb: Likewise.
3089 * libgnat/a-swuwti.ads, libgnat/a-swuwti__shared.adb: Likewise.
3090 * libgnat/a-szbzha.adb, libgnat/a-szmzco.ads: Likewise.
3091 * libgnat/a-szunau.adb, libgnat/a-szunau.ads: Likewise.
3092 * libgnat/a-szunau__shared.adb, libgnat/a-szuzha.adb: Likewise.
3093 * libgnat/a-szuzti.adb, libgnat/a-szuzti.ads: Likewise.
3094 * libgnat/a-szuzti__shared.adb, libgnat/a-tags.adb: Likewise.
3095 * libgnat/a-tags.ads, libgnat/a-teioed.adb, libgnat/a-teioed.ads: Likewise.
3096 * libgnat/a-textio.adb, libgnat/a-textio.ads: Likewise.
3097 * libgnat/a-tiboio.adb, libgnat/a-ticoau.adb: Likewise.
3098 * libgnat/a-ticoau.ads, libgnat/a-ticoio.adb: Likewise.
3099 * libgnat/a-ticoio.ads, libgnat/a-tideau.adb: Likewise.
3100 * libgnat/a-tideau.ads, libgnat/a-tideio.adb: Likewise.
3101 * libgnat/a-tideio.ads, libgnat/a-tideio__128.adb: Likewise.
3102 * libgnat/a-tienau.adb, libgnat/a-tienau.ads: Likewise.
3103 * libgnat/a-tienio.adb, libgnat/a-tifiau.adb: Likewise.
3104 * libgnat/a-tifiau.ads, libgnat/a-tifiio.adb: Likewise.
3105 * libgnat/a-tifiio__128.adb, libgnat/a-tiflau.adb: Likewise.
3106 * libgnat/a-tiflau.ads, libgnat/a-tiflio.adb: Likewise.
3107 * libgnat/a-tiflio.ads, libgnat/a-tigeau.adb: Likewise.
3108 * libgnat/a-tigeau.ads, libgnat/a-tigeli.adb: Likewise.
3109 * libgnat/a-tiinau.adb, libgnat/a-tiinau.ads: Likewise.
3110 * libgnat/a-tiinio.adb, libgnat/a-tiinio.ads: Likewise.
3111 * libgnat/a-tiinio__128.adb, libgnat/a-timoio.adb: Likewise.
3112 * libgnat/a-timoio.ads, libgnat/a-timoio__128.adb: Likewise.
3113 * libgnat/a-tiocst.adb, libgnat/a-tiocst.ads: Likewise.
3114 * libgnat/a-tirsfi.adb, libgnat/a-tirsfi.ads: Likewise.
3115 * libgnat/a-titest.adb, libgnat/a-undesu.adb: Likewise.
3116 * libgnat/a-wichha.adb, libgnat/a-wichun.adb: Likewise.
3117 * libgnat/a-wichun.ads, libgnat/a-witeio.adb: Likewise.
3118 * libgnat/a-witeio.ads, libgnat/a-wrstfi.adb: Likewise.
3119 * libgnat/a-wrstfi.ads, libgnat/a-wtcoau.adb: Likewise.
3120 * libgnat/a-wtcoau.ads, libgnat/a-wtcoio.adb: Likewise.
3121 * libgnat/a-wtcstr.adb, libgnat/a-wtcstr.ads: Likewise.
3122 * libgnat/a-wtdeau.adb, libgnat/a-wtdeau.ads: Likewise.
3123 * libgnat/a-wtdeio.adb, libgnat/a-wtdeio__128.adb: Likewise.
3124 * libgnat/a-wtedit.adb, libgnat/a-wtedit.ads: Likewise.
3125 * libgnat/a-wtenau.adb, libgnat/a-wtenau.ads: Likewise.
3126 * libgnat/a-wtenio.adb, libgnat/a-wtfiau.adb: Likewise.
3127 * libgnat/a-wtfiau.ads, libgnat/a-wtfiio.adb: Likewise.
3128 * libgnat/a-wtfiio__128.adb, libgnat/a-wtflau.adb: Likewise.
3129 * libgnat/a-wtflau.ads, libgnat/a-wtflio.adb: Likewise.
3130 * libgnat/a-wtgeau.adb, libgnat/a-wtgeau.ads: Likewise.
3131 * libgnat/a-wtinau.adb, libgnat/a-wtinau.ads: Likewise.
3132 * libgnat/a-wtinio.adb, libgnat/a-wtinio__128.adb: Likewise.
3133 * libgnat/a-wtmoio.adb, libgnat/a-wtmoio.ads: Likewise.
3134 * libgnat/a-wtmoio__128.adb, libgnat/a-wttest.adb: Likewise.
3135 * libgnat/a-wwboio.adb, libgnat/a-zchhan.adb: Likewise.
3136 * libgnat/a-zchuni.adb, libgnat/a-zchuni.ads: Likewise.
3137 * libgnat/a-zrstfi.adb, libgnat/a-zrstfi.ads: Likewise.
3138 * libgnat/a-ztcoau.adb, libgnat/a-ztcoio.adb: Likewise.
3139 * libgnat/a-ztcstr.adb, libgnat/a-ztcstr.ads: Likewise.
3140 * libgnat/a-ztdeau.adb, libgnat/a-ztdeau.ads: Likewise.
3141 * libgnat/a-ztdeio.adb, libgnat/a-ztdeio__128.adb: Likewise.
3142 * libgnat/a-ztedit.adb, libgnat/a-ztedit.ads: Likewise.
3143 * libgnat/a-ztenau.adb, libgnat/a-ztenau.ads: Likewise.
3144 * libgnat/a-ztenio.adb, libgnat/a-ztexio.adb: Likewise.
3145 * libgnat/a-ztexio.ads, libgnat/a-ztfiau.adb: Likewise.
3146 * libgnat/a-ztfiau.ads, libgnat/a-ztfiio.adb: Likewise.
3147 * libgnat/a-ztfiio__128.adb, libgnat/a-ztflau.adb: Likewise.
3148 * libgnat/a-ztflau.ads, libgnat/a-ztflio.adb: Likewise.
3149 * libgnat/a-ztgeau.adb, libgnat/a-ztgeau.ads: Likewise.
3150 * libgnat/a-ztinau.adb, libgnat/a-ztinau.ads: Likewise.
3151 * libgnat/a-ztinio.adb, libgnat/a-ztinio__128.adb: Likewise.
3152 * libgnat/a-ztmoio.adb, libgnat/a-ztmoio__128.adb: Likewise.
3153 * libgnat/a-zttest.adb, libgnat/a-zzboio.adb: Likewise.
3154 * libgnat/g-allein.ads, libgnat/g-alleve.adb: Likewise.
3155 * libgnat/g-alleve.ads, libgnat/g-alleve__hard.adb: Likewise.
3156 * libgnat/g-alleve__hard.ads, libgnat/g-altcon.adb: Likewise.
3157 * libgnat/g-altcon.ads, libgnat/g-altive.ads: Likewise.
3158 * libgnat/g-alveop.adb, libgnat/g-alveop.ads: Likewise.
3159 * libgnat/g-alvety.ads, libgnat/g-alvevi.ads: Likewise.
3160 * libgnat/g-arrspl.adb, libgnat/g-arrspl.ads, libgnat/g-awk.adb: Likewise.
3161 * libgnat/g-awk.ads, libgnat/g-binenv.adb, libgnat/g-binenv.ads: Likewise.
3162 * libgnat/g-binsea.adb, libgnat/g-binsea.ads: Likewise.
3163 * libgnat/g-brapre.ads, libgnat/g-bubsor.adb: Likewise.
3164 * libgnat/g-bubsor.ads, libgnat/g-busora.adb: Likewise.
3165 * libgnat/g-busora.ads, libgnat/g-busorg.adb: Likewise.
3166 * libgnat/g-busorg.ads, libgnat/g-byorma.adb: Likewise.
3167 * libgnat/g-byorma.ads, libgnat/g-bytswa.adb: Likewise.
3168 * libgnat/g-bytswa.ads, libgnat/g-calend.adb: Likewise.
3169 * libgnat/g-calend.ads, libgnat/g-casuti.adb: Likewise.
3170 * libgnat/g-casuti.ads, libgnat/g-catiio.adb: Likewise.
3171 * libgnat/g-catiio.ads, libgnat/g-cgi.adb, libgnat/g-cgi.ads: Likewise.
3172 * libgnat/g-cgicoo.adb, libgnat/g-cgicoo.ads: Likewise.
3173 * libgnat/g-cgideb.adb, libgnat/g-cgideb.ads: Likewise.
3174 * libgnat/g-comlin.adb, libgnat/g-comlin.ads: Likewise.
3175 * libgnat/g-comver.adb, libgnat/g-comver.ads: Likewise.
3176 * libgnat/g-cppexc.adb, libgnat/g-cppexc.ads, libgnat/g-crc32.adb: Likewise.
3177 * libgnat/g-crc32.ads, libgnat/g-ctrl_c.adb, libgnat/g-ctrl_c.ads: Likewise.
3178 * libgnat/g-curexc.ads, libgnat/g-debpoo.adb: Likewise.
3179 * libgnat/g-debpoo.ads, libgnat/g-debuti.adb: Likewise.
3180 * libgnat/g-debuti.ads, libgnat/g-decstr.adb: Likewise.
3181 * libgnat/g-decstr.ads, libgnat/g-deutst.ads: Likewise.
3182 * libgnat/g-diopit.adb, libgnat/g-diopit.ads: Likewise.
3183 * libgnat/g-dirope.adb, libgnat/g-dirope.ads: Likewise.
3184 * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads: Likewise.
3185 * libgnat/g-dyntab.adb, libgnat/g-dyntab.ads: Likewise.
3186 * libgnat/g-eacodu.adb, libgnat/g-encstr.adb: Likewise.
3187 * libgnat/g-encstr.ads, libgnat/g-enutst.ads: Likewise.
3188 * libgnat/g-excact.adb, libgnat/g-excact.ads: Likewise.
3189 * libgnat/g-except.ads, libgnat/g-exctra.adb: Likewise.
3190 * libgnat/g-exctra.ads, libgnat/g-expect.adb: Likewise.
3191 * libgnat/g-expect.ads, libgnat/g-exptty.adb: Likewise.
3192 * libgnat/g-exptty.ads, libgnat/g-flocon.ads: Likewise.
3193 * libgnat/g-forstr.adb, libgnat/g-forstr.ads: Likewise.
3194 * libgnat/g-gfmafu.ads, libgnat/g-graphs.adb: Likewise.
3195 * libgnat/g-graphs.ads, libgnat/g-heasor.adb: Likewise.
3196 * libgnat/g-heasor.ads, libgnat/g-hesora.adb: Likewise.
3197 * libgnat/g-hesora.ads, libgnat/g-hesorg.adb: Likewise.
3198 * libgnat/g-hesorg.ads, libgnat/g-htable.adb: Likewise.
3199 * libgnat/g-htable.ads, libgnat/g-io.adb, libgnat/g-io.ads: Likewise.
3200 * libgnat/g-io_aux.adb, libgnat/g-io_aux.ads, libgnat/g-lists.adb: Likewise.
3201 * libgnat/g-lists.ads, libgnat/g-locfil.adb, libgnat/g-locfil.ads: Likewise.
3202 * libgnat/g-mbdira.adb, libgnat/g-mbdira.ads: Likewise.
3203 * libgnat/g-mbflra.adb, libgnat/g-mbflra.ads, libgnat/g-md5.adb: Likewise.
3204 * libgnat/g-md5.ads, libgnat/g-memdum.adb, libgnat/g-memdum.ads: Likewise.
3205 * libgnat/g-moreex.adb, libgnat/g-moreex.ads: Likewise.
3206 * libgnat/g-os_lib.adb, libgnat/g-os_lib.ads: Likewise.
3207 * libgnat/g-pehage.adb, libgnat/g-pehage.ads: Likewise.
3208 * libgnat/g-rannum.adb, libgnat/g-rannum.ads: Likewise.
3209 * libgnat/g-regexp.adb, libgnat/g-regexp.ads: Likewise.
3210 * libgnat/g-regist.adb, libgnat/g-regist.ads: Likewise.
3211 * libgnat/g-regpat.adb, libgnat/g-regpat.ads: Likewise.
3212 * libgnat/g-rewdat.adb, libgnat/g-rewdat.ads: Likewise.
3213 * libgnat/g-sechas.adb, libgnat/g-sechas.ads: Likewise.
3214 * libgnat/g-sehamd.adb, libgnat/g-sehamd.ads: Likewise.
3215 * libgnat/g-sehash.adb, libgnat/g-sehash.ads: Likewise.
3216 * libgnat/g-sercom.adb, libgnat/g-sercom.ads: Likewise.
3217 * libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb: Likewise.
3218 * libgnat/g-sestin.ads, libgnat/g-sets.adb, libgnat/g-sets.ads: Likewise.
3219 * libgnat/g-sha1.adb, libgnat/g-sha1.ads, libgnat/g-sha224.ads: Likewise.
3220 * libgnat/g-sha256.ads, libgnat/g-sha384.ads: Likewise.
3221 * libgnat/g-sha512.ads, libgnat/g-shsh32.adb: Likewise.
3222 * libgnat/g-shsh32.ads, libgnat/g-shsh64.adb: Likewise.
3223 * libgnat/g-shsh64.ads, libgnat/g-shshco.adb: Likewise.
3224 * libgnat/g-shshco.ads, libgnat/g-soccon.ads: Likewise.
3225 * libgnat/g-socket.adb, libgnat/g-socket.ads: Likewise.
3226 * libgnat/g-socket__dummy.adb, libgnat/g-socket__dummy.ads: Likewise.
3227 * libgnat/g-socpol.adb, libgnat/g-socpol.ads: Likewise.
3228 * libgnat/g-socpol__dummy.adb, libgnat/g-socpol__dummy.ads: Likewise.
3229 * libgnat/g-socthi.adb, libgnat/g-socthi.ads: Likewise.
3230 * libgnat/g-socthi__dummy.adb, libgnat/g-socthi__dummy.ads: Likewise.
3231 * libgnat/g-socthi__mingw.adb, libgnat/g-socthi__mingw.ads: Likewise.
3232 * libgnat/g-socthi__vxworks.adb, libgnat/g-socthi__vxworks.ads: Likewise.
3233 * libgnat/g-soliop.ads, libgnat/g-soliop__lynxos.ads: Likewise.
3234 * libgnat/g-soliop__mingw.ads, libgnat/g-soliop__qnx.ads: Likewise.
3235 * libgnat/g-soliop__solaris.ads, libgnat/g-sopowa.adb: Likewise.
3236 * libgnat/g-sopowa__mingw.adb, libgnat/g-sopowa__posix.adb: Likewise.
3237 * libgnat/g-sothco.adb, libgnat/g-sothco.ads: Likewise.
3238 * libgnat/g-sothco__dummy.adb, libgnat/g-sothco__dummy.ads: Likewise.
3239 * libgnat/g-souinf.ads, libgnat/g-spchge.adb: Likewise.
3240 * libgnat/g-spchge.ads, libgnat/g-speche.adb: Likewise.
3241 * libgnat/g-speche.ads, libgnat/g-spipat.adb: Likewise.
3242 * libgnat/g-spipat.ads, libgnat/g-spitbo.adb: Likewise.
3243 * libgnat/g-spitbo.ads, libgnat/g-spogwa.adb: Likewise.
3244 * libgnat/g-spogwa.ads, libgnat/g-sptabo.ads: Likewise.
3245 * libgnat/g-sptain.ads, libgnat/g-sptavs.ads, libgnat/g-sse.ads: Likewise.
3246 * libgnat/g-ssvety.ads, libgnat/g-sthcso.adb: Likewise.
3247 * libgnat/g-stheme.adb, libgnat/g-strhas.ads: Likewise.
3248 * libgnat/g-string.adb, libgnat/g-string.ads: Likewise.
3249 * libgnat/g-strspl.ads, libgnat/g-stseme.adb: Likewise.
3250 * libgnat/g-stsifd__sockets.adb, libgnat/g-table.adb: Likewise.
3251 * libgnat/g-table.ads, libgnat/g-tasloc.adb, libgnat/g-tasloc.ads: Likewise.
3252 * libgnat/g-timsta.adb, libgnat/g-timsta.ads: Likewise.
3253 * libgnat/g-traceb.adb, libgnat/g-traceb.ads: Likewise.
3254 * libgnat/g-trasym.adb, libgnat/g-trasym.ads, libgnat/g-tty.adb: Likewise.
3255 * libgnat/g-tty.ads, libgnat/g-u3spch.adb, libgnat/g-u3spch.ads: Likewise.
3256 * libgnat/g-utf_32.adb, libgnat/g-utf_32.ads: Likewise.
3257 * libgnat/g-wispch.adb, libgnat/g-wispch.ads: Likewise.
3258 * libgnat/g-wistsp.ads, libgnat/g-zspche.adb: Likewise.
3259 * libgnat/g-zspche.ads, libgnat/g-zstspl.ads, libgnat/gnat.ads: Likewise.
3260 * libgnat/i-c.adb, libgnat/i-cexten.ads: Likewise.
3261 * libgnat/i-cexten__128.ads, libgnat/i-cobol.adb: Likewise.
3262 * libgnat/i-cobol.ads, libgnat/i-cpoint.adb, libgnat/i-cpoint.ads: Likewise.
3263 * libgnat/i-cstrea.adb, libgnat/i-cstrea.ads: Likewise.
3264 * libgnat/i-cstrin.adb, libgnat/i-cstrin.ads: Likewise.
3265 * libgnat/i-fortra.adb, libgnat/i-pacdec.adb: Likewise.
3266 * libgnat/i-pacdec.ads, libgnat/i-vxwoio.adb: Likewise.
3267 * libgnat/i-vxwoio.ads, libgnat/i-vxwork.ads: Likewise.
3268 * libgnat/i-vxwork__x86.ads, libgnat/interfac.ads: Likewise.
3269 * libgnat/interfac__2020.ads, libgnat/memtrack.adb: Likewise.
3270 * libgnat/s-addima.adb, libgnat/s-addima.ads: Likewise.
3271 * libgnat/s-addope.adb, libgnat/s-addope.ads: Likewise.
3272 * libgnat/s-aoinar.adb, libgnat/s-aoinar.ads: Likewise.
3273 * libgnat/s-aomoar.adb, libgnat/s-aomoar.ads: Likewise.
3274 * libgnat/s-aotase.adb, libgnat/s-aotase.ads: Likewise.
3275 * libgnat/s-aridou.adb, libgnat/s-aridou.ads: Likewise.
3276 * libgnat/s-arit128.adb, libgnat/s-arit128.ads: Likewise.
3277 * libgnat/s-arit32.adb, libgnat/s-arit32.ads: Likewise.
3278 * libgnat/s-arit64.adb, libgnat/s-arit64.ads: Likewise.
3279 * libgnat/s-assert.adb, libgnat/s-assert.ads: Likewise.
3280 * libgnat/s-atacco.adb, libgnat/s-atacco.ads: Likewise.
3281 * libgnat/s-atocou.adb, libgnat/s-atocou.ads: Likewise.
3282 * libgnat/s-atocou__builtin.adb, libgnat/s-atoope.ads: Likewise.
3283 * libgnat/s-atopex.adb, libgnat/s-atopex.ads: Likewise.
3284 * libgnat/s-atopri.adb, libgnat/s-atopri.ads: Likewise.
3285 * libgnat/s-auxdec.adb, libgnat/s-auxdec.ads: Likewise.
3286 * libgnat/s-bignum.adb, libgnat/s-bignum.ads: Likewise.
3287 * libgnat/s-bitfie.ads, libgnat/s-bitops.adb: Likewise.
3288 * libgnat/s-bitops.ads, libgnat/s-bituti.adb: Likewise.
3289 * libgnat/s-bituti.ads, libgnat/s-boarop.ads: Likewise.
3290 * libgnat/s-boustr.adb, libgnat/s-boustr.ads: Likewise.
3291 * libgnat/s-bytswa.ads, libgnat/s-carsi8.adb: Likewise.
3292 * libgnat/s-carsi8.ads, libgnat/s-carun8.adb: Likewise.
3293 * libgnat/s-carun8.ads, libgnat/s-casi128.adb: Likewise.
3294 * libgnat/s-casi128.ads, libgnat/s-casi16.adb: Likewise.
3295 * libgnat/s-casi16.ads, libgnat/s-casi32.adb: Likewise.
3296 * libgnat/s-casi32.ads, libgnat/s-casi64.adb: Likewise.
3297 * libgnat/s-casi64.ads, libgnat/s-casuti.adb: Likewise.
3298 * libgnat/s-casuti.ads, libgnat/s-caun128.adb: Likewise.
3299 * libgnat/s-caun128.ads, libgnat/s-caun16.adb: Likewise.
3300 * libgnat/s-caun16.ads, libgnat/s-caun32.adb: Likewise.
3301 * libgnat/s-caun32.ads, libgnat/s-caun64.adb: Likewise.
3302 * libgnat/s-caun64.ads, libgnat/s-chepoo.ads: Likewise.
3303 * libgnat/s-commun.adb, libgnat/s-commun.ads: Likewise.
3304 * libgnat/s-conca2.adb, libgnat/s-conca2.ads: Likewise.
3305 * libgnat/s-conca3.adb, libgnat/s-conca3.ads: Likewise.
3306 * libgnat/s-conca4.adb, libgnat/s-conca4.ads: Likewise.
3307 * libgnat/s-conca5.adb, libgnat/s-conca5.ads: Likewise.
3308 * libgnat/s-conca6.adb, libgnat/s-conca6.ads: Likewise.
3309 * libgnat/s-conca7.adb, libgnat/s-conca7.ads: Likewise.
3310 * libgnat/s-conca8.adb, libgnat/s-conca8.ads: Likewise.
3311 * libgnat/s-conca9.adb, libgnat/s-conca9.ads, libgnat/s-crc32.adb: Likewise.
3312 * libgnat/s-crc32.ads, libgnat/s-crtl.ads, libgnat/s-dfmkio.ads: Likewise.
3313 * libgnat/s-dfmopr.ads, libgnat/s-dgmgop.ads: Likewise.
3314 * libgnat/s-diflio.adb, libgnat/s-diflio.ads: Likewise.
3315 * libgnat/s-diflmk.ads, libgnat/s-digemk.ads: Likewise.
3316 * libgnat/s-diinio.adb, libgnat/s-diinio.ads: Likewise.
3317 * libgnat/s-dilomk.ads, libgnat/s-dim.ads, libgnat/s-dimkio.ads: Likewise.
3318 * libgnat/s-dimmks.ads, libgnat/s-direio.adb: Likewise.
3319 * libgnat/s-direio.ads, libgnat/s-dlmkio.ads: Likewise.
3320 * libgnat/s-dlmopr.ads, libgnat/s-dmotpr.ads: Likewise.
3321 * libgnat/s-dorepr.adb, libgnat/s-dorepr__fma.adb: Likewise.
3322 * libgnat/s-dourea.adb, libgnat/s-dourea.ads: Likewise.
3323 * libgnat/s-dsaser.ads, libgnat/s-dwalin.adb: Likewise.
3324 * libgnat/s-dwalin.ads, libgnat/s-elaall.adb: Likewise.
3325 * libgnat/s-elaall.ads, libgnat/s-excdeb.adb: Likewise.
3326 * libgnat/s-excdeb.ads, libgnat/s-except.adb: Likewise.
3327 * libgnat/s-except.ads, libgnat/s-excmac__arm.adb: Likewise.
3328 * libgnat/s-excmac__arm.ads, libgnat/s-excmac__gcc.adb: Likewise.
3329 * libgnat/s-excmac__gcc.ads, libgnat/s-exctab.adb: Likewise.
3330 * libgnat/s-exctab.ads, libgnat/s-exctra.adb: Likewise.
3331 * libgnat/s-exctra.ads, libgnat/s-exnflt.ads: Likewise.
3332 * libgnat/s-exnint.adb, libgnat/s-exnint.ads: Likewise.
3333 * libgnat/s-exnlfl.ads, libgnat/s-exnllf.adb: Likewise.
3334 * libgnat/s-exnllf.ads, libgnat/s-exnlli.adb: Likewise.
3335 * libgnat/s-exnlli.ads, libgnat/s-exnllli.ads: Likewise.
3336 * libgnat/s-expint.adb, libgnat/s-expint.ads: Likewise.
3337 * libgnat/s-explli.adb, libgnat/s-explli.ads: Likewise.
3338 * libgnat/s-expllli.ads, libgnat/s-explllu.ads: Likewise.
3339 * libgnat/s-expllu.adb, libgnat/s-expllu.ads: Likewise.
3340 * libgnat/s-expmod.adb, libgnat/s-expmod.ads: Likewise.
3341 * libgnat/s-exponn.adb, libgnat/s-exponn.ads: Likewise.
3342 * libgnat/s-exponr.adb, libgnat/s-exponr.ads: Likewise.
3343 * libgnat/s-expont.adb, libgnat/s-expont.ads: Likewise.
3344 * libgnat/s-exponu.adb, libgnat/s-exponu.ads: Likewise.
3345 * libgnat/s-expuns.adb, libgnat/s-expuns.ads: Likewise.
3346 * libgnat/s-fatflt.ads, libgnat/s-fatgen.adb: Likewise.
3347 * libgnat/s-fatgen.ads, libgnat/s-fatlfl.ads: Likewise.
3348 * libgnat/s-fatllf.ads, libgnat/s-ficobl.ads: Likewise.
3349 * libgnat/s-filatt.ads, libgnat/s-fileio.adb: Likewise.
3350 * libgnat/s-fileio.ads, libgnat/s-finmas.adb: Likewise.
3351 * libgnat/s-finmas.ads, libgnat/s-finroo.adb: Likewise.
3352 * libgnat/s-finroo.ads, libgnat/s-flocon.adb: Likewise.
3353 * libgnat/s-flocon.ads, libgnat/s-flocon__none.adb: Likewise.
3354 * libgnat/s-fode128.ads, libgnat/s-fode32.ads: Likewise.
3355 * libgnat/s-fode64.ads, libgnat/s-fofi128.ads: Likewise.
3356 * libgnat/s-fofi32.ads, libgnat/s-fofi64.ads: Likewise.
3357 * libgnat/s-fore_d.adb, libgnat/s-fore_d.ads: Likewise.
3358 * libgnat/s-fore_f.adb, libgnat/s-fore_f.ads: Likewise.
3359 * libgnat/s-forrea.adb, libgnat/s-forrea.ads: Likewise.
3360 * libgnat/s-gearop.adb, libgnat/s-gearop.ads: Likewise.
3361 * libgnat/s-genbig.adb, libgnat/s-genbig.ads: Likewise.
3362 * libgnat/s-geveop.adb, libgnat/s-geveop.ads: Likewise.
3363 * libgnat/s-gloloc.adb, libgnat/s-gloloc.ads: Likewise.
3364 * libgnat/s-gloloc__mingw.adb, libgnat/s-htable.adb: Likewise.
3365 * libgnat/s-htable.ads, libgnat/s-imageb.adb: Likewise.
3366 * libgnat/s-imageb.ads, libgnat/s-imaged.adb: Likewise.
3367 * libgnat/s-imaged.ads, libgnat/s-imagef.adb: Likewise.
3368 * libgnat/s-imagef.ads, libgnat/s-imagei.adb: Likewise.
3369 * libgnat/s-imagei.ads, libgnat/s-imagen.adb: Likewise.
3370 * libgnat/s-imagen.ads, libgnat/s-imager.adb: Likewise.
3371 * libgnat/s-imager.ads, libgnat/s-imageu.adb: Likewise.
3372 * libgnat/s-imageu.ads, libgnat/s-imagew.adb: Likewise.
3373 * libgnat/s-imagew.ads, libgnat/s-imde128.ads: Likewise.
3374 * libgnat/s-imde32.ads, libgnat/s-imde64.ads: Likewise.
3375 * libgnat/s-imen16.ads, libgnat/s-imen32.ads: Likewise.
3376 * libgnat/s-imenu8.ads, libgnat/s-imfi128.ads: Likewise.
3377 * libgnat/s-imfi32.ads, libgnat/s-imfi64.ads: Likewise.
3378 * libgnat/s-imgbiu.adb, libgnat/s-imgbiu.ads: Likewise.
3379 * libgnat/s-imgboo.adb, libgnat/s-imgboo.ads: Likewise.
3380 * libgnat/s-imgcha.adb, libgnat/s-imgcha.ads: Likewise.
3381 * libgnat/s-imgflt.ads, libgnat/s-imgint.adb: Likewise.
3382 * libgnat/s-imgint.ads, libgnat/s-imglfl.ads: Likewise.
3383 * libgnat/s-imgllb.adb, libgnat/s-imgllb.ads: Likewise.
3384 * libgnat/s-imgllf.ads, libgnat/s-imglli.adb: Likewise.
3385 * libgnat/s-imglli.ads, libgnat/s-imglllb.ads: Likewise.
3386 * libgnat/s-imgllli.ads, libgnat/s-imglllu.ads: Likewise.
3387 * libgnat/s-imglllw.ads, libgnat/s-imgllu.adb: Likewise.
3388 * libgnat/s-imgllu.ads, libgnat/s-imgllw.adb: Likewise.
3389 * libgnat/s-imgllw.ads, libgnat/s-imgrea.adb: Likewise.
3390 * libgnat/s-imgrea.ads, libgnat/s-imguns.adb: Likewise.
3391 * libgnat/s-imguns.ads, libgnat/s-imguti.adb: Likewise.
3392 * libgnat/s-imguti.ads, libgnat/s-imgwch.adb: Likewise.
3393 * libgnat/s-imgwch.ads, libgnat/s-imgwiu.adb: Likewise.
3394 * libgnat/s-imgwiu.ads, libgnat/s-io.adb, libgnat/s-io.ads: Likewise.
3395 * libgnat/s-llflex.ads, libgnat/s-maccod.ads: Likewise.
3396 * libgnat/s-mantis.adb, libgnat/s-mantis.ads: Likewise.
3397 * libgnat/s-mastop.adb, libgnat/s-mastop.ads: Likewise.
3398 * libgnat/s-memcop.ads, libgnat/s-memory.adb: Likewise.
3399 * libgnat/s-memory.ads, libgnat/s-mmap.adb, libgnat/s-mmap.ads: Likewise.
3400 * libgnat/s-mmauni__long.ads, libgnat/s-mmosin__mingw.adb: Likewise.
3401 * libgnat/s-mmosin__mingw.ads, libgnat/s-mmosin__unix.adb: Likewise.
3402 * libgnat/s-mmosin__unix.ads, libgnat/s-multip.adb: Likewise.
3403 * libgnat/s-objrea.adb, libgnat/s-objrea.ads: Likewise.
3404 * libgnat/s-optide.adb, libgnat/s-os_lib.adb: Likewise.
3405 * libgnat/s-os_lib.ads, libgnat/s-osprim.ads: Likewise.
3406 * libgnat/s-osprim__darwin.adb, libgnat/s-osprim__lynxos.ads: Likewise.
3407 * libgnat/s-osprim__mingw.adb, libgnat/s-osprim__posix.adb: Likewise.
3408 * libgnat/s-osprim__posix2008.adb, libgnat/s-osprim__rtems.adb: Likewise.
3409 * libgnat/s-osprim__solaris.adb, libgnat/s-osprim__unix.adb: Likewise.
3410 * libgnat/s-osprim__x32.adb, libgnat/s-pack03.adb: Likewise.
3411 * libgnat/s-pack03.ads, libgnat/s-pack05.adb: Likewise.
3412 * libgnat/s-pack05.ads, libgnat/s-pack06.adb: Likewise.
3413 * libgnat/s-pack06.ads, libgnat/s-pack07.adb: Likewise.
3414 * libgnat/s-pack07.ads, libgnat/s-pack09.adb: Likewise.
3415 * libgnat/s-pack09.ads, libgnat/s-pack10.adb: Likewise.
3416 * libgnat/s-pack10.ads, libgnat/s-pack100.adb: Likewise.
3417 * libgnat/s-pack100.ads, libgnat/s-pack101.adb: Likewise.
3418 * libgnat/s-pack101.ads, libgnat/s-pack102.adb: Likewise.
3419 * libgnat/s-pack102.ads, libgnat/s-pack103.adb: Likewise.
3420 * libgnat/s-pack103.ads, libgnat/s-pack104.adb: Likewise.
3421 * libgnat/s-pack104.ads, libgnat/s-pack105.adb: Likewise.
3422 * libgnat/s-pack105.ads, libgnat/s-pack106.adb: Likewise.
3423 * libgnat/s-pack106.ads, libgnat/s-pack107.adb: Likewise.
3424 * libgnat/s-pack107.ads, libgnat/s-pack108.adb: Likewise.
3425 * libgnat/s-pack108.ads, libgnat/s-pack109.adb: Likewise.
3426 * libgnat/s-pack109.ads, libgnat/s-pack11.adb: Likewise.
3427 * libgnat/s-pack11.ads, libgnat/s-pack110.adb: Likewise.
3428 * libgnat/s-pack110.ads, libgnat/s-pack111.adb: Likewise.
3429 * libgnat/s-pack111.ads, libgnat/s-pack112.adb: Likewise.
3430 * libgnat/s-pack112.ads, libgnat/s-pack113.adb: Likewise.
3431 * libgnat/s-pack113.ads, libgnat/s-pack114.adb: Likewise.
3432 * libgnat/s-pack114.ads, libgnat/s-pack115.adb: Likewise.
3433 * libgnat/s-pack115.ads, libgnat/s-pack116.adb: Likewise.
3434 * libgnat/s-pack116.ads, libgnat/s-pack117.adb: Likewise.
3435 * libgnat/s-pack117.ads, libgnat/s-pack118.adb: Likewise.
3436 * libgnat/s-pack118.ads, libgnat/s-pack119.adb: Likewise.
3437 * libgnat/s-pack119.ads, libgnat/s-pack12.adb: Likewise.
3438 * libgnat/s-pack12.ads, libgnat/s-pack120.adb: Likewise.
3439 * libgnat/s-pack120.ads, libgnat/s-pack121.adb: Likewise.
3440 * libgnat/s-pack121.ads, libgnat/s-pack122.adb: Likewise.
3441 * libgnat/s-pack122.ads, libgnat/s-pack123.adb: Likewise.
3442 * libgnat/s-pack123.ads, libgnat/s-pack124.adb: Likewise.
3443 * libgnat/s-pack124.ads, libgnat/s-pack125.adb: Likewise.
3444 * libgnat/s-pack125.ads, libgnat/s-pack126.adb: Likewise.
3445 * libgnat/s-pack126.ads, libgnat/s-pack127.adb: Likewise.
3446 * libgnat/s-pack127.ads, libgnat/s-pack13.adb: Likewise.
3447 * libgnat/s-pack13.ads, libgnat/s-pack14.adb: Likewise.
3448 * libgnat/s-pack14.ads, libgnat/s-pack15.adb: Likewise.
3449 * libgnat/s-pack15.ads, libgnat/s-pack17.adb: Likewise.
3450 * libgnat/s-pack17.ads, libgnat/s-pack18.adb: Likewise.
3451 * libgnat/s-pack18.ads, libgnat/s-pack19.adb: Likewise.
3452 * libgnat/s-pack19.ads, libgnat/s-pack20.adb: Likewise.
3453 * libgnat/s-pack20.ads, libgnat/s-pack21.adb: Likewise.
3454 * libgnat/s-pack21.ads, libgnat/s-pack22.adb: Likewise.
3455 * libgnat/s-pack22.ads, libgnat/s-pack23.adb: Likewise.
3456 * libgnat/s-pack23.ads, libgnat/s-pack24.adb: Likewise.
3457 * libgnat/s-pack24.ads, libgnat/s-pack25.adb: Likewise.
3458 * libgnat/s-pack25.ads, libgnat/s-pack26.adb: Likewise.
3459 * libgnat/s-pack26.ads, libgnat/s-pack27.adb: Likewise.
3460 * libgnat/s-pack27.ads, libgnat/s-pack28.adb: Likewise.
3461 * libgnat/s-pack28.ads, libgnat/s-pack29.adb: Likewise.
3462 * libgnat/s-pack29.ads, libgnat/s-pack30.adb: Likewise.
3463 * libgnat/s-pack30.ads, libgnat/s-pack31.adb: Likewise.
3464 * libgnat/s-pack31.ads, libgnat/s-pack33.adb: Likewise.
3465 * libgnat/s-pack33.ads, libgnat/s-pack34.adb: Likewise.
3466 * libgnat/s-pack34.ads, libgnat/s-pack35.adb: Likewise.
3467 * libgnat/s-pack35.ads, libgnat/s-pack36.adb: Likewise.
3468 * libgnat/s-pack36.ads, libgnat/s-pack37.adb: Likewise.
3469 * libgnat/s-pack37.ads, libgnat/s-pack38.adb: Likewise.
3470 * libgnat/s-pack38.ads, libgnat/s-pack39.adb: Likewise.
3471 * libgnat/s-pack39.ads, libgnat/s-pack40.adb: Likewise.
3472 * libgnat/s-pack40.ads, libgnat/s-pack41.adb: Likewise.
3473 * libgnat/s-pack41.ads, libgnat/s-pack42.adb: Likewise.
3474 * libgnat/s-pack42.ads, libgnat/s-pack43.adb: Likewise.
3475 * libgnat/s-pack43.ads, libgnat/s-pack44.adb: Likewise.
3476 * libgnat/s-pack44.ads, libgnat/s-pack45.adb: Likewise.
3477 * libgnat/s-pack45.ads, libgnat/s-pack46.adb: Likewise.
3478 * libgnat/s-pack46.ads, libgnat/s-pack47.adb: Likewise.
3479 * libgnat/s-pack47.ads, libgnat/s-pack48.adb: Likewise.
3480 * libgnat/s-pack48.ads, libgnat/s-pack49.adb: Likewise.
3481 * libgnat/s-pack49.ads, libgnat/s-pack50.adb: Likewise.
3482 * libgnat/s-pack50.ads, libgnat/s-pack51.adb: Likewise.
3483 * libgnat/s-pack51.ads, libgnat/s-pack52.adb: Likewise.
3484 * libgnat/s-pack52.ads, libgnat/s-pack53.adb: Likewise.
3485 * libgnat/s-pack53.ads, libgnat/s-pack54.adb: Likewise.
3486 * libgnat/s-pack54.ads, libgnat/s-pack55.adb: Likewise.
3487 * libgnat/s-pack55.ads, libgnat/s-pack56.adb: Likewise.
3488 * libgnat/s-pack56.ads, libgnat/s-pack57.adb: Likewise.
3489 * libgnat/s-pack57.ads, libgnat/s-pack58.adb: Likewise.
3490 * libgnat/s-pack58.ads, libgnat/s-pack59.adb: Likewise.
3491 * libgnat/s-pack59.ads, libgnat/s-pack60.adb: Likewise.
3492 * libgnat/s-pack60.ads, libgnat/s-pack61.adb: Likewise.
3493 * libgnat/s-pack61.ads, libgnat/s-pack62.adb: Likewise.
3494 * libgnat/s-pack62.ads, libgnat/s-pack63.adb: Likewise.
3495 * libgnat/s-pack63.ads, libgnat/s-pack65.adb: Likewise.
3496 * libgnat/s-pack65.ads, libgnat/s-pack66.adb: Likewise.
3497 * libgnat/s-pack66.ads, libgnat/s-pack67.adb: Likewise.
3498 * libgnat/s-pack67.ads, libgnat/s-pack68.adb: Likewise.
3499 * libgnat/s-pack68.ads, libgnat/s-pack69.adb: Likewise.
3500 * libgnat/s-pack69.ads, libgnat/s-pack70.adb: Likewise.
3501 * libgnat/s-pack70.ads, libgnat/s-pack71.adb: Likewise.
3502 * libgnat/s-pack71.ads, libgnat/s-pack72.adb: Likewise.
3503 * libgnat/s-pack72.ads, libgnat/s-pack73.adb: Likewise.
3504 * libgnat/s-pack73.ads, libgnat/s-pack74.adb: Likewise.
3505 * libgnat/s-pack74.ads, libgnat/s-pack75.adb: Likewise.
3506 * libgnat/s-pack75.ads, libgnat/s-pack76.adb: Likewise.
3507 * libgnat/s-pack76.ads, libgnat/s-pack77.adb: Likewise.
3508 * libgnat/s-pack77.ads, libgnat/s-pack78.adb: Likewise.
3509 * libgnat/s-pack78.ads, libgnat/s-pack79.adb: Likewise.
3510 * libgnat/s-pack79.ads, libgnat/s-pack80.adb: Likewise.
3511 * libgnat/s-pack80.ads, libgnat/s-pack81.adb: Likewise.
3512 * libgnat/s-pack81.ads, libgnat/s-pack82.adb: Likewise.
3513 * libgnat/s-pack82.ads, libgnat/s-pack83.adb: Likewise.
3514 * libgnat/s-pack83.ads, libgnat/s-pack84.adb: Likewise.
3515 * libgnat/s-pack84.ads, libgnat/s-pack85.adb: Likewise.
3516 * libgnat/s-pack85.ads, libgnat/s-pack86.adb: Likewise.
3517 * libgnat/s-pack86.ads, libgnat/s-pack87.adb: Likewise.
3518 * libgnat/s-pack87.ads, libgnat/s-pack88.adb: Likewise.
3519 * libgnat/s-pack88.ads, libgnat/s-pack89.adb: Likewise.
3520 * libgnat/s-pack89.ads, libgnat/s-pack90.adb: Likewise.
3521 * libgnat/s-pack90.ads, libgnat/s-pack91.adb: Likewise.
3522 * libgnat/s-pack91.ads, libgnat/s-pack92.adb: Likewise.
3523 * libgnat/s-pack92.ads, libgnat/s-pack93.adb: Likewise.
3524 * libgnat/s-pack93.ads, libgnat/s-pack94.adb: Likewise.
3525 * libgnat/s-pack94.ads, libgnat/s-pack95.adb: Likewise.
3526 * libgnat/s-pack95.ads, libgnat/s-pack96.adb: Likewise.
3527 * libgnat/s-pack96.ads, libgnat/s-pack97.adb: Likewise.
3528 * libgnat/s-pack97.ads, libgnat/s-pack98.adb: Likewise.
3529 * libgnat/s-pack98.ads, libgnat/s-pack99.adb: Likewise.
3530 * libgnat/s-pack99.ads, libgnat/s-parame.adb: Likewise.
3531 * libgnat/s-parame.ads, libgnat/s-parame__hpux.ads: Likewise.
3532 * libgnat/s-parame__posix2008.ads, libgnat/s-parame__rtems.adb: Likewise.
3533 * libgnat/s-parame__vxworks.adb, libgnat/s-parame__vxworks.ads: Likewise.
3534 * libgnat/s-parint.adb, libgnat/s-parint.ads: Likewise.
3535 * libgnat/s-pehage.adb, libgnat/s-pehage.ads: Likewise.
3536 * libgnat/s-pooglo.adb, libgnat/s-pooglo.ads: Likewise.
3537 * libgnat/s-pooloc.adb, libgnat/s-pooloc.ads: Likewise.
3538 * libgnat/s-poosiz.adb, libgnat/s-poosiz.ads: Likewise.
3539 * libgnat/s-powflt.ads, libgnat/s-powlfl.ads: Likewise.
3540 * libgnat/s-powllf.ads, libgnat/s-purexc.ads: Likewise.
3541 * libgnat/s-putima.adb, libgnat/s-putima.ads: Likewise.
3542 * libgnat/s-rannum.adb, libgnat/s-rannum.ads: Likewise.
3543 * libgnat/s-ransee.adb, libgnat/s-ransee.ads: Likewise.
3544 * libgnat/s-regexp.adb, libgnat/s-regexp.ads: Likewise.
3545 * libgnat/s-regpat.adb, libgnat/s-regpat.ads: Likewise.
3546 * libgnat/s-resfil.adb, libgnat/s-resfil.ads: Likewise.
3547 * libgnat/s-restri.adb, libgnat/s-restri.ads: Likewise.
3548 * libgnat/s-retsta.ads, libgnat/s-rident.ads, libgnat/s-rpc.adb: Likewise.
3549 * libgnat/s-rpc.ads, libgnat/s-scaval.adb, libgnat/s-scaval.ads: Likewise.
3550 * libgnat/s-scaval__128.adb, libgnat/s-scaval__128.ads: Likewise.
3551 * libgnat/s-secsta.adb, libgnat/s-secsta.ads: Likewise.
3552 * libgnat/s-sequio.adb, libgnat/s-sequio.ads: Likewise.
3553 * libgnat/s-shabig.ads, libgnat/s-shasto.adb: Likewise.
3554 * libgnat/s-shasto.ads, libgnat/s-soflin.adb: Likewise.
3555 * libgnat/s-soflin.ads, libgnat/s-soliin.adb: Likewise.
3556 * libgnat/s-soliin.ads, libgnat/s-spark.ads, libgnat/s-spcuop.adb: Likewise.
3557 * libgnat/s-spcuop.ads, libgnat/s-spsufi.adb: Likewise.
3558 * libgnat/s-spsufi.ads, libgnat/s-stache.adb: Likewise.
3559 * libgnat/s-stache.ads, libgnat/s-stalib.adb: Likewise.
3560 * libgnat/s-stalib.ads, libgnat/s-statxd.adb: Likewise.
3561 * libgnat/s-statxd.ads, libgnat/s-stausa.adb: Likewise.
3562 * libgnat/s-stausa.ads, libgnat/s-stchop.adb: Likewise.
3563 * libgnat/s-stchop.ads, libgnat/s-stchop__limit.ads: Likewise.
3564 * libgnat/s-stchop__vxworks.adb, libgnat/s-stoele.adb: Likewise.
3565 * libgnat/s-stoele.ads, libgnat/s-stopoo.adb: Likewise.
3566 * libgnat/s-stopoo.ads, libgnat/s-stposu.adb: Likewise.
3567 * libgnat/s-stposu.ads, libgnat/s-stratt.adb: Likewise.
3568 * libgnat/s-stratt.ads, libgnat/s-strcom.adb: Likewise.
3569 * libgnat/s-strcom.ads, libgnat/s-strhas.adb: Likewise.
3570 * libgnat/s-strhas.ads, libgnat/s-string.adb: Likewise.
3571 * libgnat/s-string.ads, libgnat/s-ststop.adb: Likewise.
3572 * libgnat/s-ststop.ads, libgnat/s-tasloc.adb: Likewise.
3573 * libgnat/s-tasloc.ads, libgnat/s-traceb.adb: Likewise.
3574 * libgnat/s-traceb.ads, libgnat/s-traceb__hpux.adb: Likewise.
3575 * libgnat/s-traceb__mastop.adb, libgnat/s-traent.adb: Likewise.
3576 * libgnat/s-traent.ads, libgnat/s-trasym.adb: Likewise.
3577 * libgnat/s-trasym.ads, libgnat/s-trasym__dwarf.adb: Likewise.
3578 * libgnat/s-tsmona.adb, libgnat/s-tsmona__linux.adb: Likewise.
3579 * libgnat/s-tsmona__mingw.adb, libgnat/s-unstyp.ads: Likewise.
3580 * libgnat/s-utf_32.adb, libgnat/s-utf_32.ads: Likewise.
3581 * libgnat/s-vade128.ads, libgnat/s-vade32.ads: Likewise.
3582 * libgnat/s-vade64.ads, libgnat/s-vaen16.ads: Likewise.
3583 * libgnat/s-vaen32.ads, libgnat/s-vaenu8.ads: Likewise.
3584 * libgnat/s-vafi128.ads, libgnat/s-vafi32.ads: Likewise.
3585 * libgnat/s-vafi64.ads, libgnat/s-vaispe.adb: Likewise.
3586 * libgnat/s-vaispe.ads, libgnat/s-valboo.adb: Likewise.
3587 * libgnat/s-valboo.ads, libgnat/s-valcha.adb: Likewise.
3588 * libgnat/s-valcha.ads, libgnat/s-valflt.ads: Likewise.
3589 * libgnat/s-valint.adb, libgnat/s-valint.ads: Likewise.
3590 * libgnat/s-vallfl.ads, libgnat/s-valllf.ads: Likewise.
3591 * libgnat/s-vallli.adb, libgnat/s-vallli.ads: Likewise.
3592 * libgnat/s-valllli.ads, libgnat/s-vallllu.ads: Likewise.
3593 * libgnat/s-valllu.adb, libgnat/s-valllu.ads: Likewise.
3594 * libgnat/s-valrea.adb, libgnat/s-valrea.ads: Likewise.
3595 * libgnat/s-valued.adb, libgnat/s-valued.ads: Likewise.
3596 * libgnat/s-valuef.adb, libgnat/s-valuef.ads: Likewise.
3597 * libgnat/s-valuei.adb, libgnat/s-valuei.ads: Likewise.
3598 * libgnat/s-valuen.adb, libgnat/s-valuen.ads: Likewise.
3599 * libgnat/s-valuer.adb, libgnat/s-valuer.ads: Likewise.
3600 * libgnat/s-valueu.adb, libgnat/s-valueu.ads: Likewise.
3601 * libgnat/s-valuns.adb, libgnat/s-valuns.ads: Likewise.
3602 * libgnat/s-valuti.adb, libgnat/s-valuti.ads: Likewise.
3603 * libgnat/s-valwch.adb, libgnat/s-valwch.ads: Likewise.
3604 * libgnat/s-vauspe.adb, libgnat/s-vauspe.ads: Likewise.
3605 * libgnat/s-veboop.adb, libgnat/s-veboop.ads: Likewise.
3606 * libgnat/s-vector.ads, libgnat/s-vercon.adb: Likewise.
3607 * libgnat/s-vercon.ads, libgnat/s-wchcnv.adb: Likewise.
3608 * libgnat/s-wchcnv.ads, libgnat/s-wchcon.adb: Likewise.
3609 * libgnat/s-wchcon.ads, libgnat/s-wchjis.adb: Likewise.
3610 * libgnat/s-wchjis.ads, libgnat/s-wchstw.adb: Likewise.
3611 * libgnat/s-wchstw.ads, libgnat/s-wchwts.adb: Likewise.
3612 * libgnat/s-wchwts.ads, libgnat/s-widboo.adb: Likewise.
3613 * libgnat/s-widboo.ads, libgnat/s-widcha.adb: Likewise.
3614 * libgnat/s-widcha.ads, libgnat/s-widenu.adb: Likewise.
3615 * libgnat/s-widenu.ads, libgnat/s-widint.ads: Likewise.
3616 * libgnat/s-widlli.adb, libgnat/s-widlli.ads: Likewise.
3617 * libgnat/s-widllli.ads, libgnat/s-widlllu.ads: Likewise.
3618 * libgnat/s-widllu.adb, libgnat/s-widllu.ads: Likewise.
3619 * libgnat/s-widthi.adb, libgnat/s-widthi.ads: Likewise.
3620 * libgnat/s-widthu.adb, libgnat/s-widthu.ads: Likewise.
3621 * libgnat/s-widuns.ads, libgnat/s-widwch.adb: Likewise.
3622 * libgnat/s-widwch.ads, libgnat/s-win32.ads, libgnat/s-winext.ads: Likewise.
3623 * libgnat/s-wwdcha.adb, libgnat/s-wwdcha.ads: Likewise.
3624 * libgnat/s-wwdenu.adb, libgnat/s-wwdenu.ads: Likewise.
3625 * libgnat/s-wwdwch.adb, libgnat/s-wwdwch.ads: Likewise.
3626 * libgnat/system-aix.ads, libgnat/system-darwin-arm.ads: Likewise.
3627 * libgnat/system-darwin-ppc.ads, libgnat/system-darwin-x86.ads: Likewise.
3628 * libgnat/system-djgpp.ads, libgnat/system-dragonfly-x86_64.ads: Likewise.
3629 * libgnat/system-freebsd.ads, libgnat/system-hpux-ia64.ads: Likewise.
3630 * libgnat/system-hpux.ads, libgnat/system-linux-alpha.ads: Likewise.
3631 * libgnat/system-linux-arm.ads, libgnat/system-linux-hppa.ads: Likewise.
3632 * libgnat/system-linux-ia64.ads, libgnat/system-linux-m68k.ads: Likewise.
3633 * libgnat/system-linux-mips.ads, libgnat/system-linux-ppc.ads: Likewise.
3634 * libgnat/system-linux-riscv.ads, libgnat/system-linux-s390.ads: Likewise.
3635 * libgnat/system-linux-sh4.ads, libgnat/system-linux-sparc.ads: Likewise.
3636 * libgnat/system-linux-x86.ads, libgnat/system-lynxos178-ppc.ads: Likewise.
3637 * libgnat/system-lynxos178-x86.ads, libgnat/system-mingw.ads: Likewise.
3638 * libgnat/system-qnx-arm.ads, libgnat/system-rtems.ads: Likewise.
3639 * libgnat/system-solaris-sparc.ads: Likewise.
3640 * libgnat/system-solaris-x86.ads: Likewise.
3641 * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
3642 * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
3643 * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
3644 * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
3645 * libgnat/system-vxworks7-aarch64.ads: Likewise.
3646 * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
3647 * libgnat/system-vxworks7-arm.ads: Likewise.
3648 * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
3649 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
3650 * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
3651 * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
3652 * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
3653 * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
3654 * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
3655 * libgnat/system-vxworks7-x86_64-rtp-smp.ads, link.c, live.adb: Likewise.
3656 * live.ads, locales.c, make.adb, make.ads, make_util.adb: Likewise.
3657 * make_util.ads, makeusg.adb, makeusg.ads, mdll-fil.adb: Likewise.
3658 * mdll-fil.ads, mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads: Likewise.
3659 * mingw32.h, mkdir.c, namet-sp.adb, namet-sp.ads, namet.adb: Likewise.
3660 * namet.ads, namet.h, nlists.adb, nlists.ads, nlists.h, opt.adb: Likewise.
3661 * opt.ads, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads: Likewise.
3662 * osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, osint.adb: Likewise.
3663 * osint.ads, output.adb, output.ads, par-ch10.adb, par-ch11.adb: Likewise.
3664 * par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb: Likewise.
3665 * par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch7.adb, par-ch8.adb: Likewise.
3666 * par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb: Likewise.
3667 * par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb, par.adb: Likewise.
3668 * par.ads, par_sco.adb, par_sco.ads: Likewise.
3669 * pprint.adb, pprint.ads, prep.adb, prep.ads: Likewise.
3670 * prepcomp.adb, prepcomp.ads, put_scos.adb, put_scos.ads: Likewise.
3671 * raise-gcc.c, raise.c, raise.h, repinfo-input.adb: Likewise.
3672 * repinfo-input.ads, repinfo.adb, repinfo.ads, repinfo.h: Likewise.
3673 * restrict.adb, restrict.ads, rident.ads, rtfinal.c, rtinit.c: Likewise.
3674 * rtsfind.adb, rtsfind.ads, runtime.h, s-oscons-tmplt.c: Likewise.
3675 * scans.adb, scans.ads, scil_ll.adb, scil_ll.ads, scn.adb: Likewise.
3676 * scn.ads, scng.adb, scng.ads, scos.adb, scos.ads: Likewise.
3677 * scos.h, sdefault.ads, seh_init.c, sem.adb, sem.ads: Likewise.
3678 * sem_aggr.adb, sem_aggr.ads, sem_attr.adb, sem_attr.ads: Likewise.
3679 * sem_aux.adb, sem_aux.ads, sem_case.adb, sem_case.ads: Likewise.
3680 * sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads: Likewise.
3681 * sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads: Likewise.
3682 * sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads: Likewise.
3683 * sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads, sem_ch5.adb: Likewise.
3684 * sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch7.ads: Likewise.
3685 * sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_ch9.ads, sem_dim.adb: Likewise.
3686 * sem_dim.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb: Likewise.
3687 * sem_dist.ads, sem_elab.adb, sem_elab.ads, sem_elim.adb: Likewise.
3688 * sem_elim.ads, sem_eval.adb, sem_eval.ads, sem_intr.adb: Likewise.
3689 * sem_intr.ads, sem_mech.adb, sem_mech.ads, sem_prag.adb: Likewise.
3690 * sem_prag.ads, sem_res.adb, sem_res.ads, sem_scil.adb: Likewise.
3691 * sem_scil.ads, sem_smem.adb, sem_smem.ads, sem_type.adb: Likewise.
3692 * sem_type.ads, sem_util.adb, sem_util.ads, sem_warn.adb: Likewise.
3693 * sem_warn.ads, set_targ.adb, set_targ.ads, sfn_scan.adb: Likewise.
3694 * sfn_scan.ads, sigtramp-arm-qnx.c, sigtramp-armdroid.c: Likewise.
3695 * sigtramp-ios.c, sigtramp-qnx.c: Likewise.
3696 * sigtramp-vxworks-target.h, sigtramp-vxworks.c, sigtramp.h: Likewise.
3697 * sinfo-cn.adb, sinfo-cn.ads, sinfo-utils.adb, sinfo-utils.ads: Likewise.
3698 * sinfo.adb, sinfo.ads, sinput-c.adb, sinput-c.ads, sinput-d.adb: Likewise.
3699 * sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.adb: Likewise.
3700 * sinput.ads, socket.c, spark_xrefs.adb, spark_xrefs.ads: Likewise.
3701 * sprint.adb, sprint.ads, stand.ads: Likewise.
3702 * stringt.adb, stringt.ads, stringt.h, strub.adb, strub.ads: Likewise.
3703 * style.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb: Likewise.
3704 * stylesw.ads, switch-b.adb, switch-b.ads, switch-c.adb: Likewise.
3705 * switch-c.ads, switch-m.adb, switch-m.ads, switch.adb: Likewise.
3706 * switch.ads, sysdep.c, table.adb: Likewise.
3707 * table.ads, targext.c, targparm.adb, targparm.ads, tbuild.adb: Likewise.
3708 * tbuild.ads, tempdir.adb, tempdir.ads, terminals.c, tracebak.c: Likewise.
3709 * treepr.adb, treepr.ads, ttypes.ads, types.adb, types.ads: Likewise.
3710 * types.h, uintp.adb, uintp.ads, uintp.h, uname.adb, uname.ads: Likewise.
3711 * urealp.adb, urealp.ads, urealp.h, usage.adb, usage.ads: Likewise.
3712 * validsw.adb, validsw.ads, vast.adb, vast.ads, warnsw.adb: Likewise.
3713 * warnsw.ads, widechar.adb, widechar.ads, xoscons.adb: Likewise.
3714 * xsnamest.adb, xutil.adb, xutil.ads, gnatvsn.adb: Likewise.
3715 * gnatvsn.ads (Current_Year): Likewise and bump to 2023.
3717 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
3719 * exp_ch7.adb (Make_Adjust_Call): Remove unreachable statement.
3720 (Make_Final_Call): Likewise.
3722 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
3724 * exp_util.ads (Is_Tag_To_Class_Wide_Conversion): Delete.
3725 (Is_Displacement_Of_Object_Or_Function_Result): Likewise.
3726 * exp_util.adb (Is_Tag_To_Class_Wide_Conversion): Rename to...
3727 (Is_Temporary_For_Interface_Object): ...this.
3728 (Is_Finalizable_Transient): Adjust call to above renaming.
3729 (Is_Displacement_Of_Object_Or_Function_Result): Delete.
3730 (Requires_Cleanup_Actions): Remove special handling of the
3731 temporaries created for interface objects.
3732 * exp_ch7.adb (Build_Finalizer): Likewise.
3734 2023-01-07 LIU Hao <lh_mouse@126.com>
3736 PR middle-end/108300
3737 * adaint.c: Define `WIN32_LEAN_AND_MEAN` before `#include
3740 * ctrl_c.c: Likewise.
3741 * expect.c: Likewise.
3742 * gsocket.h: Likewise.
3743 * mingw32.h: Likewise.
3744 * mkdir.c: Likewise.
3745 * rtfinal.c: Likewise.
3746 * rtinit.c: Likewise.
3747 * seh_init.c: Likewise.
3748 * sysdep.c: Likewise.
3749 * terminals.c: Likewise.
3750 * tracebak.c: Likewise.
3752 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3754 * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: Tweak.
3756 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3758 * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite the end of the
3759 handling of objects with (class-wide) interface type by using the
3760 same idiom as the other cases generating a renaming.
3761 * exp_util.adb (Is_Displacement_Of_Object_Or_Function_Result): Tweak
3762 pattern matching code and exclude special return objects.
3763 (Requires_Cleanup_Actions): Adjust comment.
3764 * exp_ch7.adb (Build_Finalizer): Likewise.
3766 2023-01-05 Piotr Trojanek <trojanek@adacore.com>
3768 * freeze.adb (Build_Renamed_Body): Rewrite subprogram renaming to
3769 subprogram declaration early and then set the Body_To_Inling flag.
3771 2023-01-05 Piotr Trojanek <trojanek@adacore.com>
3773 * freeze.adb (Build_Renamed_Body): Revert a special case for
3774 GNATprove; remove unnecessary initialization of a local variable.
3776 2023-01-05 Marc Poulhiès <poulhies@adacore.com>
3778 * sem_ch12.adb (Instantiate_Package_Body): Better filtering when
3779 installing parent on the scope stack.
3781 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3783 * repinfo.ads (The JSON output format): Document change.
3784 * urealp.adb (UR_Write_To_JSON): Output a fraction instead of a
3785 decimal approximation.
3787 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3789 * exp_ch3.adb (Expand_N_Object_Declaration): New local variable
3790 Func_Id holding the function for a special return object.
3791 Use a direct renaming in the class-wide case when the initializing
3792 expression is a captured function call, except for a special return
3793 object when the two functions do not return on the same stack.
3794 Apply the accessibility check for class-wide special return objects.
3795 * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: New.
3796 Do not force a dispatching call to the primitive operation _Size if
3797 the expression is known to statically have the tag of its type.
3799 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3801 * exp_ch3.adb (Expand_N_Object_Declaration): Fix pasto in comment.
3803 2023-01-05 Ronan Desplanques <desplanques@adacore.com>
3805 * sem_aggr.adb (Resolve_Array_Aggregate): Tweak conditions for
3806 warning about use of parentheses for array aggregates.
3808 2023-01-05 Javier Miranda <miranda@adacore.com>
3810 * scans.ads (Tok_Left_Curly_Bracket, Tok_Right_Curly_Bracket)
3811 (Tok_Left_Interpolated_String): Placed in no category since they
3812 don't fit well in the existing categories. Fix typo in comment.
3813 (Inside_Interpolated_String_Literal): New scan state variable.
3814 * scng.adb (Slit): Scan interpolated string literals,
3815 continuations of interpolated string literals and escaped
3816 characters found in interpolated string literals.
3817 (Scan): Handle consecutive interpolated expressions. Handle ending
3818 delimiter placed immediately after an interpolated expression.
3819 Handle string literal placed after interpolated expression. Handle
3820 left and right curly brackets; when extensions are not allowed
3821 they are treated as left and right paren; when extensions are
3822 allowed they are handled as delimiters of interpolated string
3824 * sinfo.ads (N_Interpolated_String_Literal): New node.
3825 * gen_il-gen-gen_nodes.adb (N_Interpolated_String_Literal): Define
3826 N_String_Literal node.
3827 * gen_il-types.ads (Opt_Type_Enum): Define N_String_Literal as
3829 * par-ch2.adb (P_Interpolated_String_Literal): New subprogram.
3830 * par-ch4.adb (P_Simple_Expression): Handle '}' as expression
3831 terminator when scanning an interpolated expression; disable error
3832 recovery machinery for binary operator when we are processing an
3833 interpolated string literal and reach the expression terminator
3835 (P_Primary): Call P_Interpolated_String_Literal when the opening
3836 interpolated-string-literal delimiter is found (that is, the left
3838 * par-tchk.adb (T_Right_Curly_Bracket): New subprogram.
3839 * par.adb (P_Interpolated_String_Literal): New declaration.
3840 (T_Right_Curly_Bracket): New declaration.
3841 * sem.adb (Analyze): Call Analyze_Interpolated_String_Literal.
3842 * sem_ch2.ads (Analyze_Interpolated_String_Literal): New
3844 * sem_ch2.adb (Analyze_Interpolated_String_Literal): Likewise.
3845 * sem_util.adb (Is_User_Defined_Literal): Complete mapping of
3846 literal aspects adding that interpolated string literals have no
3847 correspondence with any aspect.
3848 * sem_res.adb (Resolve_Interpolated_String_Literal): New
3850 (Has_Applicable_User_Defined_Literal): Complete mapping of literal
3851 aspects adding that interpolated string literals have no
3852 correspondency with any aspect.
3853 * expander.adb (Expand): Add call to
3854 Expand_N_Interpolated_String_Literal.
3855 * exp_util.adb (Insert_Actions): Handle
3856 N_Interpolated_String_Literal nodes; that is, continue climbing.
3857 * exp_ch2.ads (Expand_N_Interpolated_String_Literal): New
3859 * exp_ch2.adb (Expand_N_Interpolated_String_Literal): Likewise.
3860 * exp_put_image.adb (Build_Elementary_Put_Image_Call): Add missing
3861 conversion to force dispatching call. Required to handle calls to
3863 (Build_String_Put_Image_Call): Do not output string delimiters
3864 when the put_image call is part of an interpolated string literal.
3865 * rtsfind.ads (RTU_Id): Add RE_Set_Trim_Leading_Spaces.
3866 * sprint.adb (Sprint_Node): Output interpolated string contents.
3867 * libgnat/a-stbubo.adb (Get_UTF_8): Add default value for
3868 Trim_Leading_White_Spaces component in aggregate.
3869 (Buffer_Type_Implementation): Update Trim_Leading_White_Spaces.
3870 * libgnat/a-stbuun.adb (Get_UTF_8): Likewise.
3871 (Buffer_Type_Implementation): Likewise.
3872 * libgnat/a-sttebu.ads (Set_Trim_Leading_Spaces): New subprogram.
3873 (Trim_Leading_Spaces): New subprogram.
3874 (Root_Buffer_Type): Adding Trim_Leading_While_Spaces component.
3875 * libgnat/a-sttebu.adb (procedure Set_Trim_Leading_Spaces): New
3877 (Trim_Leading_Space): New subprogram.
3878 (Put_UTF_8): Handle Trim_Leading_White_Spaces.
3879 (New_Line): Likewise.
3880 * libgnat/s-putima.ads (Put_Image_String): Adding formal
3882 (Put_Image_Wide_String): Likewise.
3883 (Put_Image_Wide_Wide_String): Likewise.
3884 * libgnat/s-putima.adb (Put_Image_String): Adding support for new
3886 (Put_Image_Wide_String): Likewise.
3887 (Put_Image_Wide_Wide_String): Likewise.
3889 2023-01-05 Joao Azevedo <azevedo@adacore.com>
3891 * doc/gnat_ugn/gnat_utility_programs.rst: add gnatpp --layout
3892 switch and update legacy switches.
3894 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3896 * freeze.adb (Freeze_Entity): For the purpose of deciding whether to
3897 freeze an entity coming from an outer scope in an inner scope, treat
3898 the internal subprogram generated because of post-conditions as also
3899 coming from source if the original subprogram itself does.
3901 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3903 * contracts.adb (Build_Subprogram_Contract_Wrapper): Generate an
3904 extended return statement in all cases.
3905 (Expand_Subprogram_Contract): Adjust comment.
3907 2023-01-05 Ronan Desplanques <desplanques@adacore.com>
3909 * libgnat/g-forstr.adb (F_Kind): Rename enumeration literal.
3910 (P_Flt_Format): Adjust handling of "%g".
3911 (Determine_Notation_And_Aft): New procedure.
3912 (Decimal_Exponent): New function.
3913 (Increment_Integral_Part): New procedure.
3914 (Remove_Extraneous_Decimal_Digit): New procedure.
3915 (Trim_Fractional_Part): New procedure.
3916 * libgnat/g-forstr.ads: Change description of "%g" specifier.
3918 2023-01-05 Marc Poulhiès <poulhies@adacore.com>
3920 * sem_ch12.adb (Instantiate_Package_Body): Correctly find the
3921 parent instance to place on the scope stack.
3923 2023-01-05 Justin Squirek <squirek@adacore.com>
3925 * sem_ch8.adb (Set_Entity_Or_Discriminal): Verify we are actually
3926 resetting the entity field of a non-prefixed discriminant
3929 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3931 * exp_ch3.adb (Expand_N_Object_Declaration): New local variable used
3932 throughout instead of testing Is_Special_Return_Object every time.
3933 Do not rename an OK_To_Rename object for a special return object.
3934 * exp_ch4.adb (Expand_Concatenate): Revert to constrained allocation
3935 if the result is allocated on the secondary stack.
3937 2023-01-05 Steve Baird <baird@adacore.com>
3939 * sem_prag.adb (Analyze_Pragma): Fix Is_Configuration_Pragma
3940 function to handle case where the pragma's parent is an
3941 N_Aspect_Specification node. In analyzing a Discard_Names pragma,
3942 do not assume that a nonzero number of arguments implies that the
3943 pragma is not a configuration pragma; that assumption only holds
3946 2023-01-05 Bob Duff <duff@adacore.com>
3948 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
3950 * gnat_ugn.texi: Regenerate.
3952 2023-01-05 Eric Botcazou <ebotcazou@adacore.com>
3954 * exp_ch3.adb (Expand_N_Object_Declaration): For a special return
3955 object of an interface type that is not inherently limited, make
3956 a call to the Adjust primitive after doing the copy. For a special
3957 return object of a non-class-wide type initialized by a function
3958 call, use a direct renaming only if the object doing the capture
3959 is flagged by Is_Related_To_Func_Return. For a special return
3960 object using a direct renaming, reassign the tag, if need be.
3961 * exp_ch6.adb (Expand_Simple_Function_Return): Fix comment.
3962 * exp_util.adb (Is_Related_To_Func_Return): Accept both regular and
3963 renaming object declarations for return objects.
3965 2023-01-05 Bob Duff <duff@adacore.com>
3967 * sem_ch5.adb (Analyze_Assignment): Fix the bug by checking
3968 Original_Node. The renaming might be elsewhere, but the (original)
3969 reference is right here.
3970 * errout.adb: Remove pragma Unreferenced which was added because
3972 * einfo.ads: Misc cleanup.
3973 * lib.adb: Likewise.
3974 * lib.ads: Likewise.
3976 2023-01-03 Ghjuvan Lacambre <lacambre@adacore.com>
3978 * errout.adb (Write_JSON_Span): Escape subprogram name.
3980 2023-01-03 Ghjuvan Lacambre <lacambre@adacore.com>
3982 * output.adb (Write_Buffer): Use Flush_Buffer instead of Write_Eol.
3984 2023-01-03 Ronan Desplanques <desplanques@adacore.com>
3986 * libgnat/g-forstr.adb (P_Flt_Format): Add "*" syntax handling.
3988 2023-01-03 Ronan Desplanques <desplanques@adacore.com>
3990 * libgnat/g-forstr.adb (P_Int_Format): Fix parsing bug.
3992 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
3994 * exp_ch6.adb (Expand_Simple_Function_Return): Make sure that a
3995 captured function call also verifies Is_Related_To_Func_Return.
3996 Do not generate an actual subtype for special return objects.
3997 * exp_util.ads (Is_Related_To_Func_Return): Add commentary.
3999 2023-01-03 Ronan Desplanques <desplanques@adacore.com>
4001 * libgnat/g-forstr.adb
4002 (Advance_And_Accumulate_Until_Next_Specifier): New procedure.
4003 ("-"): Replace inline code with call to
4004 Advance_And_Accumulate_Until_Next_Specifier.
4005 (Next_Format): likewise.
4007 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
4009 * checks.adb (Apply_Discriminant_Check.Denotes_Explicit_Dereference):
4010 Return false for artificial dereferences generated by the expander.
4012 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
4014 * exp_ch6.adb (Is_Build_In_Place_Function): Adjust comment.
4015 * sem_util.adb (Compute_Returns_By_Ref): Do not set Returns_By_Ref
4016 on functions with foreign convention.
4018 2023-01-03 Marc Poulhiès <poulhies@adacore.com>
4020 * exp_aggr.adb (Build_Assignment_With_Temporary): New.
4021 (Expand_Array_Aggregate): Tune backend optimization
4022 and insert a temporary in the case of an access with
4023 Designated_Storage_Model aspect.
4024 (Convert_Array_Aggr_In_Allocator): Likewise.
4026 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
4028 * sem_res.adb (Resolve_Membership_Op): Adjust again latest change.
4030 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
4032 * sem_util.ads (Set_Debug_Info_Defining_Id): Adjust comment.
4033 * sem_util.adb (Is_Aliased_View) <N_Explicit_Dereference>: Return
4034 false for more artificial dereferences generated by the expander.
4035 (Set_Debug_Info_Defining_Id): Set Debug_Info_Needed unconditionally
4037 * exp_ch6.adb (Replace_Renaming_Declaration_Id): Also preserve the
4040 2023-01-03 Joel Brobecker <brobecker@adacore.com>
4042 * doc/gnat_ugn/platform_specific_information.rst
4043 (_Platform_Specific_Information): Minor rewording of intro text.
4044 * gnat_ugn.texi: Regenerate.
4046 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
4048 * exp_util.ads (Is_Captured_Function_Call): Declare.
4049 * exp_util.adb (Is_Captured_Function_Call): New predicate.
4050 * exp_ch3.adb (Expand_N_Object_Declaration): Use it to detect a
4051 rewritten function call as the initializing expression.
4052 * exp_ch6.adb (Expand_Simple_Function_Return): Use it to detect a
4053 rewritten function call as the returned expression.
4055 2023-01-03 Bob Duff <duff@adacore.com>
4057 * exp_util.adb (Integer_Type_For): Assertion and comment.
4058 (Small_Integer_Type_For): Remove some code and call
4059 Integer_Type_For instead.
4060 * sem_util.ads (Rep_To_Pos_Flag): Improve comments. "Standard_..."
4061 seems overly pedantic here.
4062 * exp_attr.adb (Succ, Pred): Clean up: make the code as similar as
4064 * exp_ch4.adb: Minor: named notation.
4066 2023-01-03 Javier Miranda <miranda@adacore.com>
4068 * ghost.adb (Is_OK_Declaration): A reference to a Ghost entity may
4069 appear within the class-wide precondition of a helper subprogram.
4070 This context is treated as suitable because it was already
4071 verified when we were analyzing the original class-wide
4074 2023-01-03 Eric Botcazou <ebotcazou@adacore.com>
4076 * exp_tss.adb (Base_Init_Proc): Do not return the Init_Proc of the
4077 ancestor type for a derived array type.
4078 * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Factor out the
4079 common processing done on representation items.
4080 For Default_Component_Value and Default_Value, look into the first
4081 subtype to find out the representation items.
4083 2023-01-02 Iain Sandoe <iain@sandoe.co.uk>
4086 * gcc-interface/Make-lang.in (GCC_LINKERFLAGS, GCC_LDFLAGS):
4087 Versions of ALL_LINKERFLAGS, LDFLAGS with -Werror and
4088 -static-libgcc filtered out for Darwin8 and 9 (-Werror is filtered
4089 out for other hosts).
4091 2023-01-02 Jakub Jelinek <jakub@redhat.com>
4093 * gnat_ugn.texi: Bump @copying's copyright year.
4094 * gnat_rm.texi: Likewise.
4097 Copyright (C) 2023 Free Software Foundation, Inc.
4099 Copying and distribution of this file, with or without modification,
4100 are permitted in any medium without royalty provided the copyright
4101 notice and this notice are preserved.