]> gcc.gnu.org Git - gcc.git/blame - gcc/ada/ChangeLog
Daily bump.
[gcc.git] / gcc / ada / ChangeLog
CommitLineData
c48f1056
GA
12023-11-07 Joseph Myers <joseph@codesourcery.com>
2
3 * gcc-interface/utils.cc (flag_isoc2x): Rename to flag_isoc23.
4
52023-11-07 Eric Botcazou <ebotcazou@adacore.com>
6
7 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Apply the
8 specific rewriting done for an aliased object with an unconstrained
9 array nominal subtype in the renaming case too.
10
112023-11-07 Eric Botcazou <ebotcazou@adacore.com>
12
13 * gcc-interface/trans.cc (gnat_gimplify_expr) <CALL_EXPR>: Delete.
14
152023-11-07 Bob Duff <duff@adacore.com>
16
17 * sem_ch13.ads (Set_Enum_Esize): Do not set alignment.
18 * sem_ch13.adb (Set_Enum_Esize): Do not set alignment. Archaeology
19 seems to show that this line of code dates from when "Alignment =
20 0" meant "the Alignment is not known at compile time" and "the
21 Alignment is not yet known at compile time" as well as "the
22 Alignment is zero". In any case, it seems to be unnecessary, and
23 in this case harmful, because gigi would crash. Alignment_Clause
24 is set (because there is one), so gigi would query the Alignment,
25 but Alignment was destroyed.
26
272023-11-07 Julien Bortolussi <bortolussi@adacore.com>
28
29 * doc/share/conf.py: Changed the background color and the logo.
30
312023-11-07 Eric Botcazou <ebotcazou@adacore.com>
32
33 * gen_il-fields.ads (Opt_Field_Enum): Add Compare_Type.
34 * gen_il-gen-gen_nodes.adb (N_Op_Eq): Likewise.
35 (N_Op_Ge): Likewise.
36 (N_Op_Gt): Likewise.
37 (N_Op_Le): Likewise.
38 (N_Op_Lt): Likewise.
39 (N_Op_Ne): Likewise.
40 * sinfo.ads (Compare_Type): Document new field.
41 * sem_ch4.adb (Analyze_Comparison_Equality_Op): If the entity is
42 already present, set the Compare_Type on overloaded operands if it
43 is present on the node.
44 * sem_ch12.adb (Check_Private_View): Look into the Compare_Type
45 instead of the Etype for comparison operators.
46 (Copy_Generic_Node): Remove obsolete code for comparison
47 operators.
48 (Save_Global_References.Save_References): Do not walk into the
49 descendants of N_Implicit_Label_Declaration nodes.
50 (Save_Global_References.Set_Global_Type): Look into the
51 Compare_Type instead of the Etype for comparison operators.
52 * sem_res.adb (Resolve_Comparison_Op): Set Compare_Type.
53 (Resolve_Equality_Op): Likewise.
54
552023-11-07 Ronan Desplanques <desplanques@adacore.com>
56
57 * adaint.c (__gnat_file_time): Fix Windows version.
58
592023-11-07 Eric Botcazou <ebotcazou@adacore.com>
60
61 * exp_ch3.adb (Expand_N_Object_Declaration): Fold initialization
62 expression of Nominal_Subtype_Is_Constrained_Array constant into
63 the computation of Rewrite_As_Renaming and remove the constant.
64 Set it to True for an aliased array with unconstrained nominal
65 subtype if the subtype of the expression is also unconstrained.
66
672023-11-07 Piotr Trojanek <trojanek@adacore.com>
68
69 * exp_util.adb (Add_Own_DIC, Add_Own_Invariants): Store the aspect
70 expression in Expression_Copy.
71
722023-11-07 Yannick Moy <moy@adacore.com>
73
74 * exp_aggr.adb: Apply the renaming.
75 * exp_ch3.adb: Same.
76 * exp_ch4.adb: Same.
77 * exp_ch6.adb: Same.
78 * exp_ch7.adb: Same.
79 * exp_util.adb: Same.
80 * freeze.adb: Same.
81 * sem_aggr.adb: Same.
82 * sem_attr.adb: Same.
83 * sem_aux.adb: Alphabetize Is_Limited_Type. Rename.
84 * sem_aux.ads: Same.
85 * sem_ch3.adb: Apply the renaming.
86 * sem_ch6.adb: Same.
87 * sem_ch8.adb: Same.
88 * sem_prag.adb: Same.
89 * sem_res.adb: Same.
90 * sem_util.adb: Same.
91
922023-11-07 Viljar Indus <indus@adacore.com>
93
94 * aspects.adb (Exchange_Aspects): Removed. This method was
95 typically called after a Rewrite method. Now since the Rewrite
96 switches the aspects between the new and the old node it is no
97 longer needed.
98 (Has_Aspects): Converted to a utility method that performs the same
99 before as the previous Has_Aspects field did. Meaning it shows whether
100 a node actually has aspects or not.
101 (Copy_Aspects): New utility method that performs a deep copy of the
102 From nodes aspects.
103 (Aspect_Specfications): Removed. No longer needed. Replaced
104 by the primitive operation for the Aspect_Specification fields.
105 (Set_Aspect_Specifications): Likewise.
106 (Aspect_Specifications_Hash_Table): Remove the table and all the
107 utility methods for storing the old aspects.
108 * aspects.ads: Likewise.
109 * atree.adb (Copy_Separate_Tree): Remove custom code for aspects.
110 (New_Copy): Likewise.
111 (Replace): Likewise.
112 (Rewrite): Likewise.
113 * exp_ch3.adb (Expand_N_Object_Declaration): Keep the aspects from the old node.
114 * exp_ch6.adb (Validate_Subprogram_Calls): Previously aspects were ignored
115 because they were not on the tree. Explicitly ignore them here
116 when traversing the tree.
117 * exp_unst.adb (Build_Tables): Likewise
118 * gen_il-fields.ads: Remove Has_Aspects and add
119 Aspect_Specifications fields.
120 * gen_il-gen-gen_nodes.adb: Add Aspect_Specification fields
121 for all nodes that can have aspects. Additionally add
122 Expression_Copy for Aspect_Speficiations to avoid reusing
123 the Associated_Node for generic instantiation and aspect
124 analysis.
125 * ghost.adb (Remove_Ignored_Ghost_Node): Remove call to Remove_Aspects.
126 The rewritten node is a Null_Statement that cannot have aspects
127 and there is not anything to gain from removing them from the
128 Orignal_Node of N since it technically is not part of the active
129 tree.
130 * inline.adb (Process_Formals_In_Aspects): Simplify code for node traversal.
131 * par-ch13.adb: Avoid setting the parent explicitly for the
132 Aspect_Specifications list. This is done explicitly in the setter.
133 * par-ch6.adb: Likewise.
134 * par_sco.adb (Traverse_Aspects): Handle early return.
135 * sem_ch10.adb: Simplify code for Analyze_Aspect_Specifications.
136 * sem_ch11.adb: Likewise.
137 * sem_ch12.adb (Analyze_Formal_Derived_Interface_Type): Keep the aspects from
138 the orignal node after rewrite.
139 (Analyze_Formal_Derived_Type): Likewise.
140 (Analyze_Formal_Interface_Type): Likewise.
141 (Analyze_Formal_Object_Declaration): Simplify code for
142 Analyze_Aspect_Specifications.
143 (Analyze_Formal_Package_Declaration): Likewise.
144 (Analyze_Formal_Subprogram_Declaration): Likewise.
145 (Analyze_Formal_Type_Declaration): Likewise.
146 (Analyze_Generic_Package_Declaration): Remove Exchange_Aspects.
147 The new node already has the correct aspects after the rewrite.
148 Also simplify code for Analyze_Aspect_Specifications.
149 (Analyze_Generic_Subprogram_Declaration): Likewise.
150 (Analyze_Package_Instantiation): Simplify code for
151 Analyze_Aspect_Specifications.
152 (Build_Instance_Compilation_Unit_Nodes): Remove explicit copy of
153 aspects that is no longer needed.
154 (Save_References): Update the traversal code to handle
155 Aspect_Specifications in the tree.
156 (Copy_Generic_Node): Remove explicit copy for aspects. New_Copy
157 took care of that already.
158 * sem_ch13.adb (Analyze_Aspect_Specifications): Add early return to simplify
159 code for its calls. Avoid reusing the Entity(Associated_Node)
160 field for storing the original expression. Instead use the
161 new Expression_Copy field since Entity(Associated_Node) is
162 also used in generic instantiation.
163 (Analyze_Aspects_On_Subprogram_Body_Or_Stub): Simlify call
164 to Analyze_Aspect_Specifications.
165 (Check_Aspect_At_End_Of_Declarations): Use Expression_Copy
166 instead of Entity.
167 (Check_Aspect_At_Freeze_Point): Likewise.
168 * sem_ch3.adb: Simplify calls to Analyze_Aspect_Specifications.
169 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Simplify call to
170 Analyze_Aspect_Specifications.
171 (Analyze_Expression_Function): Keep the aspects from the
172 original node after a rewrite.
173 (Analyze_Generic_Subprogram_Body): Remove Exchange aspects
174 that is no longer needed. Simplify call to
175 Analyze_Aspect_Specifications.
176 (Analyze_Null_Procedure): Keep the aspects from the
177 original node after a rewrite.
178 (Analyze_Subprogram_Body_Helper): Simplify calls to
179 Analyze_Aspect_Specifications.
180 (Analyze_Subprogram_Declaration): Likewise.
181 * sem_ch7.adb (Analyze_Package_Body_Helper): Remove Exchange aspects
182 that is no longer needed. Simplify call to
183 Analyze_Aspect_Specifications.
184 (Analyze_Package_Declaration): Simplify call to
185 Analyze_Aspect_Specifications.
186 (Analyze_Private_Type_Declaration): Likewise.
187 * sem_ch8.adb: Simplify calls to
188 Analyze_Aspect_Specifications.
189 * sem_ch9.adb (Analyze_Entry_Body): Simplify call to
190 Analyze_Aspects_On_Subprogram_Body_Or_Stub.
191 (Analyze_Entry_Declaration): Simplify call to
192 Analyze_Aspect_Specifications.
193 (Analyze_Protected_Body): Likewise.
194 (Analyze_Protected_Type_Declaration): Likewise.
195 (Analyze_Single_Protected_Declaration): Keep the aspects from
196 the original node after a rewrite. Simplify call to
197 Analyze_Aspect_Specifications.
198 (Analyze_Single_Task_Declaration): Likewise.
199 (Analyze_Task_Body): Simplify call to
200 Analyze_Aspect_Specifications.
201 (Analyze_Task_Type_Declaration): Simplify calls to
202 Analyze_Aspect_Specifications.
203 * sem_dim.adb: Remove explicitly setting the parents
204 for the Aspect_Specification list.
205 * sem_disp.adb: Remove the with that is no longer
206 required since Aspect_Specifications is a node operation now.
207 * sem_util.adb (Copy_Node_With_Replacement): Remove explicit code for aspects.
208 * treepr.adb (Print_Field): Remove the version that was used for printing
209 aspects.
210 (Print_Node): Remove aspect specific code.
211
2122023-11-07 Eric Botcazou <ebotcazou@adacore.com>
213
214 * gen_il-gen-gen_nodes.adb (N_Op_Boolean): Fix description.
215 * sem_ch4.adb (Analyze_Comparison_Equality_Op): Tidy up.
216 * sem_ch12.adb (Copy_Generic_Node): Use N_Op_Compare subtype.
217
2182023-11-07 Piotr Trojanek <trojanek@adacore.com>
219
220 * exp_ch6.adb, exp_disp.adb, sem_ch13.adb, sem_ch3.adb: Fix newly
221 detected violations.
222
2232023-11-07 Piotr Trojanek <trojanek@adacore.com>
224
225 * sem_ch3.adb, sem_ch4.adb, sem_eval.adb: Fix newly detected
226 violations.
227
2282023-11-07 Ronan Desplanques <desplanques@adacore.com>
229
230 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
231 -gnatwc documentation.
232 * gnat_ugn.texi: Regenerate.
233
2342023-11-07 Steve Baird <baird@adacore.com>
235
236 * local_restrict.ads: A new package. Declares Local_Restriction
237 enumeration type and provides operations to check for local
238 restriction violations.
239 * local_restrict.adb: Corresponding package body. Replace "not
240 Present (X)" calls with "No (X)" calls.
241 * aspects.ads: Add a new enumeration elements,
242 Aspect_Local_Restrictions and Aspect_User_Aspect, to the Aspect_Id
243 enumeration type. Update Aspect_Id-indexed aggregates. Add nested
244 package User_Aspect_Support to manage two pieces of state. One is
245 a map from identifiers to User_Aspect_Definition pragmas (updated
246 when such a pragma is encountered). The other is an
247 access-to-subprogram variable that is introduced in order to keep
248 the bulk of semantics out of the closure of package Aspects while
249 allowing a call from aspects.adb to the sem_ch13 procedure that
250 analyzes a User_Aspect aspect specification.
251 * aspects.adb (Find_Aspect): Cope with a case of a block statement
252 with an empty parent. It is not clear whether this is papering
253 over a compiler bug. Add indirect call through the aforementioned
254 access-to-subprogram variable when Find_Aspect enounters an
255 unanalyzed User_Aspect aspect specification. If Find_Aspect is
256 called looking for aspect Foo, then a User_Aspect specification
257 might generate (during analysis) a Foo aspect specification. So
258 the Find_Aspect call needs to trigger that analysis if it has not
259 already taken place. Provide a body for package
260 User_Aspect_Support. Replace "not Present (X)" call with "No (X)"
261 call.
262 * freeze.adb (Freeze_Subprogram): Check local restriction
263 compatibility when a dispatching operation is overridden.
264 * par-prag.adb: Add support for parsing a User_Aspect_Definition
265 pragma.
266 * restrict.ads: We'd like to have the body of package Restrict
267 include a call to a procedure declared in package Local_Restrict.
268 Doing that in the obvious way pulls most of semantics into the
269 closure of package Restrict, and that turns out to cause problems.
270 So we introduce a level of indirection and instead call through an
271 access-to-subprogram value. In this unit, we declare the
272 access-to-subprogram type and object.
273 * restrict.adb (Check Restriction): When a construct is
274 encountered that could violate a global restriction (depending on
275 whether the given restriction is in effect), Check_Restriction is
276 called. At this point, we also check for a violation of any
277 corresponding local restriction that is in effect. For reasons
278 described above, this check is performed via an indirect call.
279 * sem_ch13.ads (Parse_Aspect_Local_Restrictions): A new function,
280 similar to the existing Parse_Aspect_Xxx subprograms.
281 * sem_ch13.adb: Perform semantic analysis of Local_Restrictions
282 and User_Aspect aspect specifications. Declare and call new
283 Validate_Aspect_Local_Restrictions and
284 Analyze_User_Aspect_Aspect_Specification procedures (a reference
285 to the latter is registered during package elaboration). In
286 Analyze_Aspect_Specifications, do not set the Analyzed flag of a
287 User_Aspect aspect specification. Replace "not Present (X)" call
288 with "No (X)" call. Replace 'Image with 'Img in a case where the
289 prefix of the attribute reference is an object; this is done to
290 accomodate older compilers.
291 * sem_ch6.adb (Check_Subtype_Conformant): Include in subtype
292 conformance check a check for overriding-related compatibility of
293 local restrictions.
294 * sem_ch8.adb (Analyze_Subprogram_Renaming): In the case of an
295 instance of a generic that takes a formal subprogram, check that
296 formal and actual are compatible with respect to local
297 restrictions.
298 * sem_prag.adb: Add support for User_Aspect_Definition pragma.
299 * sem_res.adb (Resolve_Call): Check caller/callee compatibility
300 with respect to local restrictions.
301 * snames.ads-tmpl: Add Name_Local_Restrictions, Name_User_Aspect,
302 and Name_User_Aspect_Definition constants.
303 * doc/gnat_rm/implementation_defined_aspects.rst: Document new
304 aspects.
305 * doc/gnat_rm/implementation_defined_pragmas.rst: Document new
306 pragma.
307 * doc/gnat_ugn/the_gnat_compilation_model.rst: Add
308 User_Aspect_Definition to list of GNAT pragmas.
309 * gcc-interface/Make-lang.in: Add local_restrict.o.
310 * gnat-style.texi: Regenerate.
311 * gnat_rm.texi: Regenerate.
312 * gnat_ugn.texi: Regenerate.
313
3142023-11-07 Bob Duff <duff@adacore.com>
315
316 * sem_ch4.adb (Is_Private_Overriding): Return True in the case
317 where a primitive operation is publicly inherited but privately
318 overridden.
319
3202023-11-07 Piotr Trojanek <trojanek@adacore.com>
321
322 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Remove code from the
323 ELSE branch, because it was is identical to code before the IF
324 statements itself.
325
3262023-11-07 Piotr Trojanek <trojanek@adacore.com>
327
328 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Change Ctyp and Csiz
329 from variables to constants and compute them using the nominal type
330 of the assigned array object.
331
3322023-11-07 Piotr Trojanek <trojanek@adacore.com>
333
334 * exp_pakd.adb, libgnarl/s-osinte__android.ads,
335 libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__qnx.ads,
336 libgnarl/s-osinte__rtems.ads, libgnat/s-gearop.adb,
337 libgnat/s-poosiz.adb, sem_util.adb: Fix style.
338
3392023-11-07 Piotr Trojanek <trojanek@adacore.com>
340
341 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Simplify handling of
342 assignments with string literals.
343
3442023-11-07 Piotr Trojanek <trojanek@adacore.com>
345
346 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Remove Rhs_Val_Known;
347 represent unknown value by assigning Rhs_Val with No_Uint.
348
3492023-11-07 Piotr Trojanek <trojanek@adacore.com>
350
351 * exp_pakd.adb
352 (Expand_Bit_Packed_Element_Set): Change local Decl object from
353 variable to constant.
354 (Setup_Inline_Packed_Array_Reference): Likewise for Csiz.
355
3562023-11-07 Piotr Trojanek <trojanek@adacore.com>
357
358 * exp_pakd.adb (Setup_Inline_Packed_Array_Reference): Remove extra
359 whitespace from the list of parameters.
360
3612023-11-07 Piotr Trojanek <trojanek@adacore.com>
362
363 * sem_util.adb (Get_Actual_Subtype_If_Available): Only call Etype
364 when necessary.
365
3662023-11-07 Piotr Trojanek <trojanek@adacore.com>
367
368 * sem_util.adb
369 (Get_Actual_Subtype,Get_Actual_Subtype_If_Available): Fix handling
370 of expanded names.
371
3722023-11-07 Viljar Indus <indus@adacore.com>
373
374 * sem_prag.adb: (Analyze_Pragma): Reduce the number of nested if
375 statements.
376
3772023-11-07 Viljar Indus <indus@adacore.com>
378
379 * sem_ch10.adb: (Analyze_Compilation_Unit): Restore the orignal
380 state of style check pragmas at the end of the analysis.
381
3822023-11-07 Eric Botcazou <ebotcazou@adacore.com>
383
384 * exp_pakd.adb (Get_Base_And_Bit_Offset): Use the full component
385 reference instead of just the selector name for 'Bit_Position.
386
eb4e1b62
GA
3872023-11-04 David Malcolm <dmalcolm@redhat.com>
388
389 * gcc-interface/misc.cc: Update for changes to diagnostic_context.
390
3b632746
GA
3912023-10-22 Iain Sandoe <iain@sandoe.co.uk>
392
393 * gcc-interface/Makefile.in: Handle Darwin rpaths.
394
6f684dd2
GA
3952023-10-20 Alexandre Oliva <oliva@adacore.com>
396
397 * gcc-interface/trans.cc (gigi): Mark __gnat_reraise_zcx with
398 ECF_XTHROW.
399 (build_raise_check): Likewise for all rcheck subprograms.
400
c85f7481
GA
4012023-10-19 Yannick Moy <moy@adacore.com>
402
403 * aspects.ads: Add aspect Side_Effects.
404 * contracts.adb (Add_Pre_Post_Condition)
405 (Inherit_Subprogram_Contract): Add support for new contract.
406 * contracts.ads: Update comments.
407 * einfo-utils.adb (Get_Pragma): Add support.
408 * einfo-utils.ads (Prag): Update comment.
409 * errout.ads: Add explain codes.
410 * par-prag.adb (Prag): Add support.
411 * sem_ch13.adb (Analyze_Aspect_Specifications)
412 (Check_Aspect_At_Freeze_Point): Add support.
413 * sem_ch6.adb (Analyze_Subprogram_Body_Helper)
414 (Analyze_Subprogram_Declaration): Call new analysis procedure to
415 check SPARK legality rules.
416 (Analyze_SPARK_Subprogram_Specification): New procedure to check
417 SPARK legality rules. Use an explain code for the error.
418 (Analyze_Subprogram_Specification): Move checks to new subprogram.
419 This code was effectively dead, as the kind for parameters was set
420 to E_Void at this point to detect early references.
421 * sem_ch6.ads (Analyze_Subprogram_Specification): Add new
422 procedure.
423 * sem_prag.adb (Analyze_Depends_In_Decl_Part)
424 (Analyze_Global_In_Decl_Part): Adapt legality check to apply only
425 to functions without side-effects.
426 (Analyze_If_Present): Extract functionality in new procedure
427 Analyze_If_Present_Internal.
428 (Analyze_If_Present_Internal): New procedure to analyze given
429 pragma kind.
430 (Analyze_Pragmas_If_Present): New procedure to analyze given
431 pragma kind associated with a declaration.
432 (Analyze_Pragma): Adapt support for Always_Terminates and
433 Exceptional_Cases. Add support for Side_Effects. Make sure to call
434 Analyze_If_Present to ensure pragma Side_Effects is analyzed prior
435 to analyzing pragmas Global and Depends. Use explain codes for the
436 errors.
437 * sem_prag.ads (Analyze_Pragmas_If_Present): Add new procedure.
438 * sem_util.adb (Is_Function_With_Side_Effects): New query function
439 to determine if a function is a function with side-effects.
440 * sem_util.ads (Is_Function_With_Side_Effects): Same.
441 * snames.ads-tmpl: Declare new names for pragma and aspect.
442 * doc/gnat_rm/implementation_defined_aspects.rst: Document new aspect.
443 * doc/gnat_rm/implementation_defined_pragmas.rst: Document new pragma.
444 * gnat_rm.texi: Regenerate.
445
4462023-10-19 Sheri Bernstein <bernstein@adacore.com>
447
448 * libgnat/s-imagef.adb (Set_Image_Fixed): Refactor loop.
449
4502023-10-19 Sheri Bernstein <bernstein@adacore.com>
451
452 * libgnat/s-imguti.adb (Set_Decimal_Digits): Add pragma to exempt
453 Unassigned_OUT_Parameters.
454 (Set_Floating_Invalid_Value): Likewise
455
4562023-10-19 Patrick Bernardi <bernardi@adacore.com>
457
458 * bindusg.adb (Display): Make it clear -Q adds to the number of
459 secondary stacks generated by the binder.
460 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
461 Document the -Q gnatbind switch and fix references to old
462 runtimes.
463 * gnat-style.texi: Regenerate.
464 * gnat_rm.texi: Regenerate.
465 * gnat_ugn.texi: Regenerate.
466
4672023-10-19 Ronan Desplanques <desplanques@adacore.com>
468
469 * sem_ch3.adb (Constrain_Array): Replace manual list length
470 computation by call to List_Length.
471
4722023-10-19 Piotr Trojanek <trojanek@adacore.com>
473
474 * exp_aggr.adb (Expand_Container_Aggregate): Simplify with "No".
475
69e3072c
GA
4762023-10-10 Eric Botcazou <ebotcazou@adacore.com>
477
478 * gcc-interface/decl.cc (inline_status_for_subprog): Minor tweak.
479 (gnat_to_gnu_field): Try harder to get a packable form of the type
480 for a bitfield.
481
4822023-10-10 Ronan Desplanques <desplanques@adacore.com>
483
484 * libgnat/a-direct.adb (Start_Search_Internal): Tweak subprogram
485 body.
486
4872023-10-10 Eric Botcazou <ebotcazou@adacore.com>
488
489 * sem_util.ads (Set_Scope_Is_Transient): Delete.
490 * sem_util.adb (Set_Scope_Is_Transient): Likewise.
491 * exp_ch7.adb (Create_Transient_Scope): Set Is_Transient directly.
492
4932023-10-10 Eric Botcazou <ebotcazou@adacore.com>
494
495 * exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): Return true
496 if the aggregate is a dependent expression of a conditional
497 expression being returned from a build-in-place function.
498
4992023-10-10 Eric Botcazou <ebotcazou@adacore.com>
500
501 PR ada/111434
502 * sem_ch10.adb (Replace): New procedure to replace an entity with
503 another on the homonym chain.
504 (Install_Limited_With_Clause): Rename Non_Lim_View to Typ for the
505 sake of consistency. Call Replace to do the replacements and split
506 the code into the regular and the special cases. Add debuggging
507 output controlled by -gnatdi.
508 (Install_With_Clause): Print the Parent_With and Implicit_With flags
509 in the debugging output controlled by -gnatdi.
510 (Remove_Limited_With_Unit.Restore_Chain_For_Shadow (Shadow)): Rewrite
511 using a direct replacement of E4 by E2. Call Replace to do the
512 replacements. Add debuggging output controlled by -gnatdi.
513
5142023-10-10 Ronan Desplanques <desplanques@adacore.com>
515
516 * libgnat/a-direct.adb: Fix filesystem entry filtering.
517
5182023-10-10 Ronan Desplanques <desplanques@adacore.com>
519
520 * atree.ads, nlists.ads, types.ads: Remove references to extended
521 nodes. Fix typo.
522 * sinfo.ads: Likewise and fix position of
523 Comes_From_Check_Or_Contract description.
524
5252023-10-10 Javier Miranda <miranda@adacore.com>
526
527 * sem_attr.adb (Analyze_Attribute): Protect the frontend against
528 replacing 'Size by its static value if 'Size is not known at
529 compile time and we are processing pragmas Compile_Time_Warning or
530 Compile_Time_Errors.
531
96557ee6
GA
5322023-10-03 David Malcolm <dmalcolm@redhat.com>
533
534 * gcc-interface/misc.cc: Use text_info ctor.
535
41d1c9a9
GA
5362023-10-02 David Malcolm <dmalcolm@redhat.com>
537
538 * gcc-interface/misc.cc (gnat_post_options): Update for renaming
539 of diagnostic_context's show_caret to m_source_printing.enabled.
540
0d9b4e86
GA
5412023-09-26 Eric Botcazou <ebotcazou@adacore.com>
542
543 * exp_ch7.adb (Build_Finalizer.Process_Declarations): Remove call
544 to Is_Simple_Protected_Type as redundant.
545 (Build_Finalizer.Process_Object_Declaration): Do not retrieve the
546 corresponding record type for simple protected objects. Make the
547 flow of control more explicit in their specific processing.
548 * exp_util.adb (Requires_Cleanup_Actions): Return false for simple
549 protected objects present in library-level package bodies for the
550 sake of consistency with Build_Finalizer and remove call to
551 Is_Simple_Protected_Type as redundant.
552
5532023-09-26 Eric Botcazou <ebotcazou@adacore.com>
554
555 PR ada/110488
556 * sem_ch3.adb (Analyze_Object_Declaration): Do not build a default
557 subtype for a deferred constant in the definite case too.
558
5592023-09-26 Marc Poulhiès <poulhies@adacore.com>
560
561 * exp_ch7.adb (Contains_Subprogram): Recursively search for subp
562 in loop's statements.
563 (Unnest_Loop)<Fixup_Inner_Scopes>: New.
564 (Unnest_Loop): Rename local variable for more clarity.
565 * exp_unst.ads: Refresh comment.
566
5672023-09-26 Javier Miranda <miranda@adacore.com>
568
569 * exp_ch6.adb (Expand_Call_Helper): When computing the
570 accessibility level of an actual parameter based on the
571 expresssion of a constant declaration, add missing support for
572 deferred constants
573
5742023-09-26 Eric Botcazou <ebotcazou@adacore.com>
575
576 * einfo.ads (Status_Flag_Or_Transient_Decl): Remove ??? comment.
577 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Extend the
578 handling of finalizable return objects to the non-BIP case.
579 * exp_ch7.adb (Build_Finalizer.Process_Declarations): Adjust the
580 comment accordingly.
581 * exp_util.adb (Requires_Cleanup_Actions): Likewise.
582
5832023-09-26 Daniel King <dmking@adacore.com>
584
585 * raise-gcc.c (get_ip_from_context): Adapt for CHERI purecap
586 (get_call_site_action_for): Adapt for CHERI purecap
587
5882023-09-26 Daniel King <dmking@adacore.com>
589
590 * libgnat/a-tags.adb (To_Tag): Use System.Storage_Elements for
591 integer to address conversion.
592 * libgnat/s-putima.adb (Put_Image_Pointer): Likewise.
593
5942023-09-26 Daniel King <dmking@adacore.com>
595
596 * libgnat/s-stratt__cheri.adb: New file
597
5982023-09-26 Daniel King <dmking@adacore.com>
599
600 * libgnat/i-cheri.ads (Capability_Bound_Error)
601 (Capability_Permission_Error, Capability_Sealed_Error)
602 (Capability_Tag_Error): New, define CHERI exception types.
603
6042023-09-26 Ronan Desplanques <desplanques@adacore.com>
605
606 * exp_prag.adb: Make minor corrections in comments.
607 * rtsfind.ads: Remove unused element from RTU_Id definition.
608
6092023-09-26 Derek Schacht <schacht@adacore.com>
610
611 * doc/gnat_ugn/gnat_and_program_execution.rst: Add more details on
612 using Generic Elementary Functions with dimensional analysis.
613 * gnat_ugn.texi: Regenerate.
614
6152023-09-26 Yannick Moy <moy@adacore.com>
616
617 * exp_ch5.adb (Expand_N_Case_Statement): Reference both sections
618 of the Ada RM that deal with case statements and case expressions
619 to justify the insertion of a runtime check.
620
590a8bec
GA
6212023-09-19 Richard Wai <richard@annexi-strayline.com>
622
623 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Expanded comments
624 explaining why TSS Finalize_Address is not generated for
625 concurrent class-wide types.
626 * exp_ch7.adb (Make_Finalize_Address_Stmts): Handle cases where the
627 underlying non-constrained parent type is a concurrent type, and
628 adjust the designated type to be the corresponding record’s
629 class-wide type.
630
6312023-09-19 Richard Wai <richard@annexi-strayline.com>
632
633 * sem_ch3.adb (Build_Derived_Record_Type): Treat presence of
634 keyword "synchronized" the same as "limited" when determining if a
635 private extension is limited.
636
6372023-09-19 Marc Poulhiès <poulhies@adacore.com>
638
639 * gcc-interface/utils.cc (max_value): New.
640 * gcc-interface/gigi.h (max_value): New.
641 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Subtype>:
642 When computing gnu_min/gnu_max, try to use max_value if there is
643 an initial expression.
644
6452023-09-19 Javier Miranda <miranda@adacore.com>
646
647 * contracts.adb
648 (Has_Public_Visibility_Of_Subprogram): Add missing support for
649 child subprograms.
650
37bbfd1c
GA
6512023-09-15 Eric Botcazou <ebotcazou@adacore.com>
652
653 * gcc-interface/utils.cc (finish_record_type): Round the size in
654 the padding case as well.
655
6562023-09-15 Piotr Trojanek <trojanek@adacore.com>
657
658 * exp_aggr.adb (Build_Array_Aggr_Code): Don't build aggregate code
659 for null array aggregates.
660 * sem_aggr.adb (Resolve_Array_Aggregate): Don't examine formatting
661 of a null array aggregate.
662
6632023-09-15 Eric Botcazou <ebotcazou@adacore.com>
664
665 * inline.adb (Expand_Inlined_Call): In the case of a function call
666 that returns an unconstrained type and initializes an object, set
667 the No_Initialization flag on the new declaration of the object.
668
6692023-09-15 Patrick Bernardi <bernardi@adacore.com>
670
671 * exp_ch6.adb (Expand_N_Subprogram_Body): Do not perform
672 local-exception-to- goto optimization on barrier functions.
673 * exp_ch9.adb (Expand_Entry_Barrier): Simplify the if statement
674 around the simple barrier optimization and remove an old, no
675 longer relevant comment.
676
6772023-09-15 Patrick Bernardi <bernardi@adacore.com>
678
679 * bindgen.adb (Gen_Adainit): Generate restrictions when standard
680 library is suppressed.
681 (Gen_Output_File_Ada): Ditto.
682 (Gen_Restrictions): Ditto.
683
6842023-09-15 Eric Botcazou <ebotcazou@adacore.com>
685
686 * exp_util.adb (Component_May_Be_Bit_Aligned): Do not return false
687 for a small component of a record type with a variant part.
688
6892023-09-15 Eric Botcazou <ebotcazou@adacore.com>
690
691 * exp_aggr.adb (Convert_To_Assignments): In the case of a
692 component association, call Is_Container_Aggregate on the parent's
693 parent.
694 (Expand_Array_Aggregate): Likewise.
695
6962023-09-15 Kévin Le Gouguec <legouguec@adacore.com>
697
698 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Remove
699 extended discussion regarding mold run-time dependencies;
700 packaging changes in GNAT Pro have made them obsolete.
701
7022023-09-15 Eric Botcazou <ebotcazou@adacore.com>
703
704 * sem_res.adb (Resolve_Call): When the target is an entity, do not
705 freeze it if the current scope is the inner wrapper function built
706 for an expression function with a Post or Refined_Post aspect.
707
7082023-09-15 Bob Duff <duff@adacore.com>
709 Ronan Desplanques <desplanques@adacore.com>
710
711 * atree.adb (Node_Kind_Table): Specify parameter explicitly in
712 GNAT.Table instantiations. Use fully qualified references instead
713 of relying on use clauses.
714 (Get_Field_Value): Remove special case for F_Scope_Depth_Value.
715 That is, enable the Field_Present check in that case.
716 (It was already enabled for all other fields.) Violations of this
717 check were already fixed.
718 (Print_Node_Statistics): Sort the output in decreasing order of
719 frequencies.
720 (Print_Field_Statistics): Likewise (sort).
721 * accessibility.adb (Accessibility_Level): Pass Allow_Alt_Model in
722 recursive calls. Apparently, an oversight.
723 (Innermost_Master_Scope_Depth): Need to special-case the 'Old
724 attribute and allocators.
725 * einfo-utils.ads (Scope_Depth): Use Scope_Kind_Id to get
726 predicate checks.
727 (Scope_Depth_Set): Likewise.
728 (Scope_Depth_Default_0): Likewise.
729 * einfo-utils.adb: As for spec.
730 * frontend.adb (Frontend): Remove unnecessary "return;".
731 * gen_il-types.ads (Scope_Kind): New union type.
732 * gen_il-gen-gen_entities.adb (Scope_Kind): New union type.
733 * sem.ads: Move "with Einfo.Entities;" from body to spec.
734 (Scope_Stack_Entry): Declare Entity to be of Scope_Kind_Id to get
735 predicate checks. We had previously been putting non-scopes on the
736 scope stack; this prevents such anomalies.
737 * sem.adb: Move "with Einfo.Entities;" from body to spec.
738 * sem_ch8.ads: Move "with Einfo.Entities;" from body to spec. Add
739 "with Types;".
740 (Push_Scope): Use Scope_Kind_Id to get predicate checks.
741 * sem_ch8.adb: Move "with Einfo.Entities;" from body to spec. Add
742 "with Types;".
743 (Push_Scope): Use Scope_Kind_Id to get predicate checks.
744 (Pop_Scope): Use Scope_Kind_Id on popped entity to get predicate
745 checks. This prevents anomalies where a scope pushed onto the
746 stack is later mutated to a nonscope before being popped.
747 * sem_util.ads (Find_Enclosing_Scope): Add postcondition to ensure
748 that the enclosing scope of a node N is not the same node N.
749 Clearly, N does not enclose itself.
750 * sem_util.adb (Find_Enclosing_Scope): There were several bugs
751 where Find_Enclosing_Scope(N) = N. For example, if N is an entity,
752 then we would typically go up to its declaration, and then back
753 down to the Defining_Entity of the declaration, which is N itself.
754 There were other cases where Find_Enclosing_Scope of an entity
755 disagreed with Scope. Clearly, Find_Enclosing_Scope and Scope
756 should agree (when both are defined). Such bugs caused latent bugs
757 in accessibility.adb related to 'Old, and fixing bugs here caused
758 such bugs to be revealed. These are fixed by calling Scope when N
759 is an entity.
760
7612023-09-15 Javier Miranda <miranda@adacore.com>
762
763 * accessibility.ads (Needs_Result_Accessibility_Extra_Formal):
764 Removed.
765 * accessibility.adb (Needs_Result_Accessibility_Level_Param):
766 Removed.
767 (Needs_Result_Accessibility_Extra_Formal): Removed.
768 (Needs_Result_Accessibility_Level): Revert previous patch.
769 * sem_ch6.adb (Parent_Subprogram): Handle function overriding an
770 enumeration literal.
771 (Create_Extra_Formals): Ensure that the parent subprogram has all
772 its extra formals.
773
05cb8730
GA
7742023-09-14 Yannick Moy <moy@adacore.com>
775
776 * exp_util.adb (Is_Statically_Disabled): New function to detect a
777 "statically disabled condition which evaluates to a given value",
778 as described in SPARK UG 7.3.2.
779 (Kill_Dead_Code): Call the new function Is_Statically_Disabled for
780 conditions of if statements.
781 * exp_util.ads (Is_Statically_Disabled): New function spec.
782
7832023-09-14 Javier Miranda <miranda@adacore.com>
784
785 * exp_util.adb (Process_Record_Component): Adjust assertion on the
786 availablity of the invariant procedure; required because the
787 invariant procedure is built by the expander, and hence it is not
788 available compiling generic units or when the sources have errors,
789 since expansion is then disabled.
790
7912023-09-14 Javier Miranda <miranda@adacore.com>
792
793 * sem_util.adb (Large_Max_Size_Mutable): Protect access to
794 attribute Is_Array_Type.
795
7962023-09-14 Javier Miranda <miranda@adacore.com>
797
798 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Protect
799 access to Entity attribute and add missing code to check function
800 selector in a prefix form call.
801
8022023-09-14 Eric Botcazou <ebotcazou@adacore.com>
803
804 * exp_ch6.adb (Expand_Ctrl_Function_Call): Also do nothing for the
805 expression of a delta aggregate.
806
8072023-09-14 Eric Botcazou <ebotcazou@adacore.com>
808
809 * exp_util.adb (Initialized_By_Aliased_BIP_Func_Call): Make the name
810 matching more robust.
811
8122023-09-14 Javier Miranda <miranda@adacore.com>
813
814 * sem_ch6.adb (Parent_Subprogram): Complete assertion.
815
d820cd78
GA
8162023-09-05 Eric Botcazou <ebotcazou@adacore.com>
817
818 * gcc-interface/trans.cc (gnat_to_gnu): Really test Storage_Pool on
819 the simple return statement.
820
8212023-09-05 Tom Tromey <tromey@adacore.com>
822
823 * gcc-interface/decl.cc (gnat_to_gnu_entity): Set bit-packed for
824 constrained and unconstrained array types.
825 * gcc-interface/misc.cc (gnat_get_array_descr_info): Examine
826 BIT_PACKED_ARRAY_TYPE_P.
827
8282023-09-05 Piotr Trojanek <trojanek@adacore.com>
829
830 * sem_type.adb (Interface_Present_In_Ancestor): Remove guard against no
831 list of interfaces; fix style in comments (trailing dots).
832
8332023-09-05 Piotr Trojanek <trojanek@adacore.com>
834
835 * sem_type.adb (Iface_Present_In_Ancestor): Only look at the list of
836 interfaces for types that allow it. The guard is a high-level equivalent
837 of the entity kinds listed in the preconditon of the Interfaces query.
838
8392023-09-05 Piotr Trojanek <trojanek@adacore.com>
840
841 * sem_type.adb (Iface_Present_In_Ancestor): Remove guard for empty list
842 of interfaces; the following loop will work just fine without it.
843
8442023-09-05 Eric Botcazou <ebotcazou@adacore.com>
845
846 * exp_ch9.adb (Build_Protected_Entry): Move the At_End procedure
847 from the entry body to the inner block statement.
848
8492023-09-05 Bob Duff <duff@adacore.com>
850
851 * sem_ch4.adb (Find_Component_In_Instance): Check that
852 Declaration_Node (Par) is not Empty, as it is for itypes.
853
8542023-09-05 Ronan Desplanques <desplanques@adacore.com>
855
856 * sem_ch7.adb (Analyze_Package_Declaration): Restrict calls to
857 `Sem_Warn.Check_References` and adjust comment accordingly.
858
8592023-09-05 Eric Botcazou <ebotcazou@adacore.com>
860
861 * freeze.adb (Freeze_Enumeration_Type): Give an error on a type with
862 both representation clause and too large size.
863
8642023-09-05 Liaiss Merzougue <merzougue@adacore.com>
865
866 * libgnat/s-imguti.adb: Remove comment.
867
8682023-09-05 Javier Miranda <miranda@adacore.com>
869
870 * accessibility.ads (Needs_Result_Accessibility_Extra_Formal): New
871 subprogram.
872 * accessibility.adb (Needs_Result_Accessibility_Level_Param): New
873 subprogram.
874 (Needs_Result_Accessibility_Extra_Formal): New subprogram,
875 temporarily keep the previous behavior of the frontend.
876 * sem_ch6.adb (Create_Extra_Formals): Replace occurrences of
877 function Needs_Result_Accessibility_Level_Param by calls to
878 function Needs_Result_Accessibility_Extra_Formal.
879 (Extra_Formals_OK): Ditto.
880
8812023-09-05 Alexandre Oliva <oliva@adacore.com>
882
883 * libgnat/system-vxworks-ppc-rtp-smp.ads: Add -msmp to
884 Linker_Options pragma.
885
8862023-09-05 Javier Miranda <miranda@adacore.com>
887
888 * exp_aggr.adb (Expand_Container_Aggregate): Report warning on
889 infinite recursion if an empty container aggregate appears in the
890 return statement of its Empty function. Fix typo in comment.
891 * sem_aggr.adb (Resolve_Aggregate): Resolve Ada 2022 empty
892 aggregate that initializes a record type that has defined its
893 container aggregate aspects.
894 (Resolve_Iterated_Association): Protect access to attribute Etype.
895 * sem_ch13.adb (Resolve_Aspect_Aggregate): Fix typo in comment.
896
8972023-09-05 Steve Baird <baird@adacore.com>
898
899 * sem_attr.adb (Denote_Same_Function): Handle the case where
900 Has_Homonym (Pref_Id) returns True but Homonym (Pref_Id) returns
901 an empty result.
902
9032023-09-05 Steve Baird <baird@adacore.com>
904
905 * sem_res.adb (Resolve_Unary_Op): In deciding whether to emit a
906 warning about a modular type's unary minus operator being applied
907 to an integer literal, ignore integer literals for which
908 Comes_From_Source is False.
909
9102023-09-05 Johannes Kliemann <kliemann@adacore.com>
911
912 * libgnarl/s-taprop__qnx.adb: Implement Set_Task_Affinity.
913
9142023-09-05 Ghjuvan Lacambre <lacambre@adacore.com>
915
916 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
917 index.
918 * gnat_ugn.texi: Regenerate.
919
9202023-09-05 Daniel King <dmking@adacore.com>
921
922 * libgnat/s-carsi8.adb: Use operations from
923 System.Storage_Elements for address arithmetic.
924 * libgnat/s-carun8.adb: Likewise
925 * libgnat/s-casi128.adb: Likewise
926 * libgnat/s-casi16.adb: Likewise
927 * libgnat/s-casi32.adb: Likewise
928 * libgnat/s-casi64.adb: Likewise
929 * libgnat/s-caun128.adb: Likewise
930 * libgnat/s-caun16.adb: Likewise
931 * libgnat/s-caun32.adb: Likewise
932 * libgnat/s-caun64.adb: Likewise
933 * libgnat/s-geveop.adb: Likewise
934
9352023-09-05 Eric Botcazou <ebotcazou@adacore.com>
936
937 * sem_ch12.adb (Component_Type_For_Private_View): New function.
938 (Check_Generic_Actuals): For an actual type parameter, also check
939 its component type if it is an array type.
940 (Check_Private_View): Use Component_Type_For_Private_View in the
941 case of an array type.
942 (Instantiate_Type): Likewise.
943 (Save_Global_References.Set_Global_Type): Likewise.
944
9452023-09-05 Sheri Bernstein <bernstein@adacore.com>
946
947 * libgnat/s-aridou.adb: Add pragma to exempt Metrics_LSLOC.
948 (Double_Divide): Add pragma to exempt
949 Metrics_Cyclomatic_Complexity.
950 (Scaled_Divide): Likewise.
951 * libgnat/s-vauspe.ads (Uns_Option): Add pragma to exempt
952 Discriminated_Records.
953
9542023-09-05 Ronan Desplanques <desplanques@adacore.com>
955
956 * Makefile.rtl: Add missing units.
957
9582023-09-05 Sheri Bernstein <bernstein@adacore.com>
959
960 * libgnarl/a-reatim.adb (Time_Of): Add pragma to exempt
961 Discriminated_Records.
962 * libgnat/s-imguti.adb (Round, Set_Decimal_Digits): Likewise.
963 * libgnat/s-multip.adb (Number_Of_CPUs): Likewise.
964 * libgnarl/s-tpopsp__posix-foreign.adb (Self): Refactor multiple
965 returns.
966
9672023-09-05 Javier Miranda <miranda@adacore.com>
968
969 * sem_ch3.adb (Add_Internal_Interface_Entities): Add missing
970 subtype-conformance check on primitives implementing interface
971 primitives.
972 (Error_Posted_In_Formals): New subprogram.
973
9742023-09-05 Ronan Desplanques <desplanques@adacore.com>
975
976 * libgnarl/s-tassta.adb: Tweak comment.
977
9782023-09-05 Yang Yujie <yangyujie@loongson.cn>
979
980 * Makefile.rtl: Add LoongArch support.
981 * libgnarl/s-linux__loongarch.ads: New file.
982 * libgnat/system-linux-loongarch.ads: New file.
983
4b92dba7
GA
9842023-08-07 Sheri Bernstein <bernstein@adacore.com>
985
986 * libgnat/s-parame__qnx.adb: Refactor multiple returns.
987
9882023-08-07 Piotr Trojanek <trojanek@adacore.com>
989
990 * libgnat/i-cstrin.ads (Value): Extend preconditions; adapt comment for
991 the package.
992
9932023-08-07 Yannick Moy <moy@adacore.com>
994
995 * sem_res.adb (Resolve_Call): Always call Cannot_Inline so that
996 subprogram called is marked as not always inlined.
997
9982023-08-07 Javier Miranda <miranda@adacore.com>
999
1000 * sem_res.adb (Resolve_Type_Conversion): Do not warn on conversion
1001 to class-wide type on internally build helpers of class-wide
1002 preconditions.
1003
86fa4433
GA
10042023-08-03 Sheri Bernstein <bernstein@adacore.com>
1005
1006 * libgnat/s-aridou.adb: Add pragma to exempt Improper_Returns.
1007 * libgnat/s-atopri.adb (Lock_Free_Try_Write): Likewise.
1008 * libgnat/s-bitops.adb (Bit_Eq): Likewise.
1009 * libgnat/s-carsi8.adb: Likewise.
1010 * libgnat/s-carun8.adb: Likewise.
1011 * libgnat/s-casi16.adb: Likewise.
1012 * libgnat/s-casi32.adb: Likewise.
1013 * libgnat/s-casi64.adb: Likewise.
1014 * libgnat/s-caun16.adb: Likewise.
1015 * libgnat/s-caun32.adb: Likewise.
1016 * libgnat/s-caun64.adb: Likewise.
1017 * libgnat/s-exponn.adb: Likewise.
1018 * libgnat/s-expont.adb: Likewise.
1019 * libgnat/s-valspe.adb: Likewise.
1020 * libgnat/s-vauspe.adb: Likewise.
1021
10222023-08-03 Vasiliy Fofanov <fofanov@adacore.com>
1023
1024 * libgnat/s-imageb.adb (Set_Image_Based_Unsigned): Rewritten.
1025 * libgnat/s-imagew.adb (Set_Image_Width_Unsigned): Likewise.
1026
10272023-08-03 Eric Botcazou <ebotcazou@adacore.com>
1028
1029 * exp_util.adb (Make_Invariant_Call): Convert the expression to
1030 the type of the formal parameter if need be.
1031
10322023-08-03 Eric Botcazou <ebotcazou@adacore.com>
1033
1034 * libgnat/s-dwalin.adb ("-"): New subtraction operator.
1035 (Enable_Cache): Use it to compute the offset.
1036 (Symbolic_Address): Likewise.
1037
cf58b896
GA
10382023-08-01 Yannick Moy <moy@adacore.com>
1039
1040 * repinfo.adb (Compute_Max_Length): Set parameter to print number
1041 in decimal notation.
1042 (List_Component_Layout): Same.
1043
10442023-08-01 Yannick Moy <moy@adacore.com>
1045
1046 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Check for
1047 Skip_Proof and Skip_Flow_And_Proof annotations for deciding
1048 whether a subprogram can be inlined.
1049
10502023-08-01 Steve Baird <baird@adacore.com>
1051
1052 * sem_ch3.adb (Constrain_Corresponding_Record): When copying
1053 information from the unconstrained record type to a newly
1054 constructed constrained record subtype, the
1055 Direct_Primitive_Operations attribute must be copied.
1056
10572023-08-01 Steve Baird <baird@adacore.com>
1058
1059 * sem_ch3.adb (Analyze_Component_Declaration): Remove
1060 Build_Default_Subtype_OK call and code that could only executed in
1061 the case where the removed call would have returned True. Other
1062 calls to Build_Default_Subtype_Ok are unaffected by this change.
1063
10642023-08-01 Pascal Obry <obry@adacore.com>
1065
1066 * aspects.ads (Find_Aspect): Add Boolean parameter Or_Rep_Item
1067 (defaulted to False).
1068 * aspects.adb (Find_Aspect): If new Boolean parameter Or_Rep_Item
1069 is True, then instead of returning an empty result if no
1070 appropriate N_Aspect_Specification node is found, return an
1071 appropriate N_Attribute_Definition_Clause if one is found.
1072 * exp_put_image.ads: Change name of Enable_Put_Image function to
1073 Put_Image_Enabled.
1074 * exp_put_image.adb (Build_Record_Put_Image_Procedure): Detect the
1075 case where a call to the Put_Image procedure of a derived type can
1076 be transformed into a call to the parent type's Put_Image
1077 procedure (with a type conversion to the parent type as the actual
1078 parameter).
1079 (Put_Image_Enabled): Change name of function (previously
1080 Enable_Put_Image). Return True in more cases. In particular,
1081 return True for a type with an explicitly specified Put_Image
1082 aspect even if the type is declared in a predefined unit (or in an
1083 instance of a predefined generic unit).
1084 * exp_attr.adb: Changes due to Put_Image_Enabled function name
1085 change.
1086
10872023-08-01 Yannick Moy <moy@adacore.com>
1088
1089 * repinfo.adb (List_Common_Type_Info): Fix output when alignment
1090 is not statically known, and fix assertion when expansion is not
1091 enabled.
1092
10932023-08-01 Bob Duff <duff@adacore.com>
1094
1095 * atree.adb (Field_Present): New function to detect whether or not
1096 a given field is present in a given node, based on either the node
1097 kind or the entity kind as appropriate.
1098 (Get_Field_Value): Check that the field begin fetched exists.
1099 However, disable the check in the case of Scope_Depth_Value,
1100 because we have failures in that case. Those failures need to be
1101 fixed, and then the check can be enabled for all fields.
1102 (Set_Field_Value): Check that the field begin set exists.
1103
11042023-08-01 Léo Creuse <creuse@adacore.com>
1105
1106 * par_sco.adb (Process_Decisions): Traverse all attributes of
1107 quantified expressions nodes.
1108
e0f91730
GA
11092023-07-28 Eric Botcazou <ebotcazou@adacore.com>
1110
1111 * gcc-interface/trans.cc (gnat_to_gnu): Restrict previous change to
1112 the case where the simple return statement has got no storage pool.
1113
11142023-07-28 Clément Chigot <chigot@adacore.com>
1115
1116 * libgnarl/s-inmaop__posix.adb: Add assert after sigwait in
1117 Interrupt_Wait
1118
11192023-07-28 Javier Miranda <miranda@adacore.com>
1120
1121 * einfo-utils.adb (Underlying_Type): Protect recursion call
1122 against non-available attribute Etype.
1123 * einfo.ads (Protected_Subprogram): Fix typo in documentation.
1124 * exp_ch3.adb (BIP_Function_Call_Id): New subprogram.
1125 (Expand_N_Object_Declaration): Improve code that evaluates if the
1126 object is initialized with a BIP function call.
1127 * exp_ch6.adb (Is_True_Build_In_Place_Function_Call): New
1128 subprogram.
1129 (Add_Task_Actuals_To_Build_In_Place_Call): Add dummy actuals if
1130 the function does not require the BIP task actuals but it is a
1131 dispatching operation that inherited them.
1132 (Build_In_Place_Formal): Improve code to avoid never-ending loop
1133 if the BIP formal is not found.
1134 (Add_Dummy_Build_In_Place_Actuals): New subprogram.
1135 (Expand_Call_Helper): Add calls to
1136 Add_Dummy_Build_In_Place_Actuals.
1137 (Expand_N_Extended_Return_Statement): Adjust assertion.
1138 (Expand_Simple_Function_Return): Adjust assertion.
1139 (Make_Build_In_Place_Call_In_Allocator): No action needed if the
1140 called function inherited the BIP extra formals but it is not a
1141 true BIP function.
1142 (Make_Build_In_Place_Call_In_Assignment): Ditto.
1143 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Remove code
1144 reporting unsupported case (since this patch adds support for it).
1145 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Adding assertion
1146 to ensure matching of BIP formals when setting the
1147 Protected_Formal field of a protected subprogram to reference the
1148 corresponding extra formal of the subprogram that implements it.
1149 (Might_Need_BIP_Task_Actuals): New subprogram.
1150 (Create_Extra_Formals): Improve code adding inherited extra
1151 formals.
1152
11532023-07-28 Pascal Obry <obry@adacore.com>
1154
1155 * s-oscons-tmplt.c: Add support for SO_BINDTODEVICE constant.
1156 * libgnat/g-socket.ads (Set_Socket_Option): Handle SO_BINDTODEVICE option.
1157 (Get_Socket_Option): Handle SO_BINDTODEVICE option.
1158 * libgnat/g-socket.adb: Likewise.
1159 (Get_Socket_Option): Handle the case where IF_NAMESIZE is not defined
1160 and so equal to -1.
1161
11622023-07-28 Léo Creuse <creuse@adacore.com>
1163
1164 * par_sco.adb (Has_Decision): Consider that quantified expressions
1165 contain decisions.
1166
11672023-07-28 Ronan Desplanques <desplanques@adacore.com>
1168
1169 * libgnarl/s-tposen.adb: Fix race condition. Add comment to justify
1170 the locking timing.
1171
11722023-07-28 Viljar Indus <indus@adacore.com>
1173
1174 * exp_util.adb (Find_Optional_Prim_Op): use "No" instead of "= Empty"
1175
11762023-07-28 Piotr Trojanek <trojanek@adacore.com>
1177
1178 * sem_res.adb (Resolve_Actuals): Add guard for the call to
1179 Class_Preconditions_Subprogram.
1180
11812023-07-28 Eric Botcazou <ebotcazou@adacore.com>
1182
1183 * exp_aggr.adb (Is_Two_Dim_Packed_Array): Return true only if the
1184 component type of the array is scalar.
1185
11862023-07-28 Piotr Trojanek <trojanek@adacore.com>
1187
1188 * sem_ch6.adb (Check_Statement_Sequence): Only warn about missing return
1189 statements and let GNATprove emit a check when needed.
1190
11912023-07-28 Tom Tromey <tromey@adacore.com>
1192
1193 * fe.h (Convention): Now inline function.
1194 * gen_il-gen.adb (Put_C_Type_And_Subtypes.Put_Enum_Lit)
1195 (Put_C_Type_And_Subtypes.Put_Kind_Subtype, Put_C_Getter):
1196 Emit enum.
1197 * snames.h-tmpl (Name_Id, Name_, Attribute_Id, Attribute_)
1198 (Convention_Id, Convention_, Pragma_Id, Pragma_): Now enum.
1199 (Get_Attribute_Id, Get_Pragma_Id): Now inline functions.
1200 * types.h (Node_Kind, Entity_Kind, Convention_Id, Name_Id):
1201 Now enum.
1202 * xsnamest.adb (Output_Header_Line, Make_Value): Emit enum.
1203
12042023-07-28 Piotr Trojanek <trojanek@adacore.com>
1205
1206 * libgnat/a-except.ads (Save_Occurrence): Fix typo.
1207
12082023-07-28 Piotr Trojanek <trojanek@adacore.com>
1209
1210 * einfo-utils.adb (Number_Formals): Change types in body.
1211 * einfo-utils.ads (Number_Formals): Change type in spec.
1212 * einfo.ads (Number_Formals): Change type in comment.
1213 * sem_ch13.adb (Is_Property_Function): Fix style in a caller of
1214 Number_Formals that was likely to crash because of missing guards.
1215
12162023-07-28 Piotr Trojanek <trojanek@adacore.com>
1217
1218 * sem_warn.adb (Check_Infinite_Loop_Warning): Don't look at the type of
1219 actual parameter when it has no type at all, e.g. because the entire
1220 subprogram call is illegal.
1221
ec842611
GA
12222023-07-18 Tom Tromey <tromey@adacore.com>
1223
1224 * gcc-interface/decl.cc (check_ok_for_atomic_type): Use Pragma_Id.
1225 * gcc-interface/trans.cc (lvalue_required_p, Pragma_to_gnu): Use
1226 Pragma_Id.
1227 (get_type_length, Attribute_to_gnu, get_atomic_access): Use
1228 Attribute_Id.
1229
12302023-07-18 Javier Miranda <miranda@adacore.com>
1231
1232 * exp_imgv.adb (Rewrite_Object_Image): fix type of formal. Found
1233 reading sources.
1234 (Expand_Wide_Image_Attribute): ditto.
1235 (Expand_Wide_Wide_Image_Attribute): ditto.
1236 (Rewrite_Object_Image): ditto.
1237 * exp_put_image.adb (Build_Image_Call): For class-wide interface
1238 type prefix generate code to displace the pointer to the object to
1239 reference the base of the underlying object.
1240
12412023-07-18 Viljar Indus <indus@adacore.com>
1242
1243 * sem_aggr.adb (Resolve_Iterated_Association): Add temporary scope
1244 when analyzing the Iterator Specification. Use preanalysis instead
1245 of Analysis to avoid polluting the tree.
1246
12472023-07-18 Viljar Indus <indus@adacore.com>
1248
1249 * sem_aggr.adb (Resolve_Iterated_Association): Use the element
1250 type for the iterator in a container aggregate with an iterator
1251 specification.
1252
12532023-07-18 Viljar Indus <indus@adacore.com>
1254
1255 * exp_aggr.adb (Expand_Container_Aggregate): Use the positional
1256 addition method only when dealing with a container aggregate
1257 without an Iterator Specification e.g. with a loop parameter
1258 specification
1259
12602023-07-18 Eric Botcazou <ebotcazou@adacore.com>
1261
1262 * sem_util.ads (Wrong_Type): Add Multiple parameter defaulting to
1263 False and document it.
1264 * sem_util.adb (Wrong_Type): Do not return early if an error has
1265 already been posted on Expr and Multiple is True.
1266 * sem_ch4.adb (Analyze_One_Call): Pass All_Errors_Mode as the
1267 actual parameter for Multiple to Wrong_Type.
1268
12692023-07-18 Javier Miranda <miranda@adacore.com>
1270
1271 * exp_disp.adb (Has_Dispatching_Constructor_Call): Removed.
1272 (Expand_Interface_Conversion): Reverse patch.
1273
12742023-07-18 Ronan Desplanques <desplanques@adacore.com>
1275
1276 * libgnarl/s-taprop__linux.adb (Set_Task_Affinity, Create_Task): Tweak
1277 handling of CPU affinities.
1278
12792023-07-18 Eric Botcazou <ebotcazou@adacore.com>
1280
1281 * sem_type.ads (Is_Ancestor): Remove mention of tagged type.
1282 * exp_aggr.adb: Add with and use clauses for Sem_Type.
1283 (Build_Record_Aggr_Code.Replace_Type): Call Is_Ancestor to spot
1284 self-references to the type of the aggregate.
1285 * sem_aggr.adb (Resolve_Record_Aggregate.Add_Discriminant_Values):
1286 Likewise.
1287
12882023-07-18 Eric Botcazou <ebotcazou@adacore.com>
1289
1290 * sem_ch13.adb (Replace_Type_References_Generic.Visible_Component):
1291 In the case of private discriminated types, explicitly check that we
1292 have a private declaration before examining its discriminant part.
1293
12942023-07-18 Alexandre Oliva <oliva@adacore.com>
1295
1296 * libgnat/a-except.ads (Raise_Exception): Mark expected_throw.
1297 (Reraise_Occurrence): Likewise.
1298 (Raise_Exception_Always): Likewise.
1299 (Raise_From_Controlled_Operation): Likewise.
1300 (Reraise_Occurrence_Always): Likewise.
1301 (Reraise_Occurrence_No_Defer): Likewise.
1302 * libgnat/a-except.adb
1303 (Exception_Propagation.Propagate_Exception): Likewise.
1304 (Complete_And_Propagate_Occurrence): Likewise.
1305 (Raise_Exception_No_Defer): Likewise.
1306 (Raise_From_Signal_Handler): Likewise.
1307 (Raise_With_Msg): Likewise.
1308 (Raise_With_Location_And_Msg): Likewise.
1309 (Raise_Constraint_Error): Likewise.
1310 (Raise_Constraint_Error_Msg): Likewise.
1311 (Raise_Program_Error): Likewise.
1312 (Raise_Program_Error_Msg): Likewise.
1313 (Raise_Storage_Error): Likewise.
1314 (Raise_Storage_Error_Msg): Likewise.
1315 (Reraise, Rcheck_*): Likewise.
1316 * doc/gnat_rm/security_hardening_features.rst (Control Flow
1317 Hardening): Note the influence of expected_throw.
1318 * gnat_rm.texi: Regenerate.
1319 * gnat_ugn.texi: Regenerate.
1320 * gcc-interface/utils.cc (handle_expected_throw_attribute): New.
1321 (gnat_internal_attribute_table): Add expected_throw.
1322
13232023-07-18 Vasiliy Fofanov <fofanov@adacore.com>
1324
1325 * libgnat/s-pack03.adb: Update copyright year; refactor return statements.
1326 * libgnat/s-pack05.adb: Likewise.
1327 * libgnat/s-pack06.adb: Likewise.
1328 * libgnat/s-pack07.adb: Likewise.
1329 * libgnat/s-pack09.adb: Likewise.
1330 * libgnat/s-pack10.adb: Likewise.
1331 * libgnat/s-pack100.adb: Likewise.
1332 * libgnat/s-pack101.adb: Likewise.
1333 * libgnat/s-pack102.adb: Likewise.
1334 * libgnat/s-pack103.adb: Likewise.
1335 * libgnat/s-pack104.adb: Likewise.
1336 * libgnat/s-pack105.adb: Likewise.
1337 * libgnat/s-pack106.adb: Likewise.
1338 * libgnat/s-pack107.adb: Likewise.
1339 * libgnat/s-pack108.adb: Likewise.
1340 * libgnat/s-pack109.adb: Likewise.
1341 * libgnat/s-pack11.adb: Likewise.
1342 * libgnat/s-pack110.adb: Likewise.
1343 * libgnat/s-pack111.adb: Likewise.
1344 * libgnat/s-pack112.adb: Likewise.
1345 * libgnat/s-pack113.adb: Likewise.
1346 * libgnat/s-pack114.adb: Likewise.
1347 * libgnat/s-pack115.adb: Likewise.
1348 * libgnat/s-pack116.adb: Likewise.
1349 * libgnat/s-pack117.adb: Likewise.
1350 * libgnat/s-pack118.adb: Likewise.
1351 * libgnat/s-pack119.adb: Likewise.
1352 * libgnat/s-pack12.adb: Likewise.
1353 * libgnat/s-pack120.adb: Likewise.
1354 * libgnat/s-pack121.adb: Likewise.
1355 * libgnat/s-pack122.adb: Likewise.
1356 * libgnat/s-pack123.adb: Likewise.
1357 * libgnat/s-pack124.adb: Likewise.
1358 * libgnat/s-pack125.adb: Likewise.
1359 * libgnat/s-pack126.adb: Likewise.
1360 * libgnat/s-pack127.adb: Likewise.
1361 * libgnat/s-pack13.adb: Likewise.
1362 * libgnat/s-pack14.adb: Likewise.
1363 * libgnat/s-pack15.adb: Likewise.
1364 * libgnat/s-pack17.adb: Likewise.
1365 * libgnat/s-pack18.adb: Likewise.
1366 * libgnat/s-pack19.adb: Likewise.
1367 * libgnat/s-pack20.adb: Likewise.
1368 * libgnat/s-pack21.adb: Likewise.
1369 * libgnat/s-pack22.adb: Likewise.
1370 * libgnat/s-pack23.adb: Likewise.
1371 * libgnat/s-pack24.adb: Likewise.
1372 * libgnat/s-pack25.adb: Likewise.
1373 * libgnat/s-pack26.adb: Likewise.
1374 * libgnat/s-pack27.adb: Likewise.
1375 * libgnat/s-pack28.adb: Likewise.
1376 * libgnat/s-pack29.adb: Likewise.
1377 * libgnat/s-pack30.adb: Likewise.
1378 * libgnat/s-pack31.adb: Likewise.
1379 * libgnat/s-pack33.adb: Likewise.
1380 * libgnat/s-pack34.adb: Likewise.
1381 * libgnat/s-pack35.adb: Likewise.
1382 * libgnat/s-pack36.adb: Likewise.
1383 * libgnat/s-pack37.adb: Likewise.
1384 * libgnat/s-pack38.adb: Likewise.
1385 * libgnat/s-pack39.adb: Likewise.
1386 * libgnat/s-pack40.adb: Likewise.
1387 * libgnat/s-pack41.adb: Likewise.
1388 * libgnat/s-pack42.adb: Likewise.
1389 * libgnat/s-pack43.adb: Likewise.
1390 * libgnat/s-pack44.adb: Likewise.
1391 * libgnat/s-pack45.adb: Likewise.
1392 * libgnat/s-pack46.adb: Likewise.
1393 * libgnat/s-pack47.adb: Likewise.
1394 * libgnat/s-pack48.adb: Likewise.
1395 * libgnat/s-pack49.adb: Likewise.
1396 * libgnat/s-pack50.adb: Likewise.
1397 * libgnat/s-pack51.adb: Likewise.
1398 * libgnat/s-pack52.adb: Likewise.
1399 * libgnat/s-pack53.adb: Likewise.
1400 * libgnat/s-pack54.adb: Likewise.
1401 * libgnat/s-pack55.adb: Likewise.
1402 * libgnat/s-pack56.adb: Likewise.
1403 * libgnat/s-pack57.adb: Likewise.
1404 * libgnat/s-pack58.adb: Likewise.
1405 * libgnat/s-pack59.adb: Likewise.
1406 * libgnat/s-pack60.adb: Likewise.
1407 * libgnat/s-pack61.adb: Likewise.
1408 * libgnat/s-pack62.adb: Likewise.
1409 * libgnat/s-pack63.adb: Likewise.
1410 * libgnat/s-pack65.adb: Likewise.
1411 * libgnat/s-pack66.adb: Likewise.
1412 * libgnat/s-pack67.adb: Likewise.
1413 * libgnat/s-pack68.adb: Likewise.
1414 * libgnat/s-pack69.adb: Likewise.
1415 * libgnat/s-pack70.adb: Likewise.
1416 * libgnat/s-pack71.adb: Likewise.
1417 * libgnat/s-pack72.adb: Likewise.
1418 * libgnat/s-pack73.adb: Likewise.
1419 * libgnat/s-pack74.adb: Likewise.
1420 * libgnat/s-pack75.adb: Likewise.
1421 * libgnat/s-pack76.adb: Likewise.
1422 * libgnat/s-pack77.adb: Likewise.
1423 * libgnat/s-pack78.adb: Likewise.
1424 * libgnat/s-pack79.adb: Likewise.
1425 * libgnat/s-pack80.adb: Likewise.
1426 * libgnat/s-pack81.adb: Likewise.
1427 * libgnat/s-pack82.adb: Likewise.
1428 * libgnat/s-pack83.adb: Likewise.
1429 * libgnat/s-pack84.adb: Likewise.
1430 * libgnat/s-pack85.adb: Likewise.
1431 * libgnat/s-pack86.adb: Likewise.
1432 * libgnat/s-pack87.adb: Likewise.
1433 * libgnat/s-pack88.adb: Likewise.
1434 * libgnat/s-pack89.adb: Likewise.
1435 * libgnat/s-pack90.adb: Likewise.
1436 * libgnat/s-pack91.adb: Likewise.
1437 * libgnat/s-pack92.adb: Likewise.
1438 * libgnat/s-pack93.adb: Likewise.
1439 * libgnat/s-pack94.adb: Likewise.
1440 * libgnat/s-pack95.adb: Likewise.
1441 * libgnat/s-pack96.adb: Likewise.
1442 * libgnat/s-pack97.adb: Likewise.
1443 * libgnat/s-pack98.adb: Likewise.
1444 * libgnat/s-pack99.adb: Likewise.
1445
14462023-07-18 Yannick Moy <moy@adacore.com>
1447
1448 * errout.adb (Error_Msg_Internal): Remove call to
1449 Prescan_Message on the special continuation for the explain code
1450 command, as this does not play well with the setting of global
1451 variables for the message (like its status as a warning or not).
1452 Instead, set directly the global variables regarding content of
1453 the message in terms of special characters.
1454
14552023-07-18 Eric Botcazou <ebotcazou@adacore.com>
1456
1457 * sem_util.ads (Validated_View): Document enhanced behavior.
1458 * sem_util.adb (Validated_View): Return the nonlimited view, if any,
1459 of types coming from a limited with.
1460
af3d3ce3
GA
14612023-07-11 Bob Duff <duff@adacore.com>
1462
1463 * exp_ch3.adb (Expand_N_Object_Declaration): Avoid transforming to
1464 a renaming in case of constrained array that comes from source.
1465
14662023-07-11 Eric Botcazou <ebotcazou@adacore.com>
1467
1468 * sem_ch13.adb (Replace_Type_References_Generic.Visible_Component):
1469 In the case of private discriminated types, return a discriminant
1470 only if it is listed in the discriminant part of the declaration.
1471
322d17ae
GA
14722023-07-10 Eric Botcazou <ebotcazou@adacore.com>
1473
1474 * adaint.c [_WIN32]: Undefine 'abort' macro.
1475
14762023-07-10 Tom Tromey <tromey@adacore.com>
1477
1478 * snames.h-tmpl (Name_Id, Attribute_Id, Convention_Id)
1479 (Pragma_Id): New typedefs.
1480 (Get_Attribute_Id, Get_Pragma_Id): Use typedef.
1481
14822023-07-10 Yannick Moy <moy@adacore.com>
1483
1484 * libgnat/s-aridou.adb (Lemma_Powers_Of_2_Commutation): Rewrite
1485 assertion.
1486
14872023-07-10 Bob Duff <duff@adacore.com>
1488
1489 * doc/gnat_rm/gnat_language_extensions.rst
1490 (Local Declarations Without Block): Document the feature very
1491 briefly, and refer the reader to the RFC for details and examples.
1492 * gnat_rm.texi: Regenerate.
1493 * gnat_ugn.texi: Regenerate.
1494
14952023-07-10 Alexandre Oliva <oliva@adacore.com>
1496
1497 * doc/gnat_rm/security_hardening_features.rst (Control Flow
1498 Hardening): Document -fhardcfr-skip-leaf.
1499 * gnat_rm.texi: Regenerate.
1500
15012023-07-10 Alexandre Oliva <oliva@adacore.com>
1502
1503 * doc/gnat_rm/security_hardening_features.rst (Control Flow
1504 Redundancy): Add -fhardcfr-check-noreturn-calls=no-xthrow.
1505 * gnat_rm.texi: Regenerate.
1506
15072023-07-10 Yannick Moy <moy@adacore.com>
1508
1509 * libgnat/s-aridou.adb (Lemma_Div_Mult): New simple lemma.
1510 (Lemma_Powers_Of_2_Commutation): State post in else branch.
1511 (Lemma_Div_Pow2): Introduce local lemma and use it.
1512 (Scaled_Divide): Use cut operations in assertions, lemmas, new
1513 assertions. Introduce local lemma and use it.
1514
15152023-07-10 Alexandre Oliva <oliva@adacore.com>
1516
1517 * doc/gnat_rm/security_hardening_features.rst (Register
1518 Scrubbing): Document leafy mode.
1519 * gnat_rm.texi: Regenerate.
1520
738808bd
GA
15212023-07-06 Claire Dross <dross@adacore.com>
1522
1523 * gcc-interface/Make-lang.in: Add object files of specification
1524 files.
1525
15262023-07-06 Claire Dross <dross@adacore.com>
1527
1528 * libgnat/s-vs_int.ads: Instance of Value_I_Spec for Integer.
1529 * libgnat/s-vs_lli.ads: Instance of Value_I_Spec for
1530 Long_Long_Integer.
1531 * libgnat/s-vsllli.ads: Instance of Value_I_Spec for
1532 Long_Long_Long_Integer.
1533 * libgnat/s-vs_uns.ads: Instance of Value_U_Spec for Unsigned.
1534 * libgnat/s-vs_llu.ads: Instance of Value_U_Spec for
1535 Long_Long_Unsigned.
1536 * libgnat/s-vslllu.ads: Instance of Value_U_Spec for
1537 Long_Long_Long_Unsigned.
1538 * libgnat/s-imagei.ads: Take instances of Value_*_Spec as
1539 parameters.
1540 * libgnat/s-imagei.adb: Idem.
1541 * libgnat/s-imageu.ads: Idem.
1542 * libgnat/s-imageu.adb: Idem.
1543 * libgnat/s-valuei.ads: Idem.
1544 * libgnat/s-valuei.adb: Idem.
1545 * libgnat/s-valueu.ads: Idem.
1546 * libgnat/s-valueu.adb: Idem.
1547 * libgnat/s-imgint.ads: Adapt instance to new ghost parameters.
1548 * libgnat/s-imglli.ads: Adapt instance to new ghost parameters.
1549 * libgnat/s-imgllli.ads: Adapt instance to new ghost parameters.
1550 * libgnat/s-imglllu.ads: Adapt instance to new ghost parameters.
1551 * libgnat/s-imgllu.ads: Adapt instance to new ghost parameters.
1552 * libgnat/s-imguns.ads: Adapt instance to new ghost parameters.
1553 * libgnat/s-valint.ads: Adapt instance to new ghost parameters.
1554 * libgnat/s-vallli.ads: Adapt instance to new ghost parameters.
1555 * libgnat/s-valllli.ads: Adapt instance to new ghost parameters.
1556 * libgnat/s-vallllu.ads: Adapt instance to new ghost parameters.
1557 * libgnat/s-valllu.ads: Adapt instance to new ghost parameters.
1558 * libgnat/s-valuns.ads: Adapt instance to new ghost parameters.
1559 * libgnat/s-vaispe.ads: Take instance of Value_U_Spec as parameter
1560 and remove unused declaration.
1561 * libgnat/s-vaispe.adb: Idem.
1562 * libgnat/s-vauspe.ads: Remove unused declaration.
1563 * libgnat/s-valspe.ads: Factor out the specification part of
1564 Val_Util.
1565 * libgnat/s-valspe.adb: Idem.
1566 * libgnat/s-valuti.ads: Move specification to Val_Spec.
1567 * libgnat/s-valuti.adb: Idem.
1568 * libgnat/s-valboo.ads: Use Val_Spec.
1569 * libgnat/s-valboo.adb: Idem.
1570 * libgnat/s-imgboo.adb: Idem.
1571 * libgnat/s-imagef.adb: Adapt instances to new ghost parameters.
1572 * Makefile.rtl: List new files.
1573
15742023-07-06 Viljar Indus <indus@adacore.com>
1575
1576 * sem_attr.adb (analyze_attribute.check_array_type): Replace valid
1577 indexes with their staticly evaluated values.
1578
15792023-07-06 Viljar Indus <indus@adacore.com>
1580
1581 * doc/gnat_ugn/the_gnat_compilation_model.rst: Reference "Binding
1582 with Non-Ada Main Programs" from "Creating a Stand-alone Library
1583 to be used in a non-Ada context".
1584 * gnat_ugn.texi: Regenerate.
1585
15862023-07-06 Viljar Indus <indus@adacore.com>
1587
1588 * sem_util.adb (Is_Fully_Initialized_Type): Avoid recalculating
1589 the underlying type twice.
1590
15912023-07-06 Viljar Indus <indus@adacore.com>
1592
1593 * exp_util.adb (Find_Optional_Prim_Op): Stop deriving primitive
1594 operation if there is no underlying type to derive it from.
1595
15962023-07-06 Yannick Moy <moy@adacore.com>
1597
1598 * errout.ads: Add explain code.
1599 * sem_prag.adb (Check_Library_Level_Entity): Refine error message
1600 and add explain code.
1601
16022023-07-06 Steve Baird <baird@adacore.com>
1603
1604 * exp_ch7.adb (Make_Final_Call): Add assertion that if no
1605 finalization call is generated, then the type of the object being
1606 finalized does not require finalization.
1607 * freeze.adb (Freeze_Entity): If freezing an already-frozen
1608 subtype, do not assume that nothing needs to be done. In the case
1609 of a frozen subtype of a non-frozen type or subtype (which is
1610 possible), freeze the non-frozen entity.
1611
6d966f9f
GA
16122023-07-04 Eric Botcazou <ebotcazou@adacore.com>
1613
1614 * exp_ch5.adb (Expand_Assign_Array): Adjust comment above the
1615 calls to Possible_Bit_Aligned_Component on the LHS and RHS. Do not
1616 call Is_Possibly_Unaligned_Slice in the slice case.
1617 * exp_util.ads (Component_May_Be_Bit_Aligned): Add For_Slice
1618 boolean parameter.
1619 (Possible_Bit_Aligned_Component): Likewise.
1620 * exp_util.adb (Component_May_Be_Bit_Aligned): Do not return False
1621 for the slice of a small record or bit-packed array component.
1622 (Possible_Bit_Aligned_Component): Pass For_Slice in recursive
1623 calls, except in the slice case where True is passed, as well as
1624 in call to Component_May_Be_Bit_Aligned.
1625
16262023-07-04 Eric Botcazou <ebotcazou@adacore.com>
1627
1628 * exp_ch4.ads (Expand_Unchecked_Union_Equality): Only take a
1629 single parameter.
1630 * exp_ch4.adb (Expand_Unchecked_Union_Equality): Add guard against
1631 repeated invocation on the same node.
1632 * exp_ch6.adb (Expand_Call): Only pass a single actual parameter
1633 in the call to Expand_Unchecked_Union_Equality.
1634
16352023-07-04 Viljar Indus <indus@adacore.com>
1636
1637 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
1638 add No_Use_Of_Attribute & No_Use_Of_Pragma restrictions.
1639 * gnat_rm.texi: Regenerate.
1640 * gnat_ugn.texi: Regenerate.
1641
16422023-07-04 Yannick Moy <moy@adacore.com>
1643
1644 * sem_disp.adb (Inherited_Subprograms): Add parameter to filter
1645 out results.
1646 * sem_disp.ads: Likewise.
1647
092f54cb
GA
16482023-07-03 Eric Botcazou <ebotcazou@adacore.com>
1649
1650 * exp_ch3.ads (Build_Variant_Record_Equality): Add Spec_Id as second
1651 parameter.
1652 * exp_ch3.adb (Build_Variant_Record_Equality): For unchecked union
1653 types, build the additional parameters as extra formal parameters.
1654 (Expand_Freeze_Record_Type.Build_Variant_Record_Equality): Pass
1655 Empty as Spec_Id in call to Build_Variant_Record_Equality.
1656 * exp_ch4.ads (Expand_Unchecked_Union_Equality): New procedure.
1657 * exp_ch4.adb (Expand_Composite_Equality): In the presence of a
1658 function implementing composite equality, do not special case the
1659 unchecked union types, and only convert the operands if the base
1660 types are not the same like in Build_Equality_Call.
1661 (Build_Equality_Call): Do not special case the unchecked union types
1662 and relocate the operands only once.
1663 (Expand_N_Op_Eq): Do not special case the unchecked union types.
1664 (Expand_Unchecked_Union_Equality): New procedure implementing the
1665 specific expansion of calls to the predefined equality function.
1666 * exp_ch6.adb (Is_Unchecked_Union_Equality): New predicate.
1667 (Expand_Call): Call Is_Unchecked_Union_Equality to determine whether
1668 to call Expand_Unchecked_Union_Equality or Expand_Call_Helper.
1669 * exp_ch8.adb (Build_Body_For_Renaming): Set Has_Delayed_Freeze flag
1670 earlier on Id and pass Id in call to Build_Variant_Record_Equality.
1671
16722023-07-03 Eric Botcazou <ebotcazou@adacore.com>
1673
1674 * exp_ch3.adb (Build_Untagged_Equality): Rename into...
1675 (Build_Untagged_Record_Equality): ...this.
1676 (Expand_Freeze_Record_Type): Adjust to above renaming and invoke
1677 the procedure also for discriminated types without a variant part.
1678
16792023-07-03 Eric Botcazou <ebotcazou@adacore.com>
1680
1681 * sem_util.adb (Has_Inferable_Discriminants): In the case of a
1682 component with a per-object constraint, also return true if the
1683 enclosing object is not of an unchecked union type.
1684 In the default case, remove a useless call to Base_Type.
1685
14bfda60
GA
16862023-06-29 Richard Sandiford <richard.sandiford@arm.com>
1687
1688 * gcc-interface/decl.cc (gt_pch_nx): Remove overloads for Entity_Id.
1689
878a9fee
GA
16902023-06-27 Eric Botcazou <ebotcazou@adacore.com>
1691
1692 * gcc-interface/Makefile.in (LIBIBERTY): Fix condition.
1693 (TOOLS_LIBS): Add @LD_PICFLAG@.
1694
16952023-06-27 Eric Botcazou <ebotcazou@adacore.com>
1696
1697 * gcc-interface/trans.cc (Subprogram_Body_to_gnu): Add guard to the
1698 code turning the type of the RESULT_DECL into a reference type.
1699 (maybe_make_gnu_thunk): Use a more precise guard in the same case.
1700
17012023-06-27 Eric Botcazou <ebotcazou@adacore.com>
1702
1703 * gcc-interface/trans.cc (Case_Statement_to_gnu): Rename boolean
1704 constant and use From_Conditional_Expression flag for its value.
1705
17062023-06-27 Eric Botcazou <ebotcazou@adacore.com>
1707
1708 * debug.adb (d.L): Remove documentation.
1709 * exp_ch4.adb (Expand_N_Case_Expression): In the not-by-copy case,
1710 do not wrap the case statement in an Expression_With_Actions node.
1711 (Expand_N_If_Expression): Do not test
1712 Back_End_Handles_Limited_Types
1713 * gnat1drv.adb (Adjust_Global_Switches): Do not set it.
1714 * opt.ads (Back_End_Handles_Limited_Types): Delete.
1715
17162023-06-27 Eric Botcazou <ebotcazou@adacore.com>
1717
1718 * sem_ch12.adb (Check_Generic_Actuals): Check the component type
1719 of constants and variables of an array type.
1720 (Copy_Generic_Node): Fix bogus handling of iterator
1721 specifications.
1722
17232023-06-27 Claire Dross <dross@adacore.com>
1724
1725 * libgnat/a-textio.ads (Get_Line): Use Relaxed_Initialization on
1726 the Item parameter of Get_Line.
1727
17282023-06-27 Eric Botcazou <ebotcazou@adacore.com>
1729
1730 * exp_ch4.adb (Expand_N_Quantified_Expression): Revert the latest
1731 change as it is subsumed by the machinery in Sem_Ch5.
1732 * sem_ch5.adb (Prepare_Iterator_Loop): Also wrap the loop
1733 statement in a block in the name contains a function call that
1734 returns on the secondary stack.
1735
17362023-06-27 Eric Botcazou <ebotcazou@adacore.com>
1737
1738 * sem_ch12.adb (Scope_Within_Body_Or_Same): New predicate.
1739 (Check_Actual_Type): Take into account packages nested in bodies
1740 to compute the enclosing scope by means of
1741 Scope_Within_Body_Or_Same.
1742
17432023-06-27 Eric Botcazou <ebotcazou@adacore.com>
1744
1745 * sem_ch12.adb (Check_Private_View): Also check the type of
1746 visible discriminants in record and concurrent types.
1747
17482023-06-27 Viljar Indus <indus@adacore.com>
1749
1750 * sprint.adb (Print_Node_Actual): Print homogeneous N_Aggregate
1751 nodes with brackets.
1752
17532023-06-27 Viljar Indus <indus@adacore.com>
1754
1755 * exp_aggr.adb (Expand_N_Aggregate): Ensure that container
1756 aggregate expressions do not get expanded as records but instead
1757 as container aggregates.
1758
bfc6d29f
GA
17592023-06-20 Eric Botcazou <ebotcazou@adacore.com>
1760
1761 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Pass
1762 the NULL_TREE explicitly and test imported_p in lieu of
1763 Is_Imported. <E_Function>: Remove public_flag local variable and
1764 make extern_flag local variable a constant.
1765
17662023-06-20 Yannick Moy <moy@adacore.com>
1767
1768 * sem_res.adb (Resolve_Call): Fix change that replaced test for
1769 quantified expressions by the test for potentially unevaluated
1770 contexts. Both should be performed.
1771
17722023-06-20 Eric Botcazou <ebotcazou@adacore.com>
1773
1774 * exp_ch7.adb (Convert_View): Detect more cases of mismatches for
1775 private types and use Implementation_Base_Type as main criterion.
1776 * gen_il-fields.ads (Opt_Field_Enum): Add
1777 Has_Secondary_Private_View
1778 * gen_il-gen-gen_nodes.adb (N_Expanded_Name): Likewise.
1779 (N_Direct_Name): Likewise.
1780 (N_Op): Likewise.
1781 * sem_ch12.ads (Check_Private_View): Document the usage of second
1782 flag Has_Secondary_Private_View.
1783 * sem_ch12.adb (Get_Associated_Entity): New function to retrieve
1784 the ultimate associated entity, if any.
1785 (Check_Private_View): Implement Has_Secondary_Private_View
1786 support.
1787 (Copy_Generic_Node): Remove specific treatment for Component_Type
1788 of an array type and Designated_Type of an access type. Add
1789 specific treatment for comparison and equality operators, as well
1790 as iterator and loop parameter specifications.
1791 (Instantiate_Type): Implement Has_Secondary_Private_View support.
1792 (Requires_Delayed_Save): Call Get_Associated_Entity.
1793 (Set_Global_Type): Implement Has_Secondary_Private_View support.
1794 * sem_ch6.adb (Conforming_Types): Remove bypass for private views
1795 in instances.
1796 * sem_type.adb (Covers): Return true if Is_Subtype_Of does so.
1797 Remove bypass for private views in instances.
1798 (Specific_Type): Likewise.
1799 * sem_util.adb (Wrong_Type): Likewise.
1800 * sinfo.ads (Has_Secondary_Private_View): Document new flag.
1801
18022023-06-20 Ronan Desplanques <desplanques@adacore.com>
1803
1804 * libgnarl/s-mudido.ads: Remove outdated comment.
1805
18062023-06-20 Eric Botcazou <ebotcazou@adacore.com>
1807
1808 * doc/gnat_ugn/gnat_and_program_execution.rst (Overflows in GNAT)
1809 <Default Settings>: Remove obsolete paragraph about -gnato.
1810 <Implementation Notes>: Replace CHECKED with STRICT.
1811 * gnat_ugn.texi: Regenerate.
1812
18132023-06-20 Yannick Moy <moy@adacore.com>
1814
1815 * sem_util.adb (Check_Result_And_Post_State): Do not warn in cases
1816 where the warning could be spurious.
1817
18182023-06-20 Yannick Moy <moy@adacore.com>
1819
1820 * err_vars.ads (Error_Msg_Code): New variable for error codes.
1821 * errout.adb (Error_Msg_Internal): Display continuation message
1822 when an error code was present.
1823 (Set_Msg_Text): Handle character sequence [] for error codes.
1824 * errout.ads: Document new insertion sequence [].
1825 (Error_Msg_Code): New renaming.
1826 * erroutc.adb (Prescan_Message): Detect presence of error code.
1827 (Set_Msg_Insertion_Code): Handle new insertion sequence [].
1828 * erroutc.ads (Has_Error_Code): New variable for prescan.
1829 (Set_Msg_Insertion_Code): Handle new insertion sequence [].
1830 * contracts.adb (Check_Type_Or_Object_External_Properties):
1831 Replace reference to SPARK RM section by an error code.
1832 * sem_elab.adb (SPARK_Processor): Same.
1833 * sem_prag.adb (Check_Missing_Part_Of): Same.
1834 * sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Same.
1835
18362023-06-20 Piotr Trojanek <trojanek@adacore.com>
1837
1838 * sem_res.adb (Resolve_Entity_Name): Handle Range like First and Last.
1839
18402023-06-20 Jose Ruiz <ruiz@adacore.com>
1841
1842 * doc/gnat_ugn/the_gnat_compilation_model.rst
1843 (Partition-Wide Settings): add this subsection to document
1844 configuration settings made by the Ada run time.
1845 * gnat_ugn.texi: Regenerate.
1846
18472023-06-20 Piotr Trojanek <trojanek@adacore.com>
1848
1849 * sem_res.adb (Resolve_Entity_Name): Ignore implicit loop scopes
1850 introduced by quantified expressions.
1851
18522023-06-20 Bob Duff <duff@adacore.com>
1853
1854 * sem_ch3.adb (Analyze_Object_Declaration): Remove predicate-check
1855 generation if there is an address clause. These are unnecessary,
1856 and cause gigi to crash.
1857 * exp_util.ads (Following_Address_Clause): Remove obsolete "???"
1858 comments. The suggested changes were done long ago.
1859
18602023-06-20 Eric Botcazou <ebotcazou@adacore.com>
1861
1862 * einfo.ads (Has_Private_Ancestor): Fix inaccuracy in description.
1863 * sem_ch12.adb (Check_Actual_Type): Do not switch the view of the
1864 type if it has a private ancestor.
1865
18662023-06-20 Daniel King <dmking@adacore.com>
1867
1868 * libgnat/i-cheri.ads: Add CHERI intrinsics and helper functions.
1869 * libgnat/i-cheri.adb: Likewise
1870
18712023-06-20 Eric Botcazou <ebotcazou@adacore.com>
1872
1873 * exp_ch7.adb (Convert_View): Remove Ind parameter and adjust.
1874 * sem_ch12.adb (Check_Generic_Actuals): Check the type of both in
1875 and in out actual objects, as well as the type of formal parameters
1876 of actual subprograms. Extend the condition under which the views
1877 are swapped to nested generic constructs.
1878 (Save_References_In_Identifier): Call Set_Global_Type on a global
1879 identifier rewritten as an explicit dereference, either directly
1880 or after having first been rewritten as a function call.
1881 (Save_References_In_Operator): Set N2 unconditionally and reuse it.
1882 * sem_ch3.adb (Build_Derived_Record_Type): Add missing comment.
1883 * sem_res.adb (Resolve_Implicit_Dereference): Remove special bypass
1884 for private views in instances.
1885
18862023-06-20 Eric Botcazou <ebotcazou@adacore.com>
1887
1888 * exp_aggr.adb (Convert_To_Assignments): Tweak comment.
1889 (Expand_Array_Aggregate): Do not delay the expansion if the parent
1890 node is a container aggregate.
1891
18922023-06-20 Ghjuvan Lacambre <lacambre@adacore.com>
1893
1894 * errout.adb (Output_Messages): Fix loop termination condition.
1895
18962023-06-20 Eric Botcazou <ebotcazou@adacore.com>
1897
1898 * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler
1899 Switches): Document -gnateH.
1900 * opt.ads (Reverse_Bit_Order_Threshold): New variable.
1901 * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Use its value
1902 if it is nonnegative instead of System_Max_Integer_Size.
1903 * switch-c.adb (Scan_Front_End_Switches): Deal with -gnateH.
1904 * usage.adb (Usage): Print -gnateH.
1905 * gnat_ugn.texi: Regenerate.
1906
19072023-06-20 Yannick Moy <moy@adacore.com>
1908
1909 * libgnat/s-aridou.adb (Scaled_Divide): Add assertions.
1910 * libgnat/s-valuti.adb: Add Loop_Variant.
1911 * libgnat/s-valuti.ads: Add Exceptional_Cases on No_Return
1912 procedure.
1913
19142023-06-20 Marc Poulhiès <poulhies@adacore.com>
1915
1916 * sem_ch3.adb (Build_Derived_Record_Type): Use full view as
1917 Parent_Base if needed.
1918
19192023-06-20 Ghjuvan Lacambre <lacambre@adacore.com>
1920
1921 * lib-load.adb (Load_Unit): Pass Error_Node to calls to Error_Msg.
1922
19232023-06-20 Claire Dross <dross@adacore.com>
1924
1925 * libgnat/a-strfix.ads: Replace Might_Not_Return annotations by
1926 Exceptional_Cases and Always_Terminates aspects.
1927 * libgnat/a-tideio.ads: Idem.
1928 * libgnat/a-tienio.ads: Idem.
1929 * libgnat/a-tifiio.ads: Idem.
1930 * libgnat/a-tiflio.ads: Idem.
1931 * libgnat/a-tiinio.ads: Idem.
1932 * libgnat/a-timoio.ads: Idem.
1933 * libgnat/a-textio.ads: Idem. Also mark functions Name, Col, Line,
1934 and Page as out of SPARK as they might raise Layout_Error.
1935 * libgnarl/a-reatim.ads: Replace Always_Return annotations by
1936 Always_Terminates aspects.
1937 * libgnat/a-chahan.ads: Idem.
1938 * libgnat/a-nbnbig.ads: Idem.
1939 * libgnat/a-nbnbin.ads: Idem.
1940 * libgnat/a-nbnbre.ads: Idem.
1941 * libgnat/a-ngelfu.ads: Idem.
1942 * libgnat/a-nlelfu.ads: Idem.
1943 * libgnat/a-nllefu.ads: Idem.
1944 * libgnat/a-nselfu.ads: Idem.
1945 * libgnat/a-nuelfu.ads: Idem.
1946 * libgnat/a-strbou.ads: Idem.
1947 * libgnat/a-strmap.ads: Idem.
1948 * libgnat/a-strsea.ads: Idem.
1949 * libgnat/a-strsup.ads: Idem.
1950 * libgnat/a-strunb.ads: Idem.
1951 * libgnat/a-strunb__shared.ads: Idem.
1952 * libgnat/g-souinf.ads: Idem.
1953 * libgnat/i-c.ads: Idem.
1954 * libgnat/interfac.ads: Idem.
1955 * libgnat/interfac__2020.ads: Idem.
1956 * libgnat/s-aridou.adb: Idem.
1957 * libgnat/s-arit32.adb: Idem.
1958 * libgnat/s-atacco.ads: Idem.
1959 * libgnat/s-spcuop.ads: Idem.
1960 * libgnat/s-stoele.ads: Idem.
1961 * libgnat/s-vaispe.ads: Idem.
1962 * libgnat/s-vauspe.ads: Idem.
1963 * libgnat/i-cstrin.ads: Add a precondition instead of a
1964 Might_Not_Return annotation.
1965
19662023-06-20 Javier Miranda <miranda@adacore.com>
1967
1968 * sem_ch4.adb
1969 (Try_Selected_Component_In_Instance): New subprogram; factorizes
1970 existing code.
1971 (Find_Component_In_Instance) Moved inside the new subprogram.
1972 (Analyze_Selected_Component): Invoke the new subprogram before
1973 trying the Object.Operation notation.
1974
19752023-06-20 Ronan Desplanques <desplanques@adacore.com>
1976
1977 * libgnat/a-calfor.adb (Time_Of): Fix handling of special case.
1978
7ff79341
GA
19792023-06-15 Marek Polacek <polacek@redhat.com>
1980
1981 * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove NO_PIE_CFLAGS. Add
1982 PICFLAG. Use PICFLAG when building ada/b_gnat1.o and ada/b_gnatb.o.
1983 * gcc-interface/Makefile.in: Use pic/libiberty.a if PICFLAG is set.
1984 Remove NO_PIE_FLAG.
1985
19862023-06-15 Marc Poulhiès <poulhies@adacore.com>
1987
1988 * vxworks7-cert-rtp-base-link.spec: Removed.
1989 * vxworks7-cert-rtp-base-link__ppc64.spec: Removed.
1990 * vxworks7-cert-rtp-base-link__x86.spec: Removed.
1991 * vxworks7-cert-rtp-base-link__x86_64.spec: Removed.
1992 * vxworks7-cert-rtp-link.spec: Removed.
1993 * vxworks7-cert-rtp-link__ppcXX.spec: Removed.
1994
19952023-06-15 Eric Botcazou <ebotcazou@adacore.com>
1996
1997 * gcc-interface/utils2.cc (build_binary_op) <MODIFY_EXPR>: Do not
1998 remove a VIEW_CONVERT_EXPR on the LHS if it is also on the RHS.
1999
20002023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2001
2002 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Restrict
2003 the special handling of temporaries created for return values and
2004 subject to a renaming to the top level.
2005
20062023-06-15 Ronan Desplanques <desplanques@adacore.com>
2007
2008 * doc/gnat_ugn/about_this_guide.rst: Fix typo. Uniformize punctuation.
2009 * doc/gnat_ugn/the_gnat_compilation_model.rst: Uniformize punctuation.
2010 Fix capitalization. Fix indentation of code block. Fix RST formatting
2011 syntax errors.
2012 * gnat_ugn.texi: Regenerate.
2013
20142023-06-15 Yannick Moy <moy@adacore.com>
2015
2016 * sem_attr.adb (Analyze_Attribute): Reject case of Loop_Entry
2017 inside the prefix of Loop_Entry, as per SPARK RM 5.5.3.1(4,8).
2018
20192023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2020
2021 * exp_ch3.adb (Make_Allocator_For_Return): Rewrite the logic that
2022 determines the type used for the allocation and add assertions.
2023 * exp_util.adb (Has_Tag_Of_Type): Also return true for extension
2024 aggregates.
2025
20262023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2027
2028 * sinfo.ads (Iterator_Filter): Document field.
2029 * sem_ch5.adb (Analyze_Iterator_Specification): Move comment around.
2030 (Analyze_Loop_Parameter_Specification): Only preanalyze the iterator
2031 filter, if any.
2032 * exp_ch5.adb (Expand_N_Loop_Statement): Analyze the new list built
2033 when an iterator filter is present.
2034
20352023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2036
2037 * exp_util.adb (Find_Hook_Context): Revert latest change.
2038
20392023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2040
2041 * exp_ch3.adb (Make_Allocator_For_Return): Deal again specifically
2042 with an aggregate returned through an object of a class-wide type.
2043
20442023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2045
2046 * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Do not insert
2047 an always empty list. Remove unused parameter Isc.
2048 (Expand_Iterator_Loop): Adjust call to above procedure.
2049
20502023-06-15 Ronan Desplanques <desplanques@adacore.com>
2051
2052 * targparm.adb: Allow pragma Style_Checks in some forms.
2053 * targparm.ads: Document new pragma permission.
2054
20552023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2056
2057 * exp_util.ads (Within_Case_Or_If_Expression): Adjust description.
2058 * exp_util.adb (Find_Hook_Context): Stop the search for the topmost
2059 conditional expression, if within one, at contexts where temporaries
2060 may be contained.
2061 (Within_Case_Or_If_Expression): Return false upon first encoutering
2062 contexts where temporaries may be contained.
2063
20642023-06-15 Johannes Kliemann <kliemann@adacore.com>
2065
2066 * libgnarl/s-osinte__qnx.adb: Adjust priority conversion function.
2067 * libgnat/system-qnx-arm.ads: Adjust priority range and default
2068 priority.
2069
20702023-06-15 Ronan Desplanques <desplanques@adacore.com>
2071
2072 * targparm.ads: Remove references to front-end-based exceptions. Fix
2073 thinko.
2074
20752023-06-15 Piotr Trojanek <trojanek@adacore.com>
2076
2077 * contracts.adb (Add_Contract_Item): Add pragma Always_Terminates to
2078 package contract.
2079 * sem_prag.adb (Analyze_Pragma): Accept pragma Always_Terminates on
2080 packages and generic packages, but only when it has no arguments.
2081
20822023-06-15 Piotr Trojanek <trojanek@adacore.com>
2083
2084 * sem_prag.adb (Analyze_Pragma): Accept pragma Always_Terminates when
2085 it applies to an entry.
2086
20872023-06-15 Piotr Trojanek <trojanek@adacore.com>
2088
2089 * sem_prag.adb (Analyze_Pragma): Reject pragma Always_Terminates when
2090 it applies to a function or generic function.
2091
20922023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2093
2094 * sem_ch4.adb (Analyze_Call): Adjust the test to detect the presence
2095 of an incomplete view of a type on a function call.
2096
20972023-06-15 Ronan Desplanques <desplanques@adacore.com>
2098
2099 * ttypes.ads: Remove reference to Ttypef in comment. Fix typo in
2100 comment.
2101
21022023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2103
2104 * get_targ.ads (Get_Max_Unaligned_Field): Delete.
2105 * ada_get_targ.adb (Get_Max_Unaligned_Field): Likewise.
2106 * get_targ.adb (Get_Max_Unaligned_Field): Likewise.
2107 * set_targ.ads (Max_Unaligned_Field): Adjust comment.
2108 * set_targ.adb: Set Max_Unaligned_Field to 1 during elaboration.
2109 * ttypes.ads (Max_Unaligned_Field): Delete.
2110
21112023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2112
2113 * sem_type.adb (Disambiguate): Fix pasto in the implementation of
2114 the RM 8.4(10) clause for operators.
2115
21162023-06-15 Piotr Trojanek <trojanek@adacore.com>
2117
2118 * aspects.adb
2119 (Base_Aspect): Fix layout.
2120 * aspects.ads
2121 (Aspect_Argument): Expression for Always_Terminates is optional.
2122 * sem_prag.adb
2123 (Analyze_Always_Terminates_In_Decl_Part): Only analyze expression when
2124 pragma argument is present.
2125 (Analyze_Pragma): Argument for Always_Terminates is optional; fix
2126 whitespace for Async_Readers.
2127
21282023-06-15 Javier Miranda <miranda@adacore.com>
2129
2130 * sem_util.adb
2131 (Is_CPP_Constructor_Call): Add missing support for calls to
2132 functions returning a private type.
2133
21342023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2135
2136 * exp_util.ads (Build_Transient_Object_Statements): Remove obsolete
2137 references to array and record aggregates in documentation.
2138
21392023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2140
2141 * sem_ch13.adb (Analyze_Aspect_Specifications): Add missing items
2142 in the list of aspects handled by means of Insert_Pragma.
2143 <Aspect_Linker_Section>: Remove obsolete code. Do not delay the
2144 processing of the aspect if the entity is already frozen.
2145
21462023-06-15 Piotr Trojanek <trojanek@adacore.com>
2147
2148 * sem_aggr.adb
2149 (Resolve_Array_Aggregate): Simplify comment.
2150 (Resolve_Iterated_Component_Association): Tune comment; change variable
2151 to constant.
2152
532fb120
GA
21532023-06-13 Piotr Trojanek <trojanek@adacore.com>
2154
2155 * sem_aggr.adb (Resolve_Iterated_Component_Association): Simply resolve
2156 the expression.
2157
21582023-06-13 Bob Duff <duff@adacore.com>
2159
2160 * exp_ch4.adb
2161 (Expand_N_Quantified_Expression): Detect the secondary-stack
2162 case, and find the innermost scope where we should mark/release,
2163 and Set_Uses_Sec_Stack on that. Skip intermediate blocks and loops
2164 that are part of expansion.
2165
21662023-06-13 Piotr Trojanek <trojanek@adacore.com>
2167
2168 * sem_util.adb (Is_Repeatedly_Evaluated): Recognize iterated component
2169 association as repeatedly evaluated.
2170
21712023-06-13 Piotr Trojanek <trojanek@adacore.com>
2172
2173 * sem_util.adb (Is_Potentially_Unevaluated): Recognize iterated
2174 component association as potentially unevaluated.
2175
21762023-06-13 Piotr Trojanek <trojanek@adacore.com>
2177
2178 * sem_res.adb (Resolve_Call): Replace early call to
2179 In_Quantified_Expression with a call to Is_Potentially_Unevaluated that
2180 was only done when Full_Analysis is true.
2181
21822023-06-13 Piotr Trojanek <trojanek@adacore.com>
2183
2184 * aspects.ads (Aspect_Id): Add new aspect.
2185 (Implementation_Defined_Aspect): New aspect is
2186 implementation-defined.
2187 (Aspect_Argument): New aspect has an expression argument.
2188 (Is_Representation_Aspect): New aspect is not a representation
2189 aspect.
2190 (Aspect_Names): Link new aspect identifier with a name.
2191 (Aspect_Delay): New aspect is never delayed.
2192 * contracts.adb (Expand_Subprogram_Contract): Mention new aspect
2193 in comment.
2194 (Add_Contract_Item): Attach pragma corresponding to the new aspect
2195 to contract items.
2196 (Analyze_Entry_Or_Subprogram_Contract): Analyze pragma
2197 corresponding to the new aspect that appears with subprogram spec.
2198 (Analyze_Subprogram_Body_Stub_Contract): Expand pragma
2199 corresponding to the new aspect.
2200 * contracts.ads
2201 (Add_Contract_Item, Analyze_Entry_Or_Subprogram_Contract)
2202 (Analyze_Entry_Or_Subprogram_Body_Contract)
2203 (Analyze_Subprogram_Body_Stub_Contract): Mention new aspect in
2204 comment.
2205 * einfo-utils.adb (Get_Pragma): Return pragma attached to
2206 contract.
2207 * einfo-utils.ads (Get_Pragma): Mention new contract in comment.
2208 * exp_prag.adb (Expand_Pragma_Always_Terminates): Placeholder for
2209 possibly expanding new aspect.
2210 * exp_prag.ads (Expand_Pragma_Always_Terminates): Dedicated
2211 routine for expansion of the new aspect.
2212 * inline.adb (Remove_Aspects_And_Pragmas): Remove aspect from
2213 inlined bodies.
2214 * par-prag.adb (Prag): Postpone checking of the pragma until
2215 analysis.
2216 * sem_ch12.adb: Mention new aspect in explanation of handling
2217 contracts on generic units.
2218 * sem_ch13.adb (Analyze_Aspect_Specifications): Convert new aspect
2219 into a corresponding pragma.
2220 (Check_Aspect_At_Freeze_Point): Don't expect new aspect.
2221 * sem_prag.adb (Analyze_Always_Terminates_In_Decl_Part): Analyze
2222 pragma corresponding to the new aspect.
2223 (Analyze_Pragma): Handle pragma corresponding to the new aspect.
2224 (Is_Non_Significant_Pragma_Reference): Handle references appearing
2225 within new aspect.
2226 * sem_prag.ads (Aspect_Specifying_Pragma): New aspect can be
2227 emulated with a pragma.
2228 (Assertion_Expression_Pragma): New aspect has an assertion
2229 expression.
2230 (Pragma_Significant_To_Subprograms): New aspect is significant to
2231 subprograms.
2232 (Analyze_Always_Terminates_In_Decl_Part): Add spec for routine
2233 that analyses new aspect.
2234 (Find_Related_Declaration_Or_Body): Mention new aspect in comment.
2235 * sem_util.adb (Is_Subprogram_Contract_Annotation): New aspect is
2236 a subprogram contract annotation.
2237 * sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new
2238 aspect in comment.
2239 * sinfo.ads (Is_Generic_Contract_Pragma): New pragma is a generic
2240 contract.
2241 (Contract): Explain attaching new pragma to subprogram contract.
2242 * snames.ads-tmpl (Name_Always_Terminates): New name for the new
2243 contract.
2244 (Pragma_Always_Terminates): New pragma identifier.
2245
22462023-06-13 Piotr Trojanek <trojanek@adacore.com>
2247
2248 * sem_elab.adb (Check_Overriding_Primitive): Prevent Corresponding_Body
2249 to be called with entity of an abstract subprogram.
2250
22512023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2252
2253 * sem_ch12.adb (Save_References_In_Identifier): In the case where
2254 the identifier has been turned into a function call by analysis,
2255 call Set_Global_Type on the entity if it is global.
2256
22572023-06-13 Marc Poulhiès <poulhies@adacore.com>
2258
2259 * sem_aggr.adb (Resolve_Iterated_Component_Association): Call
2260 Preanalyze_And_Resolve instead of Resolve_Aggr_Expr except for
2261 aggregate.
2262 Co-authored-by: Ed Schonberg <schonberg@adacore.com>
2263
22642023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2265
2266 * contracts.adb (Contract_Error): New exception.
2267 (Add_Contract_Item): Raise Contract_Error instead of Program_Error.
2268 (Add_Generic_Contract_Pragma): Deal with Contract_Error.
2269
22702023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2271
2272 * sem_attr.adb (Eval_Attribute): Add more exceptions to the early
2273 return for a prefix which is a nonfrozen generic actual type.
2274 * sem_ch12.adb (Copy_Generic_Node): Also check private views in the
2275 case of an entity name or operator analyzed as a function call.
2276 (Set_Global_Type): Make it a child of Save_Global_References.
2277 (Save_References_In_Operator): In the case where the operator has
2278 been turned into a function call, call Set_Global_Type on the entity
2279 if it is global.
2280
22812023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2282
2283 * contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): For a
2284 subprogram body that has no contracts and does not come from source,
2285 make sure that contracts on its corresponding spec are analyzed, if
2286 any, before expanding them.
2287
22882023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2289
2290 * gen_il-fields.ads (Opt_Field_Enum): Add No_Finalize_Actions and
2291 remove No_Side_Effect_Removal.
2292 * gen_il-gen-gen_nodes.adb (N_Function_Call): Remove semantic flag
2293 No_Side_Effect_Removal
2294 (N_Assignment_Statement): Add semantic flag No_Finalize_Actions.
2295 * sinfo.ads (No_Ctrl_Actions): Adjust comment.
2296 (No_Finalize_Actions): New flag on assignment statements.
2297 (No_Side_Effect_Removal): Delete.
2298 * exp_aggr.adb (Build_Record_Aggr_Code): Remove obsolete comment and
2299 Ancestor_Is_Expression variable. In the case of an extension, do
2300 not generate a call to Adjust manually, call Set_No_Finalize_Actions
2301 instead. Do not set the tags, replace call to Make_Unsuppress_Block
2302 by Make_Suppress_Block and remove useless assertions.
2303 In the general case, call Initialize_Component.
2304 (Initialize_Controlled_Component): Delete.
2305 (Initialize_Simple_Component): Delete.
2306 (Initialize_Component): Do the low-level processing, but do not
2307 generate a call to Adjust manually, call Set_No_Finalize_Actions.
2308 (Process_Transient_Component): Delete.
2309 (Process_Transient_Component_Completion): Likewise.
2310 * exp_ch5.adb (Expand_Assign_Array): Deal with No_Finalize_Actions.
2311 (Expand_Assign_Array_Loop): Likewise.
2312 (Expand_N_Assignment_Statement): Likewise.
2313 (Make_Tag_Ctrl_Assignment): Likewise.
2314 * exp_util.adb (Remove_Side_Effects): Do not test the
2315 No_Side_Effect_Removal flag.
2316 * sem_prag.adb (Process_Suppress_Unsuppress): Give the warning in
2317 SPARK mode only for pragma Suppress.
2318 * tbuild.ads (Make_Suppress_Block): New declaration.
2319 (Make_Unsuppress_Block): Adjust comment.
2320 * tbuild.adb (Make_Suppress_Block): New procedure.
2321 (Make_Unsuppress_Block): Unsuppress instead of suppressing.
2322
23232023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2324
2325 * sem_ch5.adb (Analyze_Assignment): Turn Rhs into a constant and
2326 remove calls to the following subprograms.
2327 (Transform_BIP_Assignment): Delete.
2328 (Should_Transform_BIP_Assignment): Likewise.
2329
23302023-06-13 Piotr Trojanek <trojanek@adacore.com>
2331
2332 * sem_util.ads (Is_Inherited_Operation_For_Type): Remove spec.
2333 * sem_util.adb (Is_Inherited_Operation_For_Type): Remove body.
2334
23352023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2336
2337 * exp_aggr.adb (Build_Record_Aggr_Code): Add new variable Ancestor_Q
2338 to store the result of Unqualify on Ancestor. Remove the dead call
2339 to Generate_Finalization_Actions in the case of another aggregate as
2340 ancestor part. Remove the redundant setting of Assignment_OK. Use
2341 Init_Typ in lieu of Etype (Ancestor) more consistently.
2342
23432023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2344
2345 * exp_aggr.adb (Build_Record_Aggr_Code): In the case of an extension
2346 aggregate of a limited type whose ancestor part is an aggregate, do
2347 not skip the final code assigning the tag of the extension.
2348
23492023-06-13 Yannick Moy <moy@adacore.com>
2350
2351 * ghost.adb (Check_Ghost_Context): Allow absence of Ghost_Id
2352 for attribute. Update error message to mention Ghost_Predicate.
2353 (Is_Ghost_Attribute_Reference): New query.
2354 * ghost.ads (Is_Ghost_Attribute_Reference): New query.
2355 * sem_attr.adb (Resolve_Attribute): Check ghost context for ghost
2356 attributes.
2357
23582023-06-13 Daniel King <dmking@adacore.com>
2359
2360 * libgnat/s-stoele.ads: Add No_Elaboration_Code_All pragma.
2361
23622023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2363
2364 * exp_util.ads (Make_Tag_Assignment_From_Type): Declare.
2365 * exp_util.adb (Make_Tag_Assignment_From_Type): New function.
2366 * exp_aggr.adb (Build_Record_Aggr_Code): Call the above function.
2367 (Initialize_Simple_Component): Likewise.
2368 * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Likewise.
2369 (Build_Record_Init_Proc.Build_Init_Procedure ): Likewise.
2370 (Make_Tag_Assignment): Likewise. Rename local variable and call
2371 Unqualify to go through qualified expressions.
2372 * exp_ch4.adb (Expand_Allocator_Expression): Likewise.
2373
23742023-06-13 Yannick Moy <moy@adacore.com>
2375
2376 * libgnat/a-strsup.ads: Change predicate aspect.
2377 * sem_ch13.adb (Add_Predicate): Fix for first predicate.
2378
23792023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2380
2381 * exp_aggr.adb (Initialize_Component): Perform immediate expansion
2382 of the initialization expression if it is a conditional expression
2383 and the component type is controlled.
2384
23852023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2386
2387 * exp_aggr.adb (Initialize_Component): New procedure factored out
2388 from the processing of array and record aggregates.
2389 (Initialize_Controlled_Component): Likewise.
2390 (Initialize_Simple_Component): Likewise.
2391 (Build_Array_Aggr_Code.Gen_Assign): Remove In_Loop parameter.
2392 Call Initialize_Component to initialize the component.
2393 (Initialize_Array_Component): Delete.
2394 (Initialize_Ctrl_Array_Component): Likewise.
2395 (Build_Array_Aggr_Code): Adjust calls to Gen_Assign.
2396 (Build_Record_Aggr_Code): Call Initialize_Simple_Component or
2397 Initialize_Component to initialize the component.
2398 (Initialize_Ctrl_Record_Component): Delete.
2399 (Initialize_Record_Component): Likewise.
2400
24012023-06-13 Piotr Trojanek <trojanek@adacore.com>
2402
2403 * exp_ch11.adb (Expand_N_Raise_Statement): Expansion of raise statements
2404 never happens in GNATprove mode.
2405
24062023-06-13 Piotr Trojanek <trojanek@adacore.com>
2407
2408 * exp_ch11.adb (Find_Local_Handler): Replace guard against other
2409 constructs appearing in the list of exception handlers with iteration
2410 using First_Non_Pragma/Next_Non_Pragma.
2411
24122023-06-13 Piotr Trojanek <trojanek@adacore.com>
2413
2414 * exp_ch11.ads (Find_Local_Handler): Fix typo in comment.
2415 * exp_ch11.adb (Find_Local_Handler): Remove redundant check for the
2416 Exception_Handler list being present; use membership test to eliminate
2417 local object LCN; fold nested IF statements. Remove useless ELSIF
2418 condition.
2419
24202023-06-13 Piotr Trojanek <trojanek@adacore.com>
2421
2422 * sem_util.adb (Check_Function_Writable_Actuals): Tune style; use
2423 subtype name to detect membership test nodes.
2424
24252023-06-13 Piotr Trojanek <trojanek@adacore.com>
2426
2427 * exp_disp.adb (Make_Disp_Asynchronous_Select_Spec): Use a single call
2428 to New_List.
2429
24302023-06-13 Yannick Moy <moy@adacore.com>
2431
2432 * doc/gnat_rm/implementation_defined_aspects.rst: Document new
2433 aspect.
2434 * doc/gnat_rm/implementation_defined_pragmas.rst: Whitespace.
2435 * aspects.adb (Init_Canonical_Aspect): Set it to Predicate.
2436 * aspects.ads: Set global constants for new aspect.
2437 * einfo.ads: Describe new flag related to new aspect.
2438 * exp_ch6.adb (Can_Fold_Predicate_Call): Do not fold new aspect.
2439 * exp_util.adb (Make_Predicate_Check): Add comment.
2440 * gen_il-fields.ads: Add new flag.
2441 * gen_il-gen-gen_entities.adb: Add new flag.
2442 * ghost.adb (Is_OK_Ghost_Context): Ghost predicate is an OK
2443 ghost context.
2444 (Mark_Ghost_Pragma): Add overloading with ghost mode parameter.
2445 * ghost.ads (Mark_Ghost_Pragma): Add overloading with ghpst mode
2446 parameter.
2447 (Name_To_Ghost_Mode): Make function public.
2448 * sem_aggr.adb: Issue error for violation of valid use.
2449 * sem_case.adb: Issue error for violation of valid use.
2450 * sem_ch13.adb: Adapt for new aspect.
2451 * sem_ch3.adb (Analyze_Full_Type_Declaration): Remove dead code
2452 which was trying to propagate Has_Predicates flag in the wrong
2453 direction (from derived to parent type).
2454 (Analyze_Number_Declaration): Issue error for violation of valid
2455 use.
2456 (Build_Derived_Type): Cleanup inheritance of predicate flags from
2457 parent to derived type.
2458 (Build_Predicate_Function): Only add a predicate check when it
2459 is not ignored as Ghost code.
2460 * sem_ch4.adb (Analyze_Membership_Op): Issue an error for use of
2461 a subtype with a ghost predicate as name in a membership test.
2462 * sem_ch5.adb (Check_Predicate_Use): Issue error for violation of
2463 valid use.
2464 * sem_eval.adb: Adapt code for Dynamic_Predicate to account for
2465 Ghost_Predicate too.
2466 * sem_prag.adb (Analyze_Pragma): Make pragma ghost or not.
2467 * sem_util.adb (Bad_Predicated_Subtype_Use): Adapt to new aspect.
2468 (Inherit_Predicate_Flags): Add inheritance of flag. Add parameter
2469 to apply to derived types.
2470 * sem_util.ads (Inherit_Predicate_Flags): Change signature.
2471 * snames.ads-tmpl: Add new aspect name.
2472 * gnat_rm.texi: Regenerate.
2473
24742023-06-13 Piotr Trojanek <trojanek@adacore.com>
2475
2476 * exp_ch3.adb (Make_Controlling_Function_Wrappers): Remove early
2477 decoration.
2478
df2762ac
GA
24792023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2480
2481 * gcc-interface/trans.cc (get_storage_model_access): Also strip any
2482 type conversion in the node when unwinding the components.
2483
24842023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2485
2486 * gcc-interface/trans.cc (node_is_component): Remove parentheses.
2487 (node_is_type_conversion): New predicate.
2488 (get_atomic_access): Use it.
2489 (get_storage_model_access): Likewise and look into the parent to
2490 find a component if it returns true.
2491 (present_in_lhs_or_actual_p): Likewise.
2492
24932023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2494
2495 * gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Check that
2496 the storage model has Copy_From before instantiating loads for it.
2497 <Attr_Length>: Likewise.
2498 <Attr_Bit_Position>: Likewise.
2499 (gnat_to_gnu) <N_Indexed_Component>: Likewise.
2500 <N_Slice>: Likewise.
2501
25022023-05-30 Marc Poulhiès <poulhies@adacore.com>
2503
2504 * gcc-interface/trans.cc (Attribute_to_gnu): Also strip conversion
2505 in case of DECL.
2506
25072023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2508
2509 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a
2510 local variable for the GNAT index type.
2511 <E_Array_Subtype>: Likewise. Call Is_Null_Range on the bounds and
2512 force the zero on TYPE_SIZE and TYPE_SIZE_UNIT if it returns true.
2513
25142023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2515
2516 * gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: Test the
2517 precision of the operation rather than that of the result type.
2518
25192023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2520
2521 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Replace
2522 integer_zero_node with null_pointer_node for pointer types.
2523 * gcc-interface/trans.cc (gnat_gimplify_expr) <NULL_EXPR>: Likewise.
2524 * gcc-interface/utils.cc (maybe_pad_type): Do not attempt to make a
2525 packable type from a fat pointer type.
2526 * gcc-interface/utils2.cc (build_atomic_load): Use a local variable.
2527 (build_atomic_store): Likewise.
2528
25292023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2530
2531 * gcc-interface/misc.cc (internal_error_function): Be prepared for
2532 an input_location set to UNKNOWN_LOCATION.
2533
25342023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2535
2536 * gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Tweak.
2537 (gnat_to_gnu) <N_Assignment_Statement>: Declare a local variable.
2538 For a target with a storage model, use the Actual_Designated_Subtype
2539 to compute the size if it is present.
2540
25412023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2542
2543 * gcc-interface/trans.cc (Call_to_gnu): Remove code implementing the
2544 by-copy semantics for actuals with nonnative storage models.
2545 (gnat_to_gnu) <N_Assignment_Statement>: Remove code instantiating a
2546 temporary for assignments between nonnative storage models.
2547
25482023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2549
2550 * gcc-interface/decl.cc (range_cannot_be_superflat): Return true
2551 immediately if Cannot_Be_Superflat is set.
2552 * gcc-interface/misc.cc (gnat_post_options): Do not override the
2553 -Wstringop-overflow setting.
2554
25552023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2556
2557 * gcc-interface/Make-lang.in (ADA_CFLAGS): Move up.
2558 (ALL_ADAFLAGS): Add $(NO_PIE_CFLAGS).
2559 (ada/mdll.o): Remove.
2560 (ada/mdll-fil.o): Likewise.
2561 (ada/mdll-utl.o): Likewise.
2562
25632023-05-30 Marc Poulhiès <poulhies@adacore.com>
2564
2565 * gcc-interface/trans.cc (get_storage_model_access): Don't require
2566 storage model access for dereference used as lvalue or renamings.
2567
25682023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2569
2570 * exp_aggr.adb (Build_Array_Aggr_Code): Move the declaration of Typ
2571 to the beginning.
2572 (Initialize_Array_Component): Test the unqualified version of the
2573 expression for the nested array case.
2574 (Initialize_Ctrl_Array_Component): Do not duplicate the expression
2575 here. Do the pattern matching of the unqualified version of it.
2576 (Gen_Assign): Call Unqualify to compute Expr_Q and use Expr_Q in
2577 subsequent pattern matching.
2578 (Initialize_Ctrl_Record_Component): Do the pattern matching of the
2579 unqualified version of the aggregate.
2580 (Build_Record_Aggr_Code): Call Unqualify.
2581 (Convert_Aggr_In_Assignment): Likewise.
2582 (Convert_Aggr_In_Object_Decl): Likewise.
2583 (Component_OK_For_Backend): Likewise.
2584 (Is_Delayed_Aggregate): Likewise.
2585
25862023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2587
2588 * exp_aggr.adb (Build_Array_Aggr_Code.Get_Assoc_Expr): Duplicate the
2589 expression here instead of...
2590 (Build_Array_Aggr_Code): ...here.
2591
25922023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2593
2594 * freeze.adb (Check_Large_Modular_Array): Fix head comment, use
2595 Standard_Long_Long_Integer_Size directly and generate a reference
2596 just before the raise statement if the Etype of the object is an
2597 itype declared in an open scope.
2598
25992023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2600
2601 * exp_ch7.adb (Find_Enclosing_Transient_Scope): Return the index in
2602 the scope table instead of the scope's entity.
2603 (Establish_Transient_Scope): If an enclosing scope already exists,
2604 do not set the Uses_Sec_Stack flag on it if the node to be wrapped
2605 is a return statement which requires secondary stack management.
2606
26072023-05-30 Joel Brobecker <brobecker@adacore.com>
2608
2609 * Makefile.rtl: Use libgnat/s-tsmona__linux.adb on
2610 aarch64-linux. Link libgnat with -ldl, as the use of
2611 s-tsmona__linux.adb requires it.
2612
26132023-05-30 Piotr Trojanek <trojanek@adacore.com>
2614
2615 * exp_ch3.adb
2616 (Build_Access_Subprogram_Wrapper_Body): Build wrapper body if requested
2617 by routine that builds wrapper spec.
2618 * sem_ch3.adb
2619 (Analyze_Full_Type_Declaration): Only build wrapper when expander is
2620 active.
2621 (Build_Access_Subprogram_Wrapper):
2622 Remove special-case for GNATprove.
2623
26242023-05-30 Ronan Desplanques <desplanques@adacore.com>
2625
2626 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix minor issues.
2627 * doc/gnat_ugn/the_gnat_compilation_model.rst: Fix minor issues.
2628 * gnat_ugn.texi: Regenerate.
2629
26302023-05-30 Johannes Kliemann <kliemann@adacore.com>
2631
2632 * libgnat/s-parame.adb: Check that Default_Stack_Size >=
2633 Minimum_Stack_size.
2634 * libgnat/s-parame__rtems.adb: Ditto.
2635 * libgnat/s-parame__vxworks.adb: Check that Default_Stack_Size >=
2636 Minimum_Stack_size and use the proper Minimum_Stack_Size if
2637 Stack_Check_Limits is enabled.
2638
26392023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2640
2641 * sem_res.adb (Resolve_Call): Restrict previous change to calls that
2642 return on the same stack as the enclosing function. Tidy up.
2643
26442023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2645
2646 * libgnat/a-cidlli.adb (Put_Image): Simplify.
2647 * libgnat/a-coinve.adb (Put_Image): Likewise.
2648
26492023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2650
2651 * exp_util.adb (Build_DIC_Procedure_Body.Add_Own_DIC): When inside
2652 a generic unit, preanalyze the expression directly.
2653 (Build_Invariant_Procedure_Body.Add_Own_Invariants): Likewise.
2654
26552023-05-30 Cedric Landet <landet@adacore.com>
2656
2657 * init.c: Replace FIXME by ???
2658
b4c15a14
GA
26592023-05-29 Cedric Landet <landet@adacore.com>
2660
2661 * s-oscons-tmplt.c: move the definition of sigset out of the
2662 HAVE_SOCKETS bloc.
2663
26642023-05-29 Cedric Landet <landet@adacore.com>
2665
2666 * Makefile.rtl: Move g-spogwa$(objext) from GNATRTL_NONTASKING_OBJS
2667 to GNATRTL_SOCKETS_OBJS
2668
26692023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2670
2671 * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec in
2672 both cases to copy the spec of the subprogram.
2673
26742023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2675
2676 * exp_ch7.adb (Establish_Transient_Scope.Find_Transient_Context):
2677 Bail out for a simple return statement only if the transient scope
2678 and the function both require secondary stack management, or else
2679 if the function is a thunk.
2680 * sem_res.adb (Resolve_Call): Do not create a transient scope when
2681 the call is the expression of a simple return statement.
2682
26832023-05-29 Patrick Bernardi <bernardi@adacore.com>
2684
2685 * libgnat/a-excach.adb (Call_Chain): Replace
2686 Code_Address_For_AAA/ZZZ functions with AAA/ZZZ'Code_Address.
2687 * libgnat/a-except.adb (Code_Address_For_AAA/ZZZ): Delete.
2688 (AAA/ZZZ): New null procedures.
2689 * libgnat/g-debpoo.adb
2690 (Code_Address_For_Allocate_End): Delete.
2691 (Code_Address_For_Deallocate_End): Delete.
2692 (Code_Address_For_Dereference_End): Delete.
2693 (Allocate): Remove label and use Code_Address attribute to
2694 determine subprogram addresses.
2695 (Dellocate): Likewise.
2696 (Dereference): Likewise.
2697 (Allocate_End): Convert to null procedure.
2698 (Dellocate_End): Likewise.
2699 (Dereference_End): Likewise.
2700
27012023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2702
2703 * exp_ch6.adb (Expand_Simple_Function_Return): Call Insert_Actions
2704 consistently when rewriting the expression.
2705
27062023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2707
2708 * exp_util.adb (Is_Finalizable_Transient.Is_Indexed_Container):
2709 New predicate to detect a temporary created to hold the result of
2710 a constant indexing on a container.
2711 (Is_Finalizable_Transient.Is_Iterated_Container): Adjust a couple
2712 of obsolete comments.
2713 (Is_Finalizable_Transient): Return False if Is_Indexed_Container
2714 returns True on the object.
2715
27162023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2717
2718 * sem_res.adb (Has_Applicable_User_Defined_Literal): Make it clear
2719 that the predicate also checks the node itself.
2720 (Try_User_Defined_Literal): Move current implementation to...
2721 Deal only with literals, named numbers and conditional expressions
2722 whose dependent expressions are literals or named numbers.
2723 (Try_User_Defined_Literal_For_Operator): ...this. Remove multiple
2724 return False statements and put a single one at the end.
2725 (Resolve): Call Try_User_Defined_Literal instead of directly
2726 Has_Applicable_User_Defined_Literal for all nodes. Call
2727 Try_User_Defined_Literal_For_Operator for operator nodes.
2728
27292023-05-29 Piotr Trojanek <trojanek@adacore.com>
2730
2731 * sem_res.adb (Invoked_With_Different_Arguments): Use Get_Called_Entity,
2732 which properly deals with calls via an access-to-subprogram; fix
2733 inconsistent use of a Call object declared in enclosing subprogram.
2734
27352023-05-29 Piotr Trojanek <trojanek@adacore.com>
2736
2737 * contracts.adb
2738 (Add_Pre_Post_Condition): Attach pre/post aspects to E_Subprogram_Type
2739 entity.
2740 (Analyze_Entry_Or_Subprogram_Contract): Adapt to use full type
2741 declaration for a contract attached to E_Subprogram_Type entity.
2742 * sem_prag.adb
2743 (Analyze_Pre_Post_Condition): Add pre/post aspects to the designed type.
2744
27452023-05-29 Piotr Trojanek <trojanek@adacore.com>
2746
2747 * sem_util.adb (Check_Function_Writable_Actuals): Remove guard against
2748 a membership test with no alternatives; simplify with a membership test.
2749
27502023-05-29 Piotr Trojanek <trojanek@adacore.com>
2751
2752 * doc/gnat_ugn/gnat_and_program_execution.rst
2753 (Some Useful Memory Pools): Remove extra whitespace from examples.
2754 * sem_aggr.adb (Make_String_Into_Aggregate): Remove extra whitespace.
2755 * gnat_ugn.texi: Regenerate.
2756
27572023-05-29 Piotr Trojanek <trojanek@adacore.com>
2758
2759 * exp_aggr.adb (Convert_Aggr_In_Allocator): Replace Get_TSS_Name
2760 with a high-level Is_TSS.
2761 * sem_ch6.adb (Check_Conformance): Replace DECLARE block and
2762 nested IF with a call to Get_TSS_Name and a membership test.
2763 (Has_Reliable_Extra_Formals): Refactor repeated calls to
2764 Get_TSS_Name.
2765 * sem_disp.adb (Check_Dispatching_Operation): Replace repeated
2766 calls to Get_TSS_Name with a membership test.
2767
27682023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2769
2770 * exp_ch5.adb (Expand_N_Case_Statement): Do not remove the statement
2771 if it is the node to be wrapped by a transient scope.
2772
27732023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2774
2775 * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Do not defer
2776 anything to the back-end when the main unit is generic.
2777
27782023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2779
2780 * sem_res.adb (Try_User_Defined_Literal): Restrict previous change
2781 to non-leaf nodes.
2782
27832023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2784
2785 * sem_res.adb (Try_User_Defined_Literal): For arithmetic operators,
2786 also accept operands whose type is covered by the resolution type.
2787
27882023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2789
2790 * exp_aggr.adb (Initialize_Array_Component): Fix condition detecting
2791 the nested case that requires an adjustment.
2792
27932023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2794
2795 * exp_ch4.adb (Expand_N_In): Deal specifically with a null operand.
2796
27972023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2798
2799 * exp_ch6.adb (Expand_Simple_Function_Return): Deal with a rewriting
2800 of the simple return during the adjustment of its expression.
2801
28022023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2803
2804 * exp_ch4.adb (Expand_N_Case_Expression): Distribute simple return
2805 statements enclosing the conditional expression into the dependent
2806 expressions in almost all cases.
2807 (Expand_N_If_Expression): Likewise.
2808 (Process_Transient_In_Expression): Adjust to the above distribution.
2809 * exp_ch6.adb (Expand_Ctrl_Function_Call): Deal with calls in the
2810 dependent expressions of a conditional expression.
2811 * sem_ch6.adb (Analyze_Function_Return): Deal with the rewriting of
2812 a simple return statement during the resolution of its expression.
2813
28142023-05-29 Piotr Trojanek <trojanek@adacore.com>
2815
2816 * sem_res.adb (Resolve_Entity_Name): Refine rules for Exceptional_Cases.
2817
28182023-05-29 Marc Poulhiès <poulhies@adacore.com>
2819
2820 * exp_aggr.adb (Convert_To_Assignments): Do not mark node for
2821 delayed expansion if parent type has the Aggregate aspect.
2822 * sem_util.adb (Is_Container_Aggregate): Move...
2823 * sem_util.ads (Is_Container_Aggregate): ... here and make it
2824 public.
2825
28262023-05-29 Piotr Trojanek <trojanek@adacore.com>
2827
2828 * sem_res.adb (Resolve_Entity_Name): Relax rules for Exceptional_Cases.
2829
28302023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2831
2832 * sem_ch4.ads (Unresolved_Operator): New procedure.
2833 * sem_ch4.adb (Has_Possible_Literal_Aspects): Rename into...
2834 (Has_Possible_User_Defined_Literal): ...this. Tidy up.
2835 (Operator_Check): Accept again unresolved operators if they have a
2836 possible user-defined literal as operand. Factor out the handling
2837 of the general error message into...
2838 (Unresolved_Operator): ...this new procedure.
2839 * sem_res.adb (Resolve): Be prepared for unresolved operators on
2840 entry in Ada 2022 or later. If they are still unresolved on exit,
2841 call Unresolved_Operator to give the error message.
2842 (Try_User_Defined_Literal): Tidy up.
2843
28442023-05-29 Steve Baird <baird@adacore.com>
2845
2846 * exp_ch3.adb
2847 (Expand_N_Object_Declaration.Default_Initialize_Object): Add test for
2848 specified Default_Component_Value aspect when deciding whether
2849 either Initialize_Scalars or Normalize_Scalars impacts default
2850 initialization of an array object.
2851
28522023-05-29 Javier Miranda <miranda@adacore.com>
2853
2854 * sem_aggr.adb
2855 (Resolve_Record_Aggregate): For aggregates of derived tagged
2856 record types with discriminants, when collecting components
2857 from ancestors, pass to subprogram Gather_Components the
2858 parent type. Required to report errors on wrong aggregate
2859 components.
2860
28612023-05-29 Piotr Trojanek <trojanek@adacore.com>
2862
2863 * sem_util.adb (Check_Result_And_Post_State): Replace low-level
2864 navigation with a high-level Unique_Entity.
2865
28662023-05-29 Piotr Trojanek <trojanek@adacore.com>
2867
2868 * sem_util.adb (Check_Result_And_Post_State): Properly handle entry
2869 bodies.
2870
28712023-05-29 Piotr Trojanek <trojanek@adacore.com>
2872
2873 * contracts.adb (Fix_Parent): Fir part both for lists and nodes.
2874
28752023-05-29 Arnaud Charlet <charlet@adacore.com>
2876
2877 * sem_ch7.adb: Refine handling of inlining for CCG
2878
28792023-05-29 Eric Botcazou <ebotcazou@adacore.com>
2880
2881 * sem_ch12.adb (Copy_Generic_Node): Test the original node kind
2882 for the sake of consistency. For identifiers and other entity
2883 names and operators, accept an expanded name as associated node.
2884 Replace "or" with "or else" in condtion and fix its formatting.
2885
28862023-05-29 Piotr Trojanek <trojanek@adacore.com>
2887
2888 * sem_util.adb (Check_Result_And_Post_State): Tune message.
2889
28902023-05-29 Piotr Trojanek <trojanek@adacore.com>
2891
2892 * contracts.adb (Remove_Formals): Remove.
2893 (Preanalyze_Condition): Replace Pop_Scope with End_Scope.
2894 * sem_ch13.adb (Build_Discrete_Static_Predicate): Replace
2895 Pop_Scope with End_Scope; enclose Install_Formals within
2896 Push_Scope/End_Scope.
2897
28982023-05-29 Piotr Trojanek <trojanek@adacore.com>
2899
2900 * sem_prag.adb (Analyze_Pre_Post_Condition): Tune error message.
2901
29022023-05-29 Javier Miranda <miranda@adacore.com>
2903
2904 * scans.ads (Inside_Interpolated_String_Expression): New variable.
2905 * par-ch2.adb (P_Interpolated_String_Literal): Set/clear new
2906 variable when parsing interpolated string expressions.
2907 * scng.adb (Set_String): Skip processing operator symbols when we
2908 arescanning an interpolated string literal.
2909
29102023-05-29 Johannes Kliemann <kliemann@adacore.com>
2911
2912 * Makefile.rtl (QNX): Use s-parame__qnx.adb for s-parame.adb.
2913 * libgnat/s-parame__qnx.adb: Add QNX specific version of
2914 System.Parameters.
2915
29162023-05-29 Yannick Moy <moy@adacore.com>
2917
2918 * libgnat/a-ngelfu.ads: Restore SPARK_Mode from context.
2919
29202023-05-29 Marc Poulhiès <poulhies@adacore.com>
2921
2922 * contracts.adb (Restore_Original_Selected_Component): Adjust assertion.
2923
29242023-05-29 Piotr Trojanek <trojanek@adacore.com>
2925
2926 * contracts.adb
2927 (Add_Pre_Post_Condition): Adapt to handle pre/post of an
2928 access-to-subprogram type.
2929 (Analyze_Type_Contract): Analyze pre/post of an
2930 access-to-subprogram.
2931 * contracts.ads
2932 (Analyze_Type_Contract): Adapt comment.
2933 * sem_ch3.adb
2934 (Build_Access_Subprogram_Wrapper): Copy pre/post aspects to
2935 wrapper spec and keep it on the type.
2936 * sem_prag.adb
2937 (Analyze_Pre_Post_Condition): Expect pre/post aspects on
2938 access-to-subprogram and complain if they appear without -gnat2022
2939 switch.
2940 (Analyze_Pre_Post_Condition_In_Decl_Part): Adapt to handle
2941 pre/post on an access-to-subprogram type entity.
2942 * sem_attr.adb (Analyze_Attribute_Old_Result): Likewise.
2943 (Result): Likewise.
2944
6e6bb373
GA
29452023-05-26 Bob Duff <duff@adacore.com>
2946
2947 * sem_ch3.adb
2948 (Build_Derived_Record_Type): Temporarily set the state of the
2949 Derived_Type to "self-hidden" while processing constraints
2950 and discriminants of a record extension.
2951
29522023-05-26 Bob Duff <duff@adacore.com>
2953
2954 * einfo.ads: Add comma.
2955 * contracts.adb: Fix typos.
2956 * exp_attr.adb: Likewise.
2957 * exp_ch5.adb: Likewise.
2958 * exp_ch6.adb: Likewise.
2959 * lib-xref.adb: Likewise.
2960
29612023-05-26 Eric Botcazou <ebotcazou@adacore.com>
2962
2963 * debug.adb (d.N): Document new usage.
2964 * exp_ch4.adb (Expand_N_Type_Conversion): Copy the Float_Truncate
2965 flag when rewriting a floating-point to fixed-point conversion as
2966 a floating-point to integer conversion.
2967 * exp_fixd.adb: Add with and use clauses for Debug.
2968 (Expand_Convert_Fixed_To_Fixed): Generate a truncation in all cases
2969 except if the result is explicitly rounded.
2970 (Expand_Convert_Integer_To_Fixed): Likewise.
2971 (Expand_Convert_Float_To_Fixed): Generate a truncation for all kind
2972 of fixed-point types, except if the result is explicitly rounded, or
2973 -gnatd.N is specified and the type is an ordinary fixed-point type.
2974 * sinfo.ads (Float_Truncate): Document usage for floating-point to
2975 fixed-point conversions.
2976
29772023-05-26 Javier Miranda <miranda@adacore.com>
2978
2979 * exp_ch4.adb
2980 (Expand_N_Allocator): If an allocator with constraints is called
2981 in the return statement of a function returning a general access
2982 type, then propagate to the itype the master of the general
2983 access type (since it is the master associated with the
2984 returned object).
2985
29862023-05-26 Yannick Moy <moy@adacore.com>
2987
2988 * sem_aggr.adb (Resolve_Record_Aggregate): Add dummy initialization and
2989 assertion that clarifies when we reassigned to a useful value.
2990
29912023-05-26 Yannick Moy <moy@adacore.com>
2992
2993 * doc/gnat_rm/gnat_language_extensions.rst: Be more explicit on
2994 pattern matching limitation.
2995 * gnat_rm.texi: Regenerate.
2996 * gnat_ugn.texi: Regenerate.
2997
29982023-05-26 Yannick Moy <moy@adacore.com>
2999
3000 * libgnat/a-calend.ads: Mark with SPARK_Mode=>Off the functions which may
3001 raise Time_Error.
3002 * libgnat/a-ngelfu.ads: Mark with SPARK_Mode=>Off the functions which may
3003 lead to an overflow (which is not the case of Tan with one parameter for
3004 example, or Arctanh or Arcoth, despite their mathematical range covering
3005 the reals).
3006 * libgnat/a-textio.ads: Remove Always_Return annotation from functions, as
3007 this is now compulsory for functions to always return in SPARK.
3008 * libgnat/i-cstrin.ads: Add Might_Not_Return annotation to Update procedure
3009 which may not return.
3010
30112023-05-26 Bob Duff <duff@adacore.com>
3012
3013 * exp_put_image.adb (Build_Image_Call): Treat 'Img the same as
3014 'Image.
3015 * exp_imgv.adb (Expand_Image_Attribute): If Discard_Names, expand
3016 to 'Image instead of 'Img.
3017 * snames.ads-tmpl, par-ch4.adb, sem_attr.adb, sem_attr.ads:
3018 Cleanups: Rename Attribute_Class_Array to be Attribute_Set. Remove
3019 unnecessary qualifications. DRY: Don't repeat "True".
3020
30212023-05-26 Piotr Trojanek <trojanek@adacore.com>
3022
3023 * sem_prag.adb (Record_Possible_Body_Reference): Remove call to Present.
3024 * sem_util.adb (Find_Untagged_Type_Of): Likewise.
3025
30262023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3027
3028 * exp_aggr.adb (Initialize_Array_Component): Remove obsolete code.
3029 (Expand_Array_Aggregate): In the case where a temporary is created
3030 and the parent is an assignment statement with No_Ctrl_Actions set,
3031 set Is_Ignored_Transient on the temporary.
3032
30332023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3034
3035 * sem_ch12.adb (Instantiate_Package_Body): Set the ghost mode to
3036 that of the instance only after loading the generic's parent.
3037 (Instantiate_Subprogram_Body): Likewise.
3038
30392023-05-26 Piotr Trojanek <trojanek@adacore.com>
3040
3041 * exp_ch4.adb (Expand_Set_Membership): Simplify by using Evolve_Or_Else.
3042
30432023-05-26 Piotr Trojanek <trojanek@adacore.com>
3044
3045 * exp_ch4.adb (Is_OK_Object_Reference): Replace loop with a call to
3046 Unqual_Conv; consequently, change object from variable to constant;
3047 replace an IF statement with an AND THEN expression.
3048
30492023-05-26 Piotr Trojanek <trojanek@adacore.com>
3050
3051 * exp_ch9.adb
3052 (Build_Entry_Count_Expression): Remove loop over component declaration;
3053 consequently remove a parameter that is no longer used; adapt callers.
3054 (Make_Task_Create_Call): Refine type of a local variable.
3055
30562023-05-26 Piotr Trojanek <trojanek@adacore.com>
3057
3058 * sem_cat.adb (Check_Non_Static_Default_Expr): Detect components inside
3059 loop, not in the loop condition itself.
3060
30612023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3062
3063 * libgnat/a-cbdlli.ads (List): Move Nodes component to the end.
3064
30652023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3066
3067 * libgnat/a-crdlli.ads (List): Move Nodes component to the end.
3068
30692023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3070
3071 * sem_attr.adb (Is_Thin_Pointer_To_Unc_Array): New predicate.
3072 (Resolve_Attribute): Apply the static matching legality rule to an
3073 Unrestricted_Access attribute applied to an aliased prefix if the
3074 type is a thin pointer. Call Is_Thin_Pointer_To_Unc_Array for the
3075 aliasing legality rule as well.
3076
30772023-05-26 Piotr Trojanek <trojanek@adacore.com>
3078
3079 * sem_util.adb (Is_Null_Record_Definition): Use First_Non_Pragma and
3080 Next_Non_Pragma to ignore pragmas within component list.
3081
30822023-05-26 Piotr Trojanek <trojanek@adacore.com>
3083
3084 * sem_prag.adb (Get_Argument): Improve detection of generic units.
3085
30862023-05-26 Piotr Trojanek <trojanek@adacore.com>
3087
3088 * sem_ch4.adb (Check_Action_OK): Replace low-level test with a
3089 high-level routine.
3090 * sem_ch13.adb (Is_Predicate_Static): Likewise.
3091
30922023-05-26 Javier Miranda <miranda@adacore.com>
3093
3094 * exp_ch9.adb
3095 (Expand_N_Conditional_Entry_Call): Factorize code to avoid
3096 duplicating subtrees; required to avoid problems when the copied
3097 code has implicit labels.
3098 * sem_util.ads (New_Copy_Separate_List): Removed.
3099 (New_Copy_Separate_Tree): Removed.
3100 * sem_util.adb (New_Copy_Separate_List): Removed.
3101 (New_Copy_Separate_Tree): Removed.
3102
31032023-05-26 Piotr Trojanek <trojanek@adacore.com>
3104
3105 * sem_ch13.adb (Check_Component_List): Local variable Compl is now
3106 a constant; a nested block is no longer needed.
3107
31082023-05-26 Piotr Trojanek <trojanek@adacore.com>
3109
3110 * sem_aggr.adb
3111 (Resolve_Record_Aggregate): Remove useless assignment.
3112 * sem_aux.adb
3113 (Has_Variant_Part): Remove useless guard; this routine is only called
3114 on type entities (and now will crash in other cases).
3115 * sem_ch3.adb
3116 (Create_Constrained_Components): Only assign Assoc_List when necessary;
3117 tune whitespace.
3118 (Is_Variant_Record): Refactor repeated calls to Parent.
3119 * sem_util.adb
3120 (Gather_Components): Assert that discriminant association has just one
3121 choice in component_association; refactor repeated calls to Next.
3122 * sem_util.ads
3123 (Gather_Components): Tune whitespace in comment.
3124
31252023-05-26 Piotr Trojanek <trojanek@adacore.com>
3126
3127 * sem_ch3.adb (Check_CPP_Type_Has_No_Defaults): Iterate with
3128 First_Non_Pragma and Next_Non_Pragma.
3129 * exp_dist.adb (Append_Record_Traversal): Likewise.
3130
31312023-05-26 Javier Miranda <miranda@adacore.com>
3132
3133 * exp_ch9.adb (Build_Class_Wide_Master): Remember internal blocks
3134 that have a task master entity declaration.
3135 (Build_Master_Entity): Code cleanup.
3136 * sem_util.ads (Is_Internal_Block): New subprogram.
3137 * sem_util.adb (Is_Internal_Block): New subprogram.
3138
31392023-05-26 Piotr Trojanek <trojanek@adacore.com>
3140
3141 * sem_util.adb (Gather_Components): Remove guard for empty list of
3142 components.
3143
31442023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3145
3146 * back_end.adb (Call_Back_End): Add gigi_standard_address to the
3147 signature of the gigi procedure and alphabetize other parameters.
3148 Pass Standard_Address as actual parameter for it.
3149 * cstand.adb (Create_Standard): Do not set Is_Descendant_Of_Address
3150 on Standard_Address.
3151 * gcc-interface/gigi.h (gigi): Add a standard_address parameter and
3152 alphabetize others.
3153 * gcc-interface/trans.cc (gigi): Likewise. Record a builtin address
3154 type and save it as the type for Standard.Address.
3155
31562023-05-26 Ghjuvan Lacambre <lacambre@adacore.com>
3157
3158 * exp_disp.adb (Expand_Dispatching_Call): Handle new Controlling_Tag.
3159 * sem_scil.adb (Check_SCIL_Node): Treat N_Object_Renaming_Declaration as
3160 N_Object_Declaration.
3161
31622023-05-26 Piotr Trojanek <trojanek@adacore.com>
3163
3164 * exp_aggr.adb
3165 (Build_Constrained_Type): Remove local constants that were shadowing
3166 equivalent global constants; replace a wrapper that calls
3167 Make_Integer_Literal with a numeric literal; remove explicit
3168 Aliased_Present parameter which is equivalent to the default value.
3169 (Check_Bounds): Remove unused initial value.
3170 (Expand_Array_Aggregate): Use aggregate type from the context.
3171
31722023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3173
3174 * einfo.ads (Delay_Cleanups): Document new usage.
3175 * exp_ch7.ads (Build_Finalizer): New declaration.
3176 * exp_ch7.adb (Build_Finalizer.Process_Declarations): Do not treat
3177 library-level package instantiations specially.
3178 (Build_Finalizer): Return early for package bodies and specs that
3179 are not compilation units instead of using a more convoluted test.
3180 (Expand_N_Package_Body): Do not build a finalizer if Delay_Cleanups
3181 is set on the defining entity.
3182 (Expand_N_Package_Declaration): Likewise.
3183 * inline.ads (Pending_Body_Info): Reorder and add Fin_Scop.
3184 (Add_Pending_Instantiation): Add Fin_Scop parameter.
3185 * inline.adb (Add_Pending_Instantiation): Likewise and copy it into
3186 the Pending_Body_Info appended to Pending_Instantiations.
3187 (Add_Scope_To_Clean): Change parameter name to Scop and remove now
3188 irrelevant processing.
3189 (Cleanup_Scopes): Deal with scopes that are package specs or bodies.
3190 (Instantiate_Body): For package instantiations, deal specially with
3191 scopes that are package bodies and with scopes that are dynamic.
3192 Pass the resulting scope to Add_Scope_To_Clean directly.
3193 * sem_ch12.adb (Analyze_Package_Instantiation): In the case where a
3194 body is needed, compute the enclosing finalization scope and pass it
3195 in the call to Add_Pending_Instantiation.
3196 (Inline_Instance_Body): Adjust aggregate passed in the calls to
3197 Instantiate_Package_Body.
3198 (Load_Parent_Of_Generic): Likewise.
3199
32002023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3201
3202 * sem_util.adb (Compile_Time_Constraint_Error): Test the Ekind.
3203
32042023-05-26 Piotr Trojanek <trojanek@adacore.com>
3205
3206 * exp_aggr.adb (Build_Constrained_Type): Use List_Length to count
3207 expressions in consecutive subaggregates.
3208
32092023-05-26 Doug Rupp <rupp@adacore.com>
3210
3211 * libgnarl/s-osinte__qnx.ads (sigset_t): Modify
3212 declaration to use system.os_constants computed
3213 value. Align it.
3214
32152023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3216
3217 * exp_sel.adb: Add clauses for Sem_Util, remove them for Opt, Sinfo
3218 and Sinfo.Nodes.
3219 (Build_K): Always use 'Tag of the object.
3220 (Build_S_Assignment): Likewise.
3221
32222023-05-26 Piotr Trojanek <trojanek@adacore.com>
3223
3224 * accessibility.adb
3225 (Is_Formal_Of_Current_Function): This routine expects an entity
3226 reference and not the entity itself, so its parameter is a Node_Id
3227 and not an Entity_Id.
3228
32292023-05-26 Piotr Trojanek <trojanek@adacore.com>
3230
3231 * exp_aggr.adb
3232 (Build_Array_Aggr_Code): Change variable to constant.
3233 (Check_Same_Aggr_Bounds): Fix style; remove unused initial value.
3234
32352023-05-26 Ronan Desplanques <desplanques@adacore.com>
3236
3237 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Create extra formals
3238 in more situations.
3239
32402023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3241
3242 * checks.adb (Selected_Range_Checks): Add guards to protect calls
3243 to Expr_Value on bounds.
3244
32452023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3246
3247 * sem_eval.ads (Is_Null_Range): Remove requirements of compile-time
3248 known bounds and add WARNING line.
3249 (Not_Null_Range): Remove requirements of compile-time known bounds.
3250 * sem_eval.adb (Is_Null_Range): Fall back to Compile_Time_Compare.
3251 (Not_Null_Range): Likewise.
3252 * fe.h (Is_Null_Range): New predicate.
3253
47c4245b
GA
32542023-05-25 Javier Miranda <miranda@adacore.com>
3255
3256 * sem_aggr.adb
3257 (Warn_On_Null_Component_Association): New subprogram.
3258 (Empty_Range): Adding missing support for iterated component
3259 association node.
3260 (Resolve_Array_Aggregate): Report warning on iterated component
3261 association that may initialize some component of an array of
3262 null-excluding access type components with a null value.
3263 * exp_ch4.adb
3264 (Expand_N_Expression_With_Actions): Add missing type check since
3265 the subtype of the EWA node and the subtype of the expression
3266 may differ.
3267
32682023-05-25 Piotr Trojanek <trojanek@adacore.com>
3269
3270 * sem_util.adb (Determining_Expressions): Fix style; fix layout and
3271 ordering of pragma names; expect pragma Exceptional_Cases.
3272
32732023-05-25 Piotr Trojanek <trojanek@adacore.com>
3274
3275 * einfo-utils.adb (Write_Entity_Info): Use procedural Next_Index.
3276 * sem_aggr.adb (Collect_Aggr_Bounds): Reuse local constant.
3277 (Resolve_Null_Array_Aggregate): Use procedural Next_Index.
3278
32792023-05-25 Javier Miranda <miranda@adacore.com>
3280
3281 * exp_aggr.adb (Build_Record_Aggr_Code): Protect access to
3282 aggregate components when the aggregate is empty.
3283
32842023-05-25 Johannes Kliemann <kliemann@adacore.com>
3285
3286 * libgnat/system-vxworks7-ppc-kernel.ads: Enable
3287 Support_Atomic_Primitives.
3288 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
3289
32902023-05-25 Eric Botcazou <ebotcazou@adacore.com>
3291
3292 * sem_ch3.adb (Find_Type_Of_Object): Copy the object definition when
3293 building the subtype declaration in the case of a spec expression.
3294
32952023-05-25 Tom Tromey <tromey@adacore.com>
3296
3297 * Make-generated.in (ada/stamp-snames): Check result of
3298 gnatmake.
3299
33002023-05-25 Eric Botcazou <ebotcazou@adacore.com>
3301
3302 * cstand.adb (Create_Standard): Set the Is_Descendant_Of_Address
3303 flag on Standard_Address.
3304 * freeze.adb (Freeze_Entity): Copy the modulus of System.Address
3305 onto Standard_Address.
3306
33072023-05-25 Eric Botcazou <ebotcazou@adacore.com>
3308
3309 * libgnat/system-aix.ads (Address): Likewise.
3310 * libgnat/system-darwin-arm.ads (Address): Likewise.
3311 * libgnat/system-darwin-ppc.ads (Address): Likewise.
3312 * libgnat/system-darwin-x86.ads (Address): Likewise.
3313 * libgnat/system-djgpp.ads (Address): Likewise.
3314 * libgnat/system-dragonfly-x86_64.ads (Address): Likewise.
3315 * libgnat/system-freebsd.ads (Address): Likewise.
3316 * libgnat/system-hpux-ia64.ads (Address): Likewise.
3317 * libgnat/system-hpux.ads (Address): Likewise.
3318 * libgnat/system-linux-alpha.ads (Address): Likewise.
3319 * libgnat/system-linux-arm.ads (Address): Likewise.
3320 * libgnat/system-linux-hppa.ads (Address): Likewise.
3321 * libgnat/system-linux-ia64.ads (Address): Likewise.
3322 * libgnat/system-linux-m68k.ads (Address): Likewise.
3323 * libgnat/system-linux-mips.ads (Address): Likewise.
3324 * libgnat/system-linux-ppc.ads (Address): Likewise.
3325 * libgnat/system-linux-riscv.ads (Address): Likewise.
3326 * libgnat/system-linux-s390.ads (Address): Likewise.
3327 * libgnat/system-linux-sh4.ads (Address): Likewise.
3328 * libgnat/system-linux-sparc.ads (Address): Likewise.
3329 * libgnat/system-linux-x86.ads (Address): Likewise.
3330 * libgnat/system-lynxos178-ppc.ads (Address): Likewise.
3331 * libgnat/system-lynxos178-x86.ads (Address): Likewise.
3332 * libgnat/system-mingw.ads (Address): Likewise.
3333 * libgnat/system-qnx-arm.ads (Address): Likewise.
3334 * libgnat/system-rtems.ads (Address): Likewise.
3335 * libgnat/system-solaris-sparc.ads (Address): Likewise.
3336 * libgnat/system-solaris-x86.ads (Address): Likewise.
3337 * libgnat/system-vxworks-ppc-kernel.ads (Address): Likewise.
3338 * libgnat/system-vxworks-ppc-rtp-smp.ads (Address): Likewise.
3339 * libgnat/system-vxworks-ppc-rtp.ads (Address): Likewise.
3340 * libgnat/system-vxworks7-aarch64-rtp-smp.ads (Address): Likewise.
3341 * libgnat/system-vxworks7-aarch64.ads (Address): Likewise.
3342 * libgnat/system-vxworks7-arm-rtp-smp.ads (Address): Likewise.
3343 * libgnat/system-vxworks7-arm.ads (Address): Likewise.
3344 * libgnat/system-vxworks7-ppc-kernel.ads (Address): Likewise.
3345 * libgnat/system-vxworks7-ppc-rtp-smp.ads (Address): Likewise.
3346 * libgnat/system-vxworks7-ppc64-kernel.ads (Address): Likewise.
3347 * libgnat/system-vxworks7-ppc64-rtp-smp.ads (Address): Likewise.
3348 * libgnat/system-vxworks7-x86-kernel.ads (Address): Likewise.
3349 * libgnat/system-vxworks7-x86-rtp-smp.ads (Address): Likewise.
3350 * libgnat/system-vxworks7-x86_64-kernel.ads (Address): Likewise.
3351 * libgnat/system-vxworks7-x86_64-rtp-smp.ads (Address): Likewise.
3352
33532023-05-25 Marc Poulhiès <poulhies@adacore.com>
3354
3355 * sem_ch13.adb (Check_Aspect_At_Freeze_Point): fix format string,
3356 use existing local Ident.
3357
33582023-05-25 Bob Duff <duff@adacore.com>
3359
3360 * atree.adb (Check_Vanishing_Fields): Fix bug in the "blah type
3361 only" cases. Remove the special cases for E_Void. Misc cleanup.
3362 (Mutate_Nkind): Disallow mutating to the same kind.
3363 (Mutate_Ekind): Disallow mutating to E_Void.
3364 (From E_Void is still OK -- entities start out as E_Void by
3365 default.) Fix bug in statistics gathering -- was setting the wrong
3366 count. Enable Check_Vanishing_Fields for entities.
3367 * sem_ch8.adb (Is_Self_Hidden): New function.
3368 (Find_Direct_Name): Call Is_Self_Hidden to use the new
3369 Is_Not_Self_Hidden flag to determine whether a declaration is
3370 hidden from all visibility by itself. This replaces the old method
3371 of checking E_Void.
3372 (Find_Expanded_Name): Likewise.
3373 (Find_Selected_Component): Likewise.
3374 * sem_util.adb (Enter_Name): Remove setting of Ekind to E_Void.
3375 * sem_ch3.adb: Set the Is_Not_Self_Hidden flag in appropriate
3376 places. Comment fixes.
3377 (Inherit_Component): Remove setting of Ekind to E_Void.
3378 * sem_ch9.adb
3379 (Analyze_Protected_Type_Declaration): Update comment. Skip Itypes,
3380 which should not be turned into components.
3381 * atree.ads (Mutate_Nkind): Document error case.
3382 (Mutate_Ekind): Remove comments apologizing for E_Void mutations.
3383 Document error cases.
3384
33852023-05-25 Eric Botcazou <ebotcazou@adacore.com>
3386
3387 * libgnat/a-ststio.adb (Set_Mode): Test System.Memory_Size.
3388 * libgnat/g-debuti.ads (Address_64): Likewise.
3389 * libgnat/i-c.ads: Add with clause for System.
3390 (ptrdiff_t): Define based on the size of memory space.
3391 (size_t): Likewise.
3392 * libgnat/s-crtl.ads (size_t): Likewise.
3393 (ssize_t): Likewise.
3394 * libgnat/s-memory.ads (size_t): Likewise.
3395 * libgnat/s-parame.ads (Size_Type): Likewise.
3396 * libgnat/s-parame__hpux.ads (Size_Type): Likewise.
3397 * libgnat/s-parame__posix2008.ads (Size_Type): Likewise.
3398 * libgnat/s-parame__vxworks.ads (Size_Type): Likewise.
3399 * libgnat/s-putima.adb (Signed_Address): Likewise.
3400 (Unsigned_Address): Likewise.
3401 * libgnat/s-stoele.ads (Storage_Offset): Likewise.
3402
34032023-05-25 Piotr Trojanek <trojanek@adacore.com>
3404
3405 * sem_util.adb (Visit_Node): Decrement EWA_Level with the same condition
3406 as when it was incremented.
3407
34082023-05-25 Piotr Trojanek <trojanek@adacore.com>
3409
3410 * sem_util.ads (New_Copy_Tree): Remove Scopes_In_EWA_OK from spec;
3411 adapt comment.
3412 * sem_util.adb (New_Copy_Tree): Remove Scopes_In_EWA_OK from body;
3413 adapt code.
3414
34152023-05-25 Piotr Trojanek <trojanek@adacore.com>
3416
3417 * sem_util.adb (Update_New_Entities): Remove redundant check for entity
3418 map being present.
3419
34202023-05-25 Piotr Trojanek <trojanek@adacore.com>
3421
3422 * atree.adb (Copy_List): Call Copy_Separate_Tree for both entities and
3423 other nodes.
3424
34252023-05-25 Steve Baird <baird@adacore.com>
3426
3427 * exp_attr.adb
3428 (Cached_Streaming_Ops): A new package, providing maps to save
3429 previously-generated Read/Write/Input/Output procedures.
3430 (Expand_N_Attribute_Reference): When a new subprogram is generated
3431 for a Read/Write/Input/Output attribute reference, record that
3432 type/subp pair in the appropriate Cached_Streaming_Ops map.
3433 (Find_Stream_Subprogram): Check the appropriate
3434 Cached_Streaming_Ops map to see if an appropriate subprogram has
3435 already been generated. If so, then return it. The appropriateness
3436 test includes a call to a new nested subprogram,
3437 In_Available_Context.
3438 * exp_strm.ads, exp_strm.adb: Do not pass in a Loc parameter (or a
3439 source-location-bearing Nod parameter) to the 16 procedures
3440 provided for building streaming-related subprograms. Use the
3441 source location of the type instead.
3442 * exp_dist.adb, exp_ch3.adb: Adapt to Exp_Strm spec changes. For
3443 these calls the source location of the type was already being
3444 used.
3445
34462023-05-25 Marc Poulhiès <poulhies@adacore.com>
3447
3448 * sem_ch6.adb (Analyze_Function_Return): Add missing
3449 Is_Access_Type check before accessing the Designated_Type field.
3450
34512023-05-25 Piotr Trojanek <trojanek@adacore.com>
3452
3453 * sem_ch6.adb (Analyze_Return_Type): Remove unused initial value.
3454
34552023-05-25 Marc Poulhiès <poulhies@adacore.com>
3456
3457 * sem_ch13.adb (Analyze_One_Aspect): Call Record_Rep_Item.
3458 (Check_Aspect_At_Freeze_Point): Check the aspect is specified on
3459 non-array type only...
3460 (Analyze_One_Aspect): ... instead of doing it too early here.
3461 * sem_aggr.adb (Resolve_Container_Aggregate): Do nothing in case
3462 the parameters failed to resolve.
3463
34642023-05-25 Piotr Trojanek <trojanek@adacore.com>
3465
3466 * sem_util.adb (Check_Internal_Protected_Use): Add standard protection
3467 against search going too far.
3468
34692023-05-25 Piotr Trojanek <trojanek@adacore.com>
3470
3471 * contracts.adb
3472 (Add_Pre_Post_Condition): Mention new aspects in the comment.
3473 * contracts.ads
3474 (Add_Contract_Item): Likewise.
3475 (Analyze_Subprogram_Body_Stub_Contract): Likewise.
3476 * sem_prag.adb
3477 (Contract_Freeze_Error): Likewise.
3478 (Ensure_Aggregate_Form): Likewise.
3479 * sem_prag.ads
3480 (Find_Related_Declaration_Or_Body): Likewise.
3481 * sinfo.ads
3482 (Is_Generic_Contract_Pragma): Likewise.
3483
34842023-05-25 Piotr Trojanek <trojanek@adacore.com>
3485
3486 * aspects.ads
3487 (Implementation_Defined_Aspect): Recently added aspects are
3488 implementation-defined, just like Contract_Cases.
3489 * sem_prag.ads
3490 (Aspect_Specifying_Pragma): Recently added aspects have corresponding
3491 pragmas, just like Contract_Cases.
3492 (Pragma_Significant_To_Subprograms): Recently added aspects are
3493 significant to subprograms, just like Contract_Cases.
3494
34952023-05-25 Piotr Trojanek <trojanek@adacore.com>
3496
3497 * sem_res.adb (Resolve_Entity_Name): Tune handling of formal parameters
3498 in contract Exceptional_Cases.
3499
35002023-05-25 Piotr Trojanek <trojanek@adacore.com>
3501
3502 * par-ch7.adb (P_Package): Remove redundant guard from call to
3503 Move_Aspects.
3504 * par-ch9.adb (P_Task): Likewise.
3505 * sem_ch6.adb (Analyze_Expression_Function, Is_Inline_Pragma): Likewise.
3506
35072023-05-25 Eric Botcazou <ebotcazou@adacore.com>
3508
3509 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Use Get_Actual_Subtype
3510 to retrieve the actual subtype for all actuals and do it in only one
3511 place for all unconstrained composite formal types.
3512
35132023-05-25 Piotr Trojanek <trojanek@adacore.com>
3514
3515 * sem_prag.adb (Analyze_Pragma): Fix references to Exceptional_Cases in
3516 code copied from handling of Subprogram_Variant.
3517
35182023-05-25 Ronan Desplanques <desplanques@adacore.com>
3519
3520 * sem_ch3.adb (Replace_Type): Add more documentation.
3521
35222023-05-25 Ronan Desplanques <desplanques@adacore.com>
3523
3524 * sem_ch3.adb (Replace_Type): Use existing constant wherever
3525 possible.
3526
35272023-05-25 Ronan Desplanques <desplanques@adacore.com>
3528
3529 * sem_ch3.adb (Replace_Type): Reduce span of variable.
3530
35312023-05-25 Bob Duff <duff@adacore.com>
3532
3533 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Set the flag
3534 for protected types.
3535 (Analyze_Single_Protected_Declaration): Likewise, for singleton
3536 protected objects.
3537 (Analyze_Task_Type_Declaration): Set the flag for task types.
3538 (Analyze_Single_Task_Declaration): Likewise, for singleton task
3539 objects.
3540 * sem_ch10.adb (Decorate_Type): Set the flag for types treated as
3541 incomplete.
3542 (Build_Shadow_Entity): Set the flag for shadow entities.
3543 (Decorate_State): Set the flag for an abstract state.
3544 (Build_Limited_Views): Set the flag for limited view of package.
3545 * sem_attr.adb (Check_Not_Incomplete_Type): Disable the check when
3546 this is a current instance.
3547
35482023-05-25 Ronan Desplanques <desplanques@adacore.com>
3549
3550 * freeze.adb (Build_DTW_Body): Add appropriate type conversions for
3551 controlling access parameters.
3552 * sem_util.adb (Build_Overriding_Spec): Fix designated types in
3553 controlling access parameters.
3554
35552023-05-25 Bob Duff <duff@adacore.com>
3556
3557 * gen_il-gen-gen_entities.adb (E_Label): Add
3558 Entry_Cancel_Parameter. This is necessary because
3559 Analyze_Implicit_Label_Declaration set the Ekind to E_Label.
3560 Without this change, this field would fail the vanishing-fields
3561 check in Atree (which is currently commented out).
3562 * einfo.ads (Entry_Cancel_Parameter): Document for E_Label.
3563 * sem_eval.adb (Why_Not_Static): Protect against previous errors
3564 (no need to explain why something is not static if it's already
3565 illegal for other reasons).
3566 * sem_util.ads (Enter_Name): Fix misleading comment.
3567
35682023-05-25 Eric Botcazou <ebotcazou@adacore.com>
3569
3570 * einfo.ads (Scope_Depth): Fix circular definition.
3571 (Scope_Depth_Value): Fix value for library units.
3572
35732023-05-25 Piotr Trojanek <trojanek@adacore.com>
3574
3575 * sem_ch11.adb (Analyze_Raise_Expression): Tune warning condition.
3576 * libgnat/g-dirope.ads (Open): Remove a potentially inaccurate comment.
3577 * libgnat/g-dirope.adb (Open): Remove a potentially useless assignment;
3578 the Dir output parameter should be assigned a null value anyway by the
3579 preceding call to Free.
3580
35812023-05-25 Piotr Trojanek <trojanek@adacore.com>
3582
3583 * sem_res.adb (Resolve_Entity_Name): Allow aliased parameters; tune
3584 error message.
3585
35862023-05-25 Marc Poulhiès <poulhies@adacore.com>
3587
3588 * sem_ch13.adb (Analyze_One_Aspect): Mark Aggregate aspect as
3589 needing delayed resolution and reject the aspect on non-array
3590 type.
3591
35922023-05-25 Bob Duff <duff@adacore.com>
3593
3594 * sinfo-utils.adb: Update comment to refer to
3595 New_Node_Debugging_Output.
3596
35972023-05-25 Marc Poulhiès <poulhies@adacore.com>
3598
3599 * rtsfind.adb (Load_RTU.Restore_SPARK_Context): New.
3600 (Load_RTU): Use Restore_SPARK_Context on all exit paths.
3601 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Initialize local
3602 variable to Empty.
3603
36042023-05-25 Piotr Trojanek <trojanek@adacore.com>
3605
3606 * sem_attr.adb
3607 (Analyze_Attribute_Old_Result): Allow uses of 'Old and 'Result within
3608 the new aspect.
3609 * sem_res.adb
3610 (Within_Exceptional_Cases_Consequence): New utility routine.
3611 (Resolve_Entity_Name): Restrict use of formal parameters within the
3612 new aspect.
3613
03c7c418
GA
36142023-05-23 Piotr Trojanek <trojanek@adacore.com>
3615
3616 * aspects.ads
3617 (Aspect_Id): Add aspect identifier.
3618 (Aspect_Argument): New aspect accepts an expression.
3619 (Is_Representation_Aspect): New aspect is not a representation
3620 aspect.
3621 (Aspect_Names): Associate name with the new aspect identifier.
3622 (Aspect_Delay): New aspect is never delayed.
3623 * contracts.adb
3624 (Add_Contract_Item): Store new aspect among contract items.
3625 (Analyze_Entry_Or_Subprogram_Contract): Likewise.
3626 (Analyze_Subprogram_Body_Stub_Contract): Likewise.
3627 (Process_Contract_Cases): Expand new aspect, if present.
3628 * contracts.ads
3629 (Analyze_Entry_Or_Subprogram_Body_Contract): Mention new aspect in
3630 spec.
3631 (Analyze_Entry_Or_Subprogram_Contract): Likewise.
3632 * einfo-utils.adb
3633 (Get_Pragma): Allow new aspect to be picked by the backend.
3634 * einfo-utils.ads
3635 (Get_Pragma): Mention new aspect in spec.
3636 * exp_prag.adb
3637 (Expand_Pragma_Exceptional_Cases): Dummy expansion routine.
3638 * exp_prag.ads
3639 (Expand_Pragma_Exceptional_Cases): Add spec for expansion routine.
3640 * inline.adb
3641 (Remove_Aspects_And_Pragmas): Remove aspect from bodies to inline.
3642 * par-prag.adb
3643 (Par.Prag): Accept pragma in the parser, so it will be checked
3644 later.
3645 * sem_ch12.adb
3646 (Implementation of Generic Contracts): Mention new aspect in
3647 comment.
3648 * sem_ch13.adb
3649 (Analyze_Aspect_Specifications): Transform new aspect info a
3650 corresponding pragma.
3651 * sem_prag.adb
3652 (Analyze_Exceptional_Cases_In_Decl_Part): Analyze aspect
3653 expression; heavily inspired by the existing code for analysis of
3654 Subprogram_Variant and exception handlers.
3655 (Analyze_Pragma): Analyze pragma corresponding to the new aspect.
3656 (Is_Non_Significant_Pragma_Reference): Add new pragma to the
3657 table.
3658 * sem_prag.ads
3659 (Assertion_Expression_Pragma): New pragma acts as an assertion
3660 expression, even though it is not currently expanded.
3661 (Analyze_Exceptional_Cases_In_Decl_Part): Add spec.
3662 * sem_util.adb
3663 (Is_Subprogram_Contract_Annotation): Mark new annotation is a
3664 subprogram contract, so the subprogram with it won't be inlined.
3665 * sem_util.ads
3666 (Is_Subprogram_Contract_Annotation): Mention new aspect in
3667 comment.
3668 * sinfo.ads
3669 (Contract_Test_Cases): Mention new aspect in comment.
3670 * snames.ads-tmpl: Add entries for the new name and pragma.
3671
36722023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3673
3674 * sem_ch13.adb (Build_Predicate_Functions): If the current scope
3675 is not that of the type, push this scope and pop it at the end.
3676 * sem_util.ads (Current_Scope_No_Loops_No_Blocks): Delete.
3677 * sem_util.adb (Current_Scope_No_Loops_No_Blocks): Likewise.
3678 (Set_Public_Status): Call again Current_Scope.
3679
36802023-05-23 Gary Dismukes <dismukes@adacore.com>
3681
3682 * exp_ch6.adb (Might_Have_Tasks): Remove unneeded Etype call from
3683 call to Is_Limited_Record, since that flag is now properly
3684 inherited by class-wide types.
3685 * sem_ch3.adb (Analyze_Private_Extension_Declaration): Remove call
3686 to Make_Class_Wide_Type, which is done too early, and will later
3687 be done in Build_Derived_Record_Type after flags such as
3688 Is_Limited_Record and Is_Controlled_Active have been set on the
3689 derived type.
3690
36912023-05-23 Patrick Bernardi <bernardi@adacore.com>
3692
3693 * libgnat/s-stchop.adb (Stack_Check): Remove redundant parentheses.
3694
36952023-05-23 Piotr Trojanek <trojanek@adacore.com>
3696
3697 * freeze.adb (Freeze_Record_Type): Add tag for redundant pragma Pack.
3698 * sem_aggr.adb (Resolve_Record_Aggregate): Add tag for redundant OTHERS
3699 choice.
3700 * sem_ch8.adb (Use_One_Type): Add tag for redundant USE clauses.
3701
37022023-05-23 Piotr Trojanek <trojanek@adacore.com>
3703
3704 * sem_ch11.adb
3705 (Check_Duplication): Fix inconsistent iteration.
3706 (Others_Present): Iterate over handlers using First_Non_Pragma and
3707 Next_Non_Pragma just like in Check_Duplication.
3708
37092023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3710
3711 * einfo.ads (Delay_Subprogram_Descriptors): Delete.
3712 * gen_il-fields.ads (Opt_Field_Enum): Remove
3713 Delay_Subprogram_Descriptors.
3714 * gen_il-gen-gen_entities.adb (Gen_Entities): Likewise.
3715 * gen_il-gen-gen_nodes.adb (N_Entry_Body): Add Corresponding_Spec.
3716 * sinfo.ads (Corresponding_Spec): Document new use.
3717 (N_Entry_Body): Likewise.
3718 * exp_ch6.adb (Expand_Protected_Object_Reference): Be prepared for
3719 protected subprograms that have been expanded.
3720 * exp_ch7.adb (Expand_Cleanup_Actions): Remove unreachable code.
3721 * exp_ch9.adb (Build_Protected_Entry): Add a local variable for the
3722 new block and propagate Uses_Sec_Stack from the corresponding spec.
3723 (Expand_N_Protected_Body) <N_Subprogram_Body>: Unconditionally reset
3724 the scopes of top-level entities in the new body.
3725 * inline.adb (Cleanup_Scopes): Do not adjust the scope on the fly.
3726 * sem_ch9.adb (Analyze_Entry_Body): Set Corresponding_Spec.
3727 * sem_ch12.adb (Analyze_Package_Instantiation): Remove obsolete code
3728 setting Delay_Subprogram_Descriptors and tidy up.
3729 * sem_util.adb (Scope_Within): Deal with protected subprograms that
3730 have been expanded.
3731 (Scope_Within_Or_Same): Likewise.
3732
37332023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3734
3735 * libgnarl/s-taskin.ads (Atomic_Address): Delete.
3736 (Attribute_Array): Add pragma Atomic_Components.
3737 (Ada_Task_Control_Block): Adjust default value of Attributes.
3738 * libgnarl/s-tasini.adb (Finalize_Attributes): Adjust type of local
3739 variable.
3740 * libgnarl/s-tataat.ads (Deallocator): Adjust type of parameter.
3741 (To_Attribute): Adjust source type.
3742 * libgnarl/a-tasatt.adb: Add clauses for System.Storage_Elements.
3743 (New_Attribute): Adjust return type.
3744 (Deallocate): Adjust type of parameter.
3745 (To_Real_Attribute): Adjust source type.
3746 (To_Address): Add target type.
3747 (To_Attribute): Adjust source type.
3748 (Fast_Path): Adjust tested type.
3749 (Finalize): Compare with Null_Address.
3750 (Reference): Likewise.
3751 (Reinitialize): Likewise.
3752 (Set_Value): Likewise. Add conversion to Integer_Address.
3753 (Value): Likewise.
3754
37552023-05-23 Raphael Amiard <amiard@adacore.com>
3756
3757 * scng.adb (Scan): Replace occurrences of All_Extensions_Allowed
3758 by Core_Extensions_Allowed.
3759
37602023-05-23 Claire Dross <dross@adacore.com>
3761
3762 * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Use new helpers.
3763 * libgnat/s-vauspe.ads (Raw_Unsigned_Starts_As_Based_Ghost,
3764 Raw_Unsigned_Is_Based_Ghost): New ghost helper functions.
3765 (Is_Raw_Unsigned_Format_Ghost, Scan_Split_No_Overflow_Ghost,
3766 Scan_Split_Value_Ghost, Raw_Unsigned_Last_Ghost): Use new
3767 helpers.
3768
37692023-05-23 Arnaud Charlet <charlet@adacore.com>
3770
3771 * par-ch5.adb, style.ads, styleg.adb, styleg.ads
3772 (Check_Xtra_Parens): Remove extra parameter Enable.
3773 (Check_Xtra_Parens_Precedence): New.
3774 (P_Case_Statement): Add -gnatyx style check.
3775 * sem_ch4.adb: Replace calls to Check_Xtra_Parens by
3776 Check_Xtra_Parens_Precedence.
3777 * stylesw.ads, stylesw.adb, usage.adb: Add support for
3778 -gnatyz.
3779 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
3780 Update -gnatyxzg doc.
3781 * sem_prag.adb, libgnat/s-regpat.adb,
3782 libgnarl/s-interr__hwint.adb, libgnarl/s-interr__vxworks.adb:
3783 Remove extra parens.
3784 * par-ch3.adb (P_Discrete_Range): Do not emit a style check if
3785 the expression is not a simple expression.
3786 * gnat_ugn.texi: Regenerate.
3787
37882023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3789
3790 * libgnat/s-dwalin.adb (Enable_Cache): Use the subtract operator of
3791 System.Storage_Elements to compute the offset.
3792 (Symbolic_Address): Likewise.
3793
37942023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3795
3796 * sem_res.adb (Resolve_Intrinsic_Operator): Always perform the same
3797 resolution for the special mod operator of System.Storage_Elements.
3798
37992023-05-23 Raphael Amiard <amiard@adacore.com>
3800
3801 * doc/gnat_rm.rst, doc/gnat_rm/gnat_language_extensions.rst,
3802 doc/gnat_rm/implementation_defined_pragmas.rst:
3803 * gnat_rm.texi: Regenerate.
3804
38052023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3806
3807 * exp_ch4.adb (Expand_N_Op_Mod): Adjust the detection of the special
3808 operator of System.Storage_Elements. Do not rewrite it into a rem.
3809 * sem_res.adb (Resolve_Intrinsic_Operator): Use the base type of the
3810 left operand for the special mod operator of System.Storage_Elements
3811
38122023-05-23 Vadim Godunko <godunko@adacore.com>
3813
3814 * libgnat/a-coinho__shared.adb (Constant_Reference): Remove call
3815 of Detach
3816 (Query_Element): Likewise.
3817
38182023-05-23 Ronan Desplanques <desplanques@adacore.com>
3819
3820 * sem_disp.adb: Fix reference to Ada issue in comment.
3821
38222023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3823
3824 * exp_disp.adb (Expand_Dispatching_Call): In the abstract interface
3825 class-wide case, use 'Tag of the object as the controlling tag.
3826 (Expand_Interface_Thunk): Perform address arithmetic using operators
3827 of System.Storage_Elements.
3828
38292023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3830
3831 * libgnat/i-cpoint.adb: Add clauses for System.Storage_Elements.
3832 (Addr): Delete.
3833 (Offset): New subtype of Storage_Offset.
3834 (To_Offset): New instance of Unchecked_Conversion.
3835 (To_Pointer): Adjust.
3836 (To_Addr): Likewise.
3837 (To_Ptrdiff): Likewise.
3838 ("+"): Call To_Offset on the offset.
3839 ("-"): Likewise.
3840 * libgnat/s-bituti.adb: Add clauses for System.Storage_Elements.
3841 (Val_Bytes): Change type to Storage_Count.
3842 (Get_Val_2): Add qualification to second operand of mod operator.
3843 (Set_Val_2): Likewise.
3844 (Copy_Bitfield): Likewise. Change type of Src_Adjust & Dest_Adjust.
3845 * libgnat/s-stratt.ads (Thin_Pointer): Change to subtype of Address.
3846 * libgnat/s-statxd.adb (I_AD): Adjust.
3847 (I_AS): Likewise.
3848 (W_AS): Likewise.
3849
38502023-05-23 Steve Baird <baird@adacore.com>
3851
3852 * sem_util.adb
3853 (Is_Variable): Correctly return False for a selected component
3854 name of the form Some_Object.Some_Discriminant, even if
3855 Some_Object is a variable. We don't want to allow such a name as
3856 an actual parameter in a call if the corresponding formal
3857 parameter's mode is not "in".
3858
38592023-05-23 Yannick Moy <moy@adacore.com>
3860
3861 * sem_util.adb (Check_Node): Add default init on local Id.
3862
38632023-05-23 Yannick Moy <moy@adacore.com>
3864
3865 * libgnat/i-c.adb (To_Ada): Add loop invariant.
3866
38672023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3868
3869 * exp_ch4.adb (Expand_N_Op_Mod): Deal with the special mod
3870 operator of System.Storage_Elements.
3871 * exp_intr.adb (Expand_To_Integer): New procedure.
3872 (Expand_Intrinsic_Call): Call Expand_To_Integer appropriately.
3873 (Expand_To_Address): Deal with an argument with modular type.
3874 * sem_ch3.adb (Derive_Subprogram): Also set convention Intrinsic
3875 on a derived intrinsic subprogram.
3876 * sem_res.adb (Resolve_Arithmetic_Op): Deal with intrinsic
3877 operators not coming from source exactly as those coming from
3878 source and also generate a reference in both cases.
3879 (Resolve_Op_Expon): Likewise.
3880 (Resolve_Intrinsic_Operator): Call Implementation_Base_Type to get
3881 a nonprivate base type.
3882 * snames.ads-tmpl (Name_To_Integer): New intrinsic name.
3883 * libgnat/s-stoele.ads: Replace pragma Convention with pragma
3884 Import throughout and remove pragma Inline_Always and
3885 Pure_Function.
3886 * libgnat/s-stoele.adb: Replace entire contents with pragma
3887 No_Body.
3888 * libgnat/s-atacco.adb: Adjust comment about pragma No_Body.
3889
38902023-05-23 Javier Miranda <miranda@adacore.com>
3891
3892 * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove
3893 call to preanalyze class-wide conditions since here it is too
3894 early; they must be preanalyzed when full views of private types
3895 have been analyzed.
3896 * sem_ch7.adb (Analyze_Package_Specification): Preanalyze
3897 class-wide conditions of dispatching primitives defined in nested
3898 packages.
3899
39002023-05-23 Piotr Trojanek <trojanek@adacore.com>
3901
3902 * errout.adb (Last_Sloc): Refactor a heavily repeated "S := S + 1"
3903 statement into a subprogram; replace assertions with defensive code;
3904 fix few more off-by-one errors.
3905
39062023-05-23 Ronan Desplanques <desplanques@adacore.com>
3907
3908 * einfo.ads: Mention full name of LSP.
3909
39102023-05-23 Piotr Trojanek <trojanek@adacore.com>
3911
3912 * errout.adb (Last_Sloc): Rewrite skipping past numeric literals.
3913
39142023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3915
3916 * sem_ch13.adb (Build_Predicate_Function_Declaration): Adjust the
3917 commentary to the current implementation.
3918 * sem_util.ads (Current_Scope_No_Loops): Move around.
3919 (Current_Scope_No_Loops_No_Blocks): New declaration.
3920 (Add_Block_Identifier): Fix formatting.
3921 * sem_util.adb (Add_Block_Identifier): Likewise.
3922 (Current_Scope_No_Loops_No_Blocks): New function.
3923 (Set_Public_Status): Call Current_Scope_No_Loops_No_Blocks instead
3924 of Current_Scope to get the current scope.
3925
39262023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3927
3928 * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do not
3929 manually generate a predicate check. Call Unqualify before doing
3930 pattern matching on the expression.
3931 * sem_ch3.adb (Analyze_Object_Declaration): Also freeze the actual
3932 subtype when it is built in the definite case.
3933
39342023-05-23 Piotr Trojanek <trojanek@adacore.com>
3935
3936 * libgnarl/s-interr.adb
3937 (Registered_Handler): Remove default expression.
3938 (Registered_Handlers): Switch to singly-linked list.
3939 (Bind_Interrupt_To_Entry): Sync whitespace with other unit variants.
3940 (Is_Registered): Use singly-linked list.
3941 (Register_Interrupt_Handler): Use singly-linked list and initialized
3942 allocator; sync assertion with other unit variants.
3943 * libgnarl/s-interr__sigaction.adb: Likewise.
3944 * libgnarl/s-interr__vxworks.adb: Likewise.
3945 * libgnarl/s-interr__hwint.adb: Likewise.
3946 (Is_Registered): Remove repeated declaration.
3947
39482023-05-23 Piotr Trojanek <trojanek@adacore.com>
3949
3950 * pprint.adb (Expression_Image): Restore some of the old pretty-printing
3951 for CodePeer.
3952
39532023-05-23 Piotr Trojanek <trojanek@adacore.com>
3954
3955 * errout.adb (First_And_Last_Nodes): Ignore accessibility parameters.
3956
39572023-05-23 Piotr Trojanek <trojanek@adacore.com>
3958
3959 * exp_ch4.adb (Expand_N_Op_Ne): Simply don't add extra parens.
3960
39612023-05-23 Piotr Trojanek <trojanek@adacore.com>
3962
3963 * pprint.adb (Expression_Image): Move Count_Parentheses and
3964 Fix_Parentheses routines from GNATprove and apply them before
3965 returning the slice of a source code buffer.
3966
39672023-05-23 Piotr Trojanek <trojanek@adacore.com>
3968
3969 * errout.adb
3970 (Paren_Required): New subsidiary routine for better handling of
3971 parentheses in First_Node/Last_Node.
3972 (First_Sloc, Last_Sloc): Use Get_Source_File_Index to correctly
3973 handle generic instances and inlined subprograms; tune handling of
3974 parentheses; improve handling of literals.
3975 * pprint.adb (Expression_Image): Simplify using
3976 First_Sloc/Last_Sloc.
3977 * sem_ch6.adb (Analyze_Expression_Function): Remove parenthesis
3978 when relocating expression from expression function to simple
3979 return statement.
3980
39812023-05-23 Piotr Trojanek <trojanek@adacore.com>
3982
3983 * exp_prag.adb (Expand_Pragma_Check): Suppress warning for checks of
3984 subprogram variants.
3985
39862023-05-23 Eric Botcazou <ebotcazou@adacore.com>
3987
3988 * frontend.adb (Frontend): Merge two conditional blocks and adjust.
3989
39902023-05-23 Piotr Trojanek <trojanek@adacore.com>
3991
3992 * libgnat/s-mmap.adb (Mapped_Region_Record): Fix typo in comment.
3993
39942023-05-23 Ronan Desplanques <desplanques@adacore.com>
3995
3996 * sem_ch7.adb: Remove duplicate comment.
3997
39982023-05-23 Javier Miranda <miranda@adacore.com>
3999
4000 * sem_ch10.adb
4001 (Analyze_Required_Limited_With_Units): New subprogram.
4002 (Depends_On_Limited_Views): New subprogram.
4003 (Has_Limited_With_Clauses): New subprogram.
4004 (Analyze_Compilation_Unit): Call the new subprogram that performs
4005 the full analysis of required limited-with units.
4006
c5300bf3
GA
40072023-05-22 Ronan Desplanques <desplanques@adacore.com>
4008
4009 * cstand.adb: Use more idiomatic procedure.
4010
40112023-05-22 Piotr Trojanek <trojanek@adacore.com>
4012
4013 * errout.adb (First_Loc): Avoid repeated calls.
4014 (Last_Loc): Likewise.
4015
40162023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4017
4018 * inline.adb (Cleanup_Scopes): Do not propagate the Uses_Sec_Stack
4019 flag from original to rewritten protected subprograms here...
4020 * exp_ch9.adb (Expand_N_Protected_Body) <N_Subprogram_Body>:
4021 ...but here instead. Add local variables and remove a useless
4022 test.
4023
40242023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4025
4026 * exp_ch7.adb (Expand_N_Package_Body): Call Defining_Entity to get
4027 the entity of the body.
4028
40292023-05-22 Piotr Trojanek <trojanek@adacore.com>
4030
4031 * exp_attr.adb (Expand_Loop_Entry_Attribute): Use location of the
4032 attribute reference, not of the loop statement.
4033
40342023-05-22 Ronan Desplanques <desplanques@adacore.com>
4035
4036 * par-ch3.adb: Add missing word in comment.
4037
40382023-05-22 Justin Squirek <squirek@adacore.com>
4039
4040 * checks.adb (Install_Null_Excluding_Check): Avoid non-null
4041 optimizations when assertions are enabled.
4042
40432023-05-22 Marc Poulhiès <poulhies@adacore.com>
4044
4045 * exp_aggr.adb (Process_Transient_Component): Reset Analyzed flag
4046 for the copy of the initialization expression.
4047 * sem_attr.adb (Validate_Non_Static_Attribute_Function_Call): Skip
4048 error emission during Pre_Analyze.
4049
40502023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4051
4052 * exp_ch7.adb (Process_Package_Body): New procedure taken from...
4053 (Build_Finalizer.Process_Declarations): ...here. Call the above
4054 procedure to deal with both package bodies and package body stubs.
4055
40562023-05-22 Ronan Desplanques <desplanques@adacore.com>
4057
4058 * atree.ads: Remove outdated part of comment.
4059
40602023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4061
4062 * exp_ch7.adb (Build_Finalizer): Reverse the test comparing the
4063 instantiation and declaration nodes of a package instance, and
4064 therefore bail out only when they are equal. Adjust comments.
4065 (Expand_N_Package_Declaration): Do not clear the Finalizer field.
4066 * lib-writ.adb: Add with and use clauses for Sem_Util.
4067 (Write_Unit_Information): Look at unit nodes to find finalizers.
4068 * sem_ch12.adb (Analyze_Package_Instantiation): Beef up the comment
4069 about the rewriting of the instantiation node into a declaration.
4070
40712023-05-22 Bob Duff <duff@adacore.com>
4072
4073 * cstand.adb (Is_Past_Self_Hiding_Point): Rename to be
4074 Is_Not_Self_Hidden.
4075 * einfo.ads: Likewise.
4076 * exp_aggr.adb: Likewise.
4077 * gen_il-fields.ads: Likewise.
4078 * gen_il-gen-gen_entities.adb: Likewise.
4079 * sem.adb: Likewise.
4080 * sem_aggr.adb: Likewise.
4081 * sem_ch11.adb: Likewise.
4082 * sem_ch12.adb: Likewise.
4083 * sem_ch5.adb: Likewise.
4084 * sem_ch6.adb: Likewise.
4085 * sem_ch7.adb: Likewise.
4086 * sem_prag.adb: Likewise.
4087
40882023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4089
4090 * exp_ch3.adb (Make_Controlling_Function_Wrappers): Create the body
4091 as the expanded body of an expression function.
4092
40932023-05-22 Piotr Trojanek <trojanek@adacore.com>
4094
4095 * pprint.adb (Expression_Image): Handle several previously unsupported
4096 constructs.
4097
40982023-05-22 Piotr Trojanek <trojanek@adacore.com>
4099
4100 * sem_res.adb (Resolve_Entity_Name): Combine two IF statements that
4101 execute code only for references that come from source.
4102
41032023-05-22 Bob Duff <duff@adacore.com>
4104
4105 * einfo.ads (Is_Past_Self_Hiding_Point): Document.
4106 * gen_il-fields.ads (Is_Past_Self_Hiding_Point): Add to list of
4107 fields.
4108 * gen_il-gen-gen_entities.adb (Is_Past_Self_Hiding_Point): Declare
4109 in all entities.
4110 * exp_aggr.adb: Set Is_Past_Self_Hiding_Point as appropriate.
4111 * sem.adb: Likewise.
4112 * sem_aggr.adb: Likewise.
4113 * sem_ch11.adb: Likewise.
4114 * sem_ch12.adb: Likewise.
4115 * sem_ch5.adb: Likewise.
4116 * sem_ch7.adb: Likewise.
4117 * sem_prag.adb: Likewise.
4118 * sem_ch6.adb: Likewise.
4119 (Set_Formal_Mode): Minor cleanup: Move from spec.
4120 * sem_ch6.ads:
4121 (Set_Formal_Mode): Minor cleanup: Move to body.
4122 * cstand.adb: Call Set_Is_Past_Self_Hiding_Point on all entities
4123 as soon as they are created.
4124 * comperr.adb (Compiler_Abort): Minor cleanup -- use 'in' instead
4125 of 'or else'.
4126 * debug.adb: Minor comment cleanups.
4127
41282023-05-22 Steve Baird <baird@adacore.com>
4129
4130 * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok):
4131 Accept an executable pragma occuring in a declare expression as
4132 per AI22-0045. This means Assert and Inspection_Point pragmas as
4133 well as any implementation-defined pragmas that the implementation
4134 chooses to categorize as executable. Currently Assume and Debug
4135 are the only such pragmas.
4136
41372023-05-22 Piotr Trojanek <trojanek@adacore.com>
4138
4139 * sem_prag.adb
4140 (Check_Postcondition_Use_In_Inlined_Subprogram): Mention
4141 Subprogram_Variant in the comment.
4142 (Analyze_Subprogram_Variant_In_Decl_Part): Warn when contract is
4143 ignored because of pragma Inline_Always and frontend inlining.
4144
41452023-05-22 Piotr Trojanek <trojanek@adacore.com>
4146
4147 * sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram): Only
4148 emit warning when frontend inlining is enabled.
4149
41502023-05-22 Arnaud Charlet <charlet@adacore.com>
4151
4152 * par-ch3.adb, sem_ch4.adb (P_Discrete_Range, Analyze_Logical_Op,
4153 Analyze_Short_Circuit): Add calls to Check_Xtra_Parentheses.
4154 * par-ch5.adb (P_Condition): Move logic to Check_Xtra_Parentheses.
4155 * style.ads, styleg.adb, styleg.ads (Check_Xtra_Parens): Move logic
4156 related to expressions requiring parentheses here.
4157
41582023-05-22 Arnaud Charlet <charlet@adacore.com>
4159
4160 * ali-util.adb, par-endh.adb, par-prag.adb, par-ch2.adb,
4161 checks.adb, fmap.adb, libgnat/a-nbnbig.ads, libgnat/g-dynhta.adb,
4162 libgnat/s-carun8.adb, libgnat/s-strcom.adb, libgnat/a-dhfina.adb,
4163 libgnat/a-direct.adb, libgnat/a-rbtgbo.adb, libgnat/a-strsea.adb,
4164 libgnat/a-ststio.adb, libgnat/a-suenco.adb, libgnat/a-costso.adb,
4165 libgnat/a-strmap.adb, libgnat/g-alleve.adb,
4166 libgnat/g-debpoo.adb, libgnat/g-sercom__linux.adb,
4167 libgnat/s-genbig.adb, libgnat/s-mmap.adb, libgnat/s-regpat.adb,
4168 par-ch5.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb,
4169 sem_ch8.adb, sem_eval.adb, sem_prag.adb, sem_type.adb,
4170 exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb,
4171 exp_ch6.adb, exp_ch9.adb, exp_put_image.adb, freeze.adb, live.adb,
4172 sem_aggr.adb, sem_cat.adb, sem_ch10.adb, sem_ch3.adb, sem_ch6.adb,
4173 sem_ch9.adb, sem_disp.adb, sem_elab.adb, sem_res.adb,
4174 sem_util.adb, sinput.adb, uintp.adb, bcheck.adb, binde.adb,
4175 binderr.adb, einfo-utils.adb, clean.adb, sem_ch4.adb, gnatls.adb,
4176 gprep.adb, sem_ch11.adb: Remove extra parentheses.
4177
41782023-05-22 Arnaud Charlet <charlet@adacore.com>
4179
4180 * sem_aggr.adb (Get_Value): Use ?? instead of ?.
4181
41822023-05-22 Piotr Trojanek <trojanek@adacore.com>
4183
4184 * exp_aggr.adb (Aggregate_Size): Remove redundant calls to
4185 Present.
4186 * exp_ch5.adb (Expand_N_If_Statement): Likewise.
4187 * sem_prag.adb (Analyze_Pragma): Likewise.
4188 * sem_warn.adb (Find_Var): Likewise.
4189
41902023-05-22 Claire Dross <dross@adacore.com>
4191
4192 * sem_util.adb (Find_Actual): On calls through dereferences,
4193 return the corresponding formal in the designated subprogram
4194 profile.
4195
41962023-05-22 Piotr Trojanek <trojanek@adacore.com>
4197
4198 * sem_util.ads (Is_Actual_Tagged_Parameter): Remove spec.
4199 * sem_util.adb (Is_Actual_Tagged_Parameter): Remove body.
4200
42012023-05-22 Joffrey Huguet <huguet@adacore.com>
4202
4203 * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads
4204 (To_Unbounded_String): Add postcondition. Add aspect SPARK_Mode
4205 Off on the version that takes a Natural as parameter.
4206 (To_String): Complete postcondition.
4207 (Set_Unbounded_String): Add postcondition.
4208 (Element): Likewise.
4209 ("="): Likewise.
4210
42112023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4212
4213 * exp_ch3.adb (Freeze_Type): Do not associate the Finalize_Address
4214 routine for a class-wide type if restriction No_Dispatching_Calls
4215 is in effect.
4216
42172023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4218
4219 * libgnat/s-genbig.ads (From_Bignum): New overloaded declarations.
4220 * libgnat/s-genbig.adb (LLLI): New subtype.
4221 (LLLI_Is_128): New boolean constant.
4222 (From_Bignum): Change the return type of the signed implementation
4223 to Long_Long_Long_Integer and add support for the case where its
4224 size is 128 bits. Add a wrapper around it for Long_Long_Integer.
4225 Add an unsigned implementation returning Unsigned_128 and a wrapper
4226 around it for Unsigned_64.
4227 (To_Bignum): Test LLLI_Is_128 instead of its size.
4228 (To_String.Image): Add qualification to calls to From_Bignum.
4229 * libgnat/a-nbnbin.adb (To_Big_Integer): Likewise.
4230 (Signed_Conversions.From_Big_Integer): Likewise.
4231 (Unsigned_Conversions): Likewise.
4232
42332023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4234
4235 * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec
4236 to copy the spec from the subprogram to the generated subprogram
4237 body.
4238 (Freeze_Entity): Do not wrap imported subprograms inside generics.
4239
42402023-05-22 Steve Baird <baird@adacore.com>
4241
4242 * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok):
4243 If Comes_From_Source (A) is False, then look at Original_Node (A)
4244 instead of A. In particular, if an (illegal) expression function
4245 is transformed into a "vanilla" function, we don't want to allow
4246 it just because Comes_From_Source is now False.
4247
42482023-05-22 Steve Baird <baird@adacore.com>
4249
4250 * sem_prag.adb (Analyze_Pragma): In Check_No_Return, call
4251 Error_Msg_Ada_2022_Feature in the case of a function. Remove code
4252 outside of Check_No_Return that was querying Ada_Version.
4253
42542023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4255
4256 * exp_ch4.adb (Expand_N_Expression_With_Actions.Process_Action): Do
4257 not look into nested blocks.
4258
42592023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4260
4261 * sem_ch3.adb (Find_Type_Of_Object): In a spec expression, also set
4262 the Scope of the type, and call Constrain_Array for array subtypes.
4263
42642023-05-22 Piotr Trojanek <trojanek@adacore.com>
4265
4266 * pprint.adb (Expression_Image): Reduce scope of local variables; inline
4267 local uncommented constant From_Source; concatenate string with a single
4268 character, as it is likely to execute faster; add missing cases to
4269 traversal for the rightmost node and assertion to demonstrate that the
4270 ??? comment is no longer relevant.
4271
42722023-05-22 Piotr Trojanek <trojanek@adacore.com>
4273
4274 * pprint.adb (Expr_Name): Qualify CASE expression with N_Subexpr; add
4275 missing alternative for N_Raise_Storage_Error; remove dead alternatives;
4276 explicitly list unsupported alternatives.
4277
42782023-05-22 Piotr Trojanek <trojanek@adacore.com>
4279
4280 * pprint.adb (Expr_Name): Exclude DEL from printable range.
4281
42822023-05-22 Piotr Trojanek <trojanek@adacore.com>
4283
4284 * sem_util.ads (New_Copy_Tree): Update comment.
4285 * sem_util.adb (New_Copy_Tree): Update Controlling_Argument, very
4286 much like we update the First/Next_Named_Association.
4287
42882023-05-22 Bob Duff <duff@adacore.com>
4289
4290 * fe.h: Remove Ada_With_Extensions and add commentary.
4291 * opt.ads: Rearrange code and add commentary.
4292
42932023-05-22 Bob Duff <duff@adacore.com>
4294
4295 * sem_util.adb (Process_Type): Stop the recursion.
4296 * exp_aggr.adb (Build_Record_Aggr_Code): Add assertion.
4297
b2776076
GA
42982023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
4299
4300 * gcc-interface/decl.cc (gnat_to_gnu_entity): Use _P defines
4301 from tree.h.
4302 (constructor_address_p): Ditto.
4303 (elaborate_expression_1): Ditto.
4304 * gcc-interface/trans.cc (Identifier_to_gnu): Ditto.
4305 (is_nrv_p): Ditto.
4306 (Subprogram_Body_to_gnu): Ditto.
4307 (gnat_to_gnu): Ditto.
4308 (gnat_to_gnu_external): Ditto.
4309 (add_decl_expr): Ditto.
4310 (gnat_gimplify_expr): Ditto.
4311 * gcc-interface/utils.cc (create_var_decl): Ditto.
4312 * gcc-interface/utils2.cc (get_base_type): Ditto.
4313 (build_binary_op): Ditto.
4314 (build_unary_op): Ditto.
4315 (gnat_protect_expr): Ditto.
4316 (gnat_invariant_expr): Ditto.
4317
0d566057
GA
43182023-05-16 Steve Baird <baird@adacore.com>
4319
4320 * usage.adb: Generate output text describing the -gnatw_s switch
4321 (and the corresponding -gnatw_S switch).
4322
43232023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4324
4325 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Reduce>:
4326 Use the canonical accumulator type as the type of the accumulator
4327 in the prefixed case.
4328
43292023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4330
4331 * exp_aggr.adb (Expand_Array_Aggregate): Do not set Warnings_Off on
4332 the temporary created when in-place expansion is not possible.
4333
43342023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4335
4336 * freeze.adb (Freeze_Expression): When the freezing is to be done
4337 outside the current scope, skip any scope that is an internal loop.
4338
43392023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4340
4341 * exp_imgv.adb (Rewrite_Object_Image): If the prefix is a component
4342 that depends on a discriminant, create an actual subtype for it.
4343
43442023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4345
4346 * sem_ch13.adb: Add with and use clauses for Expander.
4347 (Resolve_Aspect_Expressions) <Aspect_Predicate>: Emulate a
4348 bona-fide preanalysis setup before calling
4349 Resolve_Aspect_Expression.
4350
43512023-05-16 Yannick Moy <moy@adacore.com>
4352
4353 * libgnat/s-aridou.adb (Lemma_Div_Pow2): Add assertion.
4354 * libgnat/s-arit32.adb (Lemma_Abs_Div_Commutation): Simplify.
4355 * libgnat/s-expmod.adb (Lemma_Exp_Mod): Add assertions.
4356 (Lemma_Euclidean_Mod): Add body to lemma.
4357 (Lemma_Mult_Mod): Add assertion.
4358 * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Modify assertion.
4359 * libgnat/s-vauspe.ads (Raw_Unsigned_Last_Ghost): Add
4360 postcondition.
4361 * libgnat/s-widthi.adb: Use more precise types.
4362
43632023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4364
4365 * sem_res.adb (Has_Applicable_User_Defined_Literal): Apply the
4366 same processing for derived untagged types as for tagged types.
4367 * sem_util.ads (Corresponding_Primitive_Op): Adjust description.
4368 * sem_util.adb (Corresponding_Primitive_Op): Handle untagged
4369 types.
4370
43712023-05-16 Javier Miranda <miranda@adacore.com>
4372
4373 * sem_attr.adb
4374 (Analyze_Attribute_Old_Result): When preanalyzing a class-wide
4375 condition, search in the scopes stack for the subprogram that has
4376 the condition. This is required because returning the current
4377 scope causes reporting spurious errors when the occurrence of the
4378 attribute is found, for example, in a quantified expression.
4379
43802023-05-16 Javier Miranda <miranda@adacore.com>
4381
4382 * exp_ch6.adb
4383 (Needs_BIP_Alloc_Form): Return False for functions with foreign
4384 convention since we never use build-in-place for such functions.
4385
43862023-05-16 Piotr Trojanek <trojanek@adacore.com>
4387
4388 * sem_util.adb (Aggregate_Constraint_Checks): Don't exit early
4389 when preanalysing in GNATprove mode. Now the condition is
4390 consistent with other similar conditions in other code.
4391
43922023-05-16 Ghjuvan Lacambre <lacambre@adacore.com>
4393
4394 * usage.adb (Usage): Document -gnatyD.
4395
43962023-05-16 Marc Poulhiès <poulhies@adacore.com>
4397
4398 * libgnat/s-tsmona__linux.adb (link_map, r_debug_type): Add
4399 'aliased' on all components.
4400
44012023-05-16 Johannes Kliemann <kliemann@adacore.com>
4402
4403 * libgnat/system-linux-ppc.ads: Add Support_Atomic_Primitives.
4404 * libgnat/s-atopri__32.ads: Add 32 bit version of s-atopri.ads.
4405 * Makefile.rtl: Use s-atopro__32.ads for ppc-linux.
4406
44072023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4408
4409 * sem_util.adb (Get_Actual_Subtype): For an explicit dereference,
4410 return the Actual_Designated_Subtype if it is present.
4411 (Get_Actual_Subtype_If_Available): Likewise.
4412
44132023-05-16 Arnaud Charlet <charlet@adacore.com>
4414
4415 * errout.ads: Update comment.
4416 * errout.adb (Skip_Msg_Insertion_Warning): Update to take e.g.
4417 -gnatyM into account.
4418 * erroutc.adb (Get_Warning_Option, Get_Warning_Tag)
4419 (Prescan_Message): Add support for Style tags.
4420 * par-ch5.adb, par-ch6.adb, par-ch7.adb, par-endh.adb,
4421 par-util.adb, style.adb, styleg.adb: Set tag on all style
4422 messages.
4423
44242023-05-16 Tom Tromey <tromey@adacore.com>
4425
4426 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
4427 (Switches_for_gnatbind): Fix typo.
4428 * libgnat/g-spipat.ads: Fix typo.
4429 * gnat_ugn.texi: Regenerate.
4430
44312023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4432
4433 * exp_aggr.adb (Build_Assignment_With_Temporary): Adjust comment
4434 and fix type of second parameter. Create the temporary on the
4435 secondary stack by calling Build_Temporary_On_Secondary_Stack.
4436 (Convert_Array_Aggr_In_Allocator): Adjust formatting.
4437 (Expand_Array_Aggregate): Likewise.
4438 * exp_ch4.adb (Expand_N_Allocator): Set Actual_Designated_Subtype
4439 on the dereference in the initialization for all composite types.
4440 * exp_ch5.adb (Expand_N_Assignment_Statement): Create a temporary
4441 on the host for an assignment between nonnative storage models.
4442 Suppress more checks when Suppress_Assignment_Checks is set.
4443 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Deal with actuals
4444 that are dereferences with an Actual_Designated_Subtype. Add
4445 support for nonnative storage models.
4446 (Expand_Actuals): Create a copy if the actual is a dereference
4447 with a nonnative storage model.
4448 * exp_util.ads (Build_Temporary_On_Secondary_Stack): Declare.
4449 * exp_util.adb (Build_Temporary_On_Secondary_Stack): New function.
4450 * sem_ch5.adb (Analyze_Assignment.Set_Assignment_Type): Do not
4451 build an actual subtype for dereferences with an
4452 Actual_Designated_Subtype
4453 * sinfo.ads (Actual_Designated_Subtype): Adjust documentation.
4454 (Suppress_Assignment_Checks): Likewise.
4455
44562023-05-16 Piotr Trojanek <trojanek@adacore.com>
4457
4458 * exp_spark.adb (SPARK_Freeze_Type): Copy whole handling of DIC
4459 and Type_Invariant from Freeze_Type.
4460
44612023-05-16 Richard Kenner <kenner@adacore.com>
4462
4463 * sem_util.adb (Subprogram_Name): If what's passed is already an
4464 entity, use that for the name.
4465
44662023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4467
4468 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
4469 (No_Dependence): Give examples of new No_Dependence restrictions.
4470 * gnat_rm.texi: Regenerate.
4471
44722023-05-16 Arnaud Charlet <charlet@adacore.com>
4473
4474 * snames.ads-tmpl (Name_ASCII): New.
4475 * style.adb (Check_Identifier): Fix handling of ASCII.
4476
44772023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4478
4479 * gen_il-fields.ads (Opt_Field_Enum): Add Cannot_Be_Superflat.
4480 * gen_il-gen-gen_nodes.adb (N_Range): Add Cannot_Be_Superflat as
4481 semantical flag and change Includes_Infinities to semantical.
4482 * sinfo.ads (Cannot_Be_Superflat): Document it for N_Range.
4483 * exp_ch4.adb (Expand_Concatenate): Set Cannot_Be_Superflat on the
4484 range of the result if the result cannot be null.
4485
44862023-05-16 Richard Kenner <kenner@adacore.com>
4487
4488 * gen_il-gen-gen_nodes.adb (Present_Expr): Type is now Uint.
4489
44902023-05-16 Yannick Moy <moy@adacore.com>
4491
4492 * libgnat/s-aridou.adb (Big3, Is_Mult_Decomposition)
4493 (Is_Scaled_Mult_Decomposition): Add annotation for inlining.
4494 (Double_Divide, Scaled_Divide): Simplify and remove ghost code.
4495 (Prove_Multiplication): Add calls to lemmas to make proof go
4496 through.
4497 * libgnat/s-aridou.ads (Big, In_Double_Int_Range): Add annotation
4498 for inlining.
4499
45002023-05-16 Yannick Moy <moy@adacore.com>
4501
4502 * libgnat/a-strsup.adb: Add intermediate assertions.
4503
45042023-05-16 Arnaud Charlet <charlet@adacore.com>
4505
4506 * gnat1drv.adb: Ensure all dependencies are recorded even when not
4507 generating code.
4508
45092023-05-16 Yannick Moy <moy@adacore.com>
4510
4511 * libgnat/a-strsup.adb: Set assertion policy for Loop_Variant.
4512
45132023-05-16 Marc Poulhiès <poulhies@adacore.com>
4514
4515 * sem_ch12.adb (Instantiate_Package_Body): Simplify if/then/else.
4516 (Instantiate_Subprogram_Body): Likewise.
4517
45182023-05-16 Yannick Moy <moy@adacore.com>
4519
4520 * libgnat/s-aridou.adb:
4521 (Big3): Remove override made useless.
4522 (Lemma_Quot_Rem): Add new lemma and justify it, as no prover
4523 manages to prove it.
4524 (Lemma_Div_Pow2): Use new lemma Lemma_Quot_Rem.
4525 (Prove_Scaled_Mult_Decomposition_Regroup3): Retype for
4526 simplification.
4527 (Scaled_Divide): Remove useless assertions.Decompose some
4528 assertions with cut operations. Use Assert_And_Cut for second
4529 half. Add assertions.
4530
3427b51b
GA
45312023-05-15 Marc Poulhiès <poulhies@adacore.com>
4532
4533 * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment.
4534
45352023-05-15 Yannick Moy <moy@adacore.com>
4536
4537 * libgnat/a-strbou.ads: Add justifications for Mapping.
4538 * libgnat/a-strfix.adb: Same.
4539 * libgnat/a-strfix.ads: Same.
4540 * libgnat/a-strsea.adb: Same.
4541 * libgnat/a-strsea.ads: Same.
4542 * libgnat/a-strsup.adb: Same and add loop variants.
4543 * libgnat/a-strsup.ads: Same and add specification of termination.
4544
45452023-05-15 Yannick Moy <moy@adacore.com>
4546
4547 * libgnat/a-strsup.adb (Super_Slice): Reorder component assignment
4548 to avoid failing predicate check related to initialization.
4549 * libgnat/s-expmod.adb (Exp_Modular): Add intermediate assertion.
4550
45512023-05-15 Yannick Moy <moy@adacore.com>
4552
4553 * libgnat/i-c.adb: Add loop variants. Remove useless
4554 initialization.
4555
45562023-05-15 Bob Duff <duff@adacore.com>
4557
4558 * einfo-utils.ads: Remove comment.
4559
45602023-05-15 Bob Duff <duff@adacore.com>
4561
4562 * einfo-utils.ads, einfo-utils.adb: Get rid of the Proc_Next_...
4563 procedures. Use Inline aspect instead of pragma Inline.
4564 Is_Discrete_Or_Fixed_Point_Type did not have pragma Inline, but
4565 now has the aspect; this was probably an oversight
4566 (which illustrates why aspects are better).
4567
45682023-05-15 Ronan Desplanques <desplanques@adacore.com>
4569
4570 * doc/gnat_ugn/gnat_utility_programs.rst: Fix formatting
4571 inconsistency.
4572
45732023-05-15 Bob Duff <duff@adacore.com>
4574
4575 * einfo-utils.adb:
4576 (Proc_Next_Component_Or_Discriminant): Call
4577 Next_Component_Or_Discriminant.
4578
45792023-05-15 Bob Duff <duff@adacore.com>
4580
4581 * einfo.ads:
4582 (First_Entity): Update comment explaining why this exists on all
4583 [sub]types, as opposed to just the ones with associated entities.
4584
45852023-05-15 Bob Duff <duff@adacore.com>
4586
4587 * atree.adb
4588 (Check_Vanishing_Fields): Disable the check for "root/base type
4589 only" fields. This is a bug fix -- if we're checking some subtype
4590 S, we don't want to reach over to the root or base type and
4591 Reinit_Field_To_Zero of that, thus modifying the field for lots of
4592 subtypes other than S. Disable in the to/from E_Void cases. Misc
4593 cleanup.
4594 * gen_il-gen-gen_entities.adb: Define First_Entity, Last_Entity,
4595 and Stored_Constraint for all type entities, because there are too
4596 many cases where Reinit_Field_To_Zero would otherwise be needed.
4597 In any case, it seems cleaner to have First_Entity and Last_Entity
4598 defined in the same entity kinds.
4599 * einfo.ads:
4600 (First_Entity, Last_Entity, Stored_Constraint): Update comments to
4601 reflect gen_il-gen-gen_entities.adb changes.
4602 (Lit_Hash): Add missing "[root type only]" comment.
4603 * exp_ch5.adb: Add Reinit_Field_To_Zero calls for vanishing
4604 fields.
4605 * sem_ch10.adb: Likewise.
4606 * sem_ch6.adb: Likewise.
4607 * sem_ch7.adb: Likewise.
4608 * sem_ch8.adb: Likewise.
4609 * sem_ch3.adb: Likewise. Also remove now-unnecessary
4610 Reinit_Field_To_Zero calls.
4611
46122023-05-15 Eric Botcazou <ebotcazou@adacore.com>
4613
4614 * sem_ch7.adb (Hide_Public_Entities): Use the same condition for
4615 subprogram bodies without specification as for those with one.
4616
46172023-05-15 Piotr Trojanek <trojanek@adacore.com>
4618
4619 * sem_util.adb (New_Copy_Tree): Remove redundant calls to Present.
4620
46212023-05-15 Ronan Desplanques <desplanques@adacore.com>
4622
4623 * sem_ch8.adb (End_Scope): Simplify lookup of predecessor in
4624 homonym chain.
4625
46262023-05-15 Piotr Trojanek <trojanek@adacore.com>
4627
4628 * sem_aggr.adb (Resolve_Aggregate): Accept aggregates with OTHERS
4629 appearing inside unchecked conversions.
4630
46312023-05-15 Steve Baird <baird@adacore.com>
4632
4633 * warnsw.ads: Add a new element,
4634 Warn_On_Ineffective_Predicate_Test, to the Opt_Warnings_Enum
4635 enumeration type.
4636 * warnsw.adb: Bind "-gnatw_s" to the new
4637 Warn_On_Ineffective_Predicate_Test switch. Add the new switch to
4638 the set of switches enabled by -gnata .
4639 * sem_ch13.adb
4640 (Build_Discrete_Static_Predicate): Declare new local procedure,
4641 Warn_If_Test_Ineffective, which conditionally generates new
4642 warning. Call this new procedure when building a new element of an
4643 RList.
4644 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
4645 Document the -gnatw_s switch (and the corresponding -gnatw_S
4646 switch).
4647 * gnat_ugn.texi: Regenerate.
4648
46492023-05-15 Yannick Moy <moy@adacore.com>
4650
4651 * sem_attr.adb: Update comment referring to rule number.
4652
46532023-05-15 Ronan Desplanques <desplanques@adacore.com>
4654
4655 * sem_attr.adb: sem_attr.adb (Analyze_Access_Attribute): Tighten
4656 validity check for task types.
4657
46582023-05-15 Ronan Desplanques <desplanques@adacore.com>
4659
4660 * doc/gnat_rm/implementation_defined_characteristics.rst: Fix
4661 minor documentation formatting issue.
4662 * gnat_rm.texi: Regenerate.
4663 * gnat_ugn.texi: Regenerate.
4664
46652023-05-15 Bob Duff <duff@adacore.com>
4666
4667 * exp_ch4.adb
4668 (Expand_N_Op_Expon): Remove the too-big check. Simplify. Signed
4669 and modular cases are combined, etc. Remove code with comment "We
4670 only handle cases where the right type is a[sic] integer", because
4671 the right operand must always be an integer at this point.
4672
46732023-05-15 Bob Duff <duff@adacore.com>
4674
4675 * sem_attr.adb
4676 (Analyze_Attribute): Add a call to Check_Error_Detected.
4677
46782023-05-15 Yannick Moy <moy@adacore.com>
4679
4680 * par-prag.adb (First_Arg_Is_Matching_Tool_Name): Fix access to
4681 expression in pragma association.
4682
46832023-05-15 Eric Botcazou <ebotcazou@adacore.com>
4684
4685 * repinfo.ads (JSON output format): Document special case of
4686 Present member of a Variant object.
4687 * repinfo.adb (List_Structural_Record_Layout): Change the type of
4688 Ext_Level parameter to Integer. Restrict the first recursion with
4689 increasing levels to the fixed part and implement a second
4690 recursion with decreasing levels for the variant part. Deal with
4691 an extension of a type with unknown discriminants.
4692
46932023-05-15 Claire Dross <dross@adacore.com>
4694
4695 * libgnat/s-valueu.adb: Use cut operations inside assertion to
4696 restore proofs
4697 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-spark and
4698 s-spcuop dependencies.
4699
47002023-05-15 Yannick Moy <moy@adacore.com>
4701
4702 * sem_prag.adb (Check_Grouping): Allow Annotate pragmas between
4703 loop pragmas.
4704
47052023-05-15 Javier Miranda <miranda@adacore.com>
4706
4707 * doc/gnat_rm/implementation_defined_pragmas.rst
4708 (Extensions_Allowed): Document string interpolation.
4709 * gnat_rm.texi: Regenerate.
4710 * gnat_ugn.texi: Regenerate.
4711
47122023-05-15 Joel Brobecker <brobecker@adacore.com>
4713
4714 * doc/gnat_ugn/platform_specific_information.rst
4715 (_PIE_Enabled_By_Default_On_Linux): New section.
4716 * gnat-style.texi: Regenerate.
4717 * gnat_ugn.texi: Regenerate.
4718
47192023-05-15 Javier Miranda <miranda@adacore.com>
4720
4721 * exp_disp.adb
4722 (Has_Dispatching_Constructor_Call): New subprogram.
4723 (Expand_Interface_Conversion): No need to perform dynamic
4724 interface conversion when the operand and the target type are
4725 interface types and the target interface type is an ancestor of
4726 the operand type. The unique exception to this rule is when the
4727 operand has a dispatching constructor call (as documented in the
4728 sources).
4729
47302023-05-15 Piotr Trojanek <trojanek@adacore.com>
4731
4732 * sem_attr.adb (Analyze_Attribute): Reject attribute Initialized
4733 on unchecked unions; fix grammar in comment.
4734
47352023-05-15 Ronan Desplanques <desplanques@adacore.com>
4736
4737 * sem_ch13.adb (Validate_Unchecked_Conversion): Fix behavior on
4738 System.Address to access to subprogram subtype conversion.
4739
47402023-05-15 Piotr Trojanek <trojanek@adacore.com>
4741
4742 * atree.ads
4743 (Is_Syntactic_Node): Refactored from New_Copy_Tree.
4744 * atree.adb
4745 (Is_Syntactic_Node): Likewise.
4746 (Copy_Separate_Tree): Use Is_Syntactic_Node.
4747 * sem_util.adb
4748 (Has_More_Ids): Move to Atree.
4749 (Is_Syntactic_Node): Likewise.
4750
d5cd3ead
GA
47512023-04-18 Jin Ma <jinma@linux.alibaba.com>
4752
758d916c 4753 * gcc-interface/utils.cc (unchecked_convert): Fix typo.
d5cd3ead 4754
56b288f5
GA
47552023-04-17 Martin Liska <mliska@suse.cz>
4756
4757 * gnatvsn.ads: Bump Library_Version to 14.
4758
55085c7e
GA
47592023-04-15 Eric Botcazou <ebotcazou@adacore.com>
4760
4761 PR bootstrap/109510
4762 * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Do not reset
4763 align to zero in any case. Set TYPE_USER_ALIGN on the type only if
4764 it is an aggregate type, or else a type whose default alignment is
4765 specifically capped on selected platforms.
4766
1aee19f9
GA
47672023-04-14 Eric Botcazou <ebotcazou@adacore.com>
4768
4769 PR bootstrap/109510
4770 * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Reset align
4771 to zero if its value is equal to TYPE_ALIGN and the type is scalar.
4772 Set TYPE_USER_ALIGN on the type only if align is positive.
4773
3dd4ada4
GA
47742023-03-06 Javier Miranda <miranda@adacore.com>
4775
4776 PR ada/108858
4777 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): For functions with
4778 separate spec, if their return type was visible through a limited-
4779 with context clause, their extra formals were not added when the
4780 spec was analyzed. Now the full view must be available, and the
4781 extra formals can be created and Returns_By_Ref computed.
4782
47832023-03-06 Eric Botcazou <ebotcazou@adacore.com>
4784
4785 PR ada/108909
4786 PR ada/108983
4787 * Make-generated.in: Do not use GNATMAKE.
4788 * gcc-interface/Makefile.in: Ditto.
4789
2cd665b1
GA
47902023-02-26 Peter Foley <pefoley2@pefoley.com>
4791
4792 PR ada/108909
4793 * Make-generated.in: Use GNATMAKE.
4794 * gcc-interface/Makefile.in: Ditto.
4795
05467d08
GA
47962023-02-14 Eric Botcazou <ebotcazou@adacore.com>
4797
4798 * gcc-interface/trans.cc (gnat_gimplify_expr): Add missing guard.
4799
48002023-02-14 Dongsheng Song <dongsheng.song@gmail.com>
4801
4802 * adaint.c [Linux]: Include <features.h>.
4803 (__gnat_get_executable_load_address) [Linux]: Enable only for
4804 glibc and uClibc.
4805
f457a62e
GA
48062023-01-16 Marc Poulhiès <poulhies@adacore.com>
4807
4808 * gcc-interface/Make-lang.in: Update copyright years.
4809 * gcc-interface/Makefile.in: Likewise.
4810 * gcc-interface/ada-builtin-types.def: Likewise.
4811 * gcc-interface/ada-builtins.def: Likewise.
4812 * gcc-interface/ada-tree.def: Likewise.
4813 * gcc-interface/ada-tree.h: Likewise.
4814 * gcc-interface/ada.h: Likewise.
4815 * gcc-interface/config-lang.in: Likewise.
4816 * gcc-interface/cuintp.cc: Likewise.
4817 * gcc-interface/decl.cc: Likewise.
4818 * gcc-interface/gadaint.h: Likewise.
4819 * gcc-interface/gigi.h: Likewise.
4820 * gcc-interface/lang-specs.h: Likewise.
4821 * gcc-interface/lang.opt: Likewise.
4822 * gcc-interface/misc.cc: Likewise.
4823 * gcc-interface/system.ads: Likewise.
4824 * gcc-interface/targtyps.cc: Likewise.
4825 * gcc-interface/trans.cc: Likewise.
4826 * gcc-interface/utils.cc: Likewise.
4827 * gcc-interface/utils2.cc: Likewise.
4828
48292023-01-16 Eric Botcazou <ebotcazou@adacore.com>
4830
4831 * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment.
4832
48332023-01-16 Eric Botcazou <ebotcazou@adacore.com>
4834
4835 * exp_ch3.adb (Make_Allocator_For_Return): Convert the expression
4836 to the return object's type in the constrained array case as well.
4837
48382023-01-16 Eric Botcazou <ebotcazou@adacore.com>
4839
4840 * exp_ch3.adb (Expand_N_Object_Declaration): For a class-wide non-
4841 interface stand-alone object initialized by a function call, call
4842 Remove_Side_Effects on the expression to capture the result.
4843
48442023-01-16 Eric Botcazou <ebotcazou@adacore.com>
4845
4846 * exp_util.ads (Has_Tag_Of_Type): Declare.
4847 * exp_util.adb (Has_Tag_Of_Type): Move to package level. Recurse on
4848 qualified expressions.
4849 * exp_ch3.adb (Expand_N_Object_Declaration): Use a static reference
4850 to the interface tag in more cases for class-wide interface objects.
4851
48522023-01-16 Eric Botcazou <ebotcazou@adacore.com>
4853
4854 * exp_util.adb (Make_CW_Equivalent_Type.Has_Tag_Of_Type): Fix pasto.
4855
48562023-01-16 Eric Botcazou <ebotcazou@adacore.com>
4857
4858 * exp_util.adb (Is_Temporary_For_Interface_Object): Delete.
4859 (Is_Finalizable_Transient.Is_Aliased): Deal with the specific case
4860 of temporaries generated for interface objects.
4861
48622023-01-16 Eric Botcazou <ebotcazou@adacore.com>
4863
4864 * exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a back-
4865 and-forth displacement of the object's address when using a renaming
4866 for an interface object with an expression of the same type.
4867 * exp_ch4.adb (Expand_Allocator_Expression): Do not remove the side
4868 effects of the expression up front for the simple allocators. Do not
4869 call the Adjust primitive if the expression is a function call.
4870 * exp_ch6.adb (Expand_Ctrl_Function_Call): Do not expand the call
4871 unnecessarily for a special return object.
4872 (Expand_Simple_Function_Return): Restore the displacement of the
4873 return object's address in the case where the expression is the call
4874 to a function whose result type is a type that needs finalization.
4875 * exp_util.adb (Expand_Subtype_From_Expr): Do not remove the side
4876 effects of the expression before calling Make_Subtype_From_Expr.
4877 (Make_CW_Equivalent_Type): If the expression has the tag of its type
4878 and this type has a uniform size, use 'Object_Size of this type in
4879 lieu of 'Size of the expression to compute the expression's size.
4880
48812023-01-16 Eric Botcazou <ebotcazou@adacore.com>
4882
4883 * exp_ch3.adb (Make_Allocator_For_Return): Put back an interface
4884 conversion for expressions with non-interface class-wide type.
4885
48862023-01-16 Eric Botcazou <ebotcazou@adacore.com>
4887
4888 * exp_ch3.adb (Expand_N_Object_Declaration): Also optimize aliased
4889 objects if their nominal subtype is not an unconstrained array.
4890
48912023-01-16 Eric Botcazou <ebotcazou@adacore.com>
4892
4893 * exp_ch3.adb (Expand_N_Object_Declaration): Factor out conditions
4894 needed for an initializating expression that is a function call to
4895 be renamable into the Is_Renamable_Function_Call predicate.
4896 Use it to implement the renaming in the case of class-wide interface
4897 objects. Remove an interface conversion on all paths, separate and
4898 optimize the renaming path in the special expansion for interfaces.
4899 (Is_Renamable_Function_Call): New predicate.
4900 (Make_Allocator_For_Return): Put back an interface conversion.
4901 * exp_ch6.adb (Apply_CW_Accessibility_Check): Remove useless access
4902 checks on RE_Tag_Ptr.
4903
84723aca
GA
49042023-01-09 Arnaud Charlet <charlet@adacore.com>
4905
4906 * accessibility.adb, accessibility.ads, ada_get_targ.adb: Update copyright year.
4907 * adabkend.adb, adabkend.ads, adadecode.c, adadecode.h, adaint.c: Likewise.
4908 * adaint.h, affinity.c, ali-util.adb, ali-util.ads, ali.adb: Likewise.
4909 * ali.ads, alloc.ads, argv-lynxos178-raven-cert.c, argv.c: Likewise.
4910 * aspects.adb, aspects.ads, atree.adb, atree.ads, atree.h: Likewise.
4911 * aux-io.c, back_end.adb, back_end.ads, backend_utils.adb: Likewise.
4912 * backend_utils.ads, bcheck.adb, bcheck.ads, binde.adb, binde.ads: Likewise.
4913 * binderr.adb, binderr.ads, bindgen.adb, bindgen.ads: Likewise.
4914 * bindo-augmentors.adb, bindo-augmentors.ads, bindo-builders.adb: Likewise.
4915 * bindo-builders.ads, bindo-diagnostics.adb: Likewise.
4916 * bindo-diagnostics.ads, bindo-elaborators.adb: Likewise.
4917 * bindo-elaborators.ads, bindo-graphs.adb, bindo-graphs.ads: Likewise.
4918 * bindo-units.adb, bindo-units.ads, bindo-validators.adb: Likewise.
4919 * bindo-validators.ads, bindo-writers.adb, bindo-writers.ads: Likewise.
4920 * bindo.adb, bindo.ads, bindusg.adb, bindusg.ads, butil.adb: Likewise.
4921 * butil.ads, cal.c, casing.adb, casing.ads, checks.adb: Likewise.
4922 * checks.ads, cio.c, clean.adb, clean.ads: Likewise.
4923 * comperr.adb, comperr.ads, contracts.adb, contracts.ads: Likewise.
4924 * csets.adb, csets.ads, cstand.adb: Likewise.
4925 * cstand.ads, cstreams.c, ctrl_c.c, debug.adb, debug.ads: Likewise.
4926 * debug_a.adb, debug_a.ads, einfo-utils.adb, einfo-utils.ads: Likewise.
4927 * einfo.adb, einfo.ads, elists.adb, elists.ads, elists.h, env.c: Likewise.
4928 * env.h, err_vars.ads, errno.c, errout.adb, errout.ads: Likewise.
4929 * erroutc.adb, erroutc.ads, errutil.adb, errutil.ads: Likewise.
4930 * eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb, exp_aggr.ads: Likewise.
4931 * exp_atag.adb, exp_atag.ads, exp_attr.adb, exp_attr.ads: Likewise.
4932 * exp_cg.adb, exp_cg.ads, exp_ch10.ads, exp_ch11.adb: Likewise.
4933 * exp_ch11.ads, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb: Likewise.
4934 * exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.adb: Likewise.
4935 * exp_ch3.ads, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb, exp_ch5.ads: Likewise.
4936 * exp_ch6.adb, exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, exp_ch8.adb: Likewise.
4937 * exp_ch8.ads, exp_ch9.adb, exp_ch9.ads, exp_code.adb: Likewise.
4938 * exp_code.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.adb: Likewise.
4939 * exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb: Likewise.
4940 * exp_fixd.ads, exp_imgv.adb, exp_imgv.ads, exp_intr.adb: Likewise.
4941 * exp_intr.ads, exp_pakd.adb, exp_pakd.ads, exp_prag.adb: Likewise.
4942 * exp_prag.ads, exp_put_image.adb, exp_put_image.ads, exp_sel.adb: Likewise.
4943 * exp_sel.ads, exp_smem.adb, exp_smem.ads, exp_spark.adb: Likewise.
4944 * exp_spark.ads, exp_strm.adb, exp_strm.ads, exp_tss.adb: Likewise.
4945 * exp_tss.ads, exp_unst.adb, exp_unst.ads, exp_util.adb: Likewise.
4946 * exp_util.ads, expander.adb, expander.ads, expect.c, fe.h: Likewise.
4947 * final.c, fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads: Likewise.
4948 * fname-uf.adb, fname-uf.ads, fname.adb, fname.ads, freeze.adb: Likewise.
4949 * freeze.ads, frontend.adb, frontend.ads, gen_il-fields.ads: Likewise.
4950 * gen_il-gen-gen_entities.adb, gen_il-gen-gen_nodes.adb: Likewise.
4951 * gen_il-gen.adb, gen_il-gen.ads, gen_il-internals.adb: Likewise.
4952 * gen_il-internals.ads, gen_il-main.adb, gen_il-types.ads: Likewise.
4953 * gen_il.adb, gen_il.ads, get_scos.adb, get_scos.ads: Likewise.
4954 * get_targ.adb, get_targ.ads, ghost.adb, ghost.ads, gnat1drv.adb: Likewise.
4955 * gnat1drv.ads, gnat_cuda.adb, gnat_cuda.ads: Likewise.
4956 * gnatbind.adb, gnatbind.ads, gnatchop.adb: Likewise.
4957 * gnatclean.adb, gnatcmd.adb, gnatcmd.ads, gnatdll.adb: Likewise.
4958 * gnatkr.adb, gnatkr.ads, gnatlink.adb, gnatlink.ads, gnatls.adb: Likewise.
4959 * gnatls.ads, gnatmake.adb, gnatmake.ads, gnatname.adb: Likewise.
4960 * gnatname.ads, gnatprep.adb, gnatprep.ads: Likewise.
4961 * gprep.adb, gprep.ads, gsocket.h: Likewise.
4962 * hostparm.ads: Likewise.
4963 * impunit.adb, impunit.ads, indepsw-aix.adb, indepsw-darwin.adb: Likewise.
4964 * indepsw-gnu.adb, indepsw.adb, indepsw.ads, init.c: Likewise.
4965 * initialize.c, inline.adb, inline.ads, itypes.adb, itypes.ads: Likewise.
4966 * krunch.adb, krunch.ads, layout.adb, layout.ads: Likewise.
4967 * lib-list.adb, lib-load.adb, lib-load.ads, lib-sort.adb: Likewise.
4968 * lib-util.adb, lib-util.ads, lib-writ.adb, lib-writ.ads: Likewise.
4969 * lib-xref-spark_specific.adb, lib-xref.adb, lib-xref.ads: Likewise.
4970 * lib.adb, lib.ads, libgnarl/a-astaco.adb, libgnarl/a-dispat.adb: Likewise.
4971 * libgnarl/a-dynpri.adb, libgnarl/a-etgrbu.ads: Likewise.
4972 * libgnarl/a-exetim__darwin.adb, libgnarl/a-exetim__default.ads: Likewise.
4973 * libgnarl/a-exetim__mingw.adb, libgnarl/a-exetim__mingw.ads: Likewise.
4974 * libgnarl/a-exetim__posix.adb, libgnarl/a-interr.adb: Likewise.
4975 * libgnarl/a-interr.ads, libgnarl/a-intnam.ads: Likewise.
4976 * libgnarl/a-intnam__aix.ads, libgnarl/a-intnam__darwin.ads: Likewise.
4977 * libgnarl/a-intnam__dragonfly.ads, libgnarl/a-intnam__dummy.ads: Likewise.
4978 * libgnarl/a-intnam__freebsd.ads, libgnarl/a-intnam__hpux.ads: Likewise.
4979 * libgnarl/a-intnam__linux.ads, libgnarl/a-intnam__lynxos.ads: Likewise.
4980 * libgnarl/a-intnam__mingw.ads, libgnarl/a-intnam__qnx.ads: Likewise.
4981 * libgnarl/a-intnam__rtems.ads, libgnarl/a-intnam__solaris.ads: Likewise.
4982 * libgnarl/a-intnam__vxworks.ads, libgnarl/a-reatim.adb: Likewise.
4983 * libgnarl/a-reatim.ads, libgnarl/a-retide.adb: Likewise.
4984 * libgnarl/a-retide.ads, libgnarl/a-rttiev.adb: Likewise.
4985 * libgnarl/a-rttiev.ads, libgnarl/a-synbar.adb: Likewise.
4986 * libgnarl/a-synbar.ads, libgnarl/a-synbar__posix.adb: Likewise.
4987 * libgnarl/a-synbar__posix.ads, libgnarl/a-sytaco.adb: Likewise.
4988 * libgnarl/a-sytaco.ads, libgnarl/a-tasatt.adb: Likewise.
4989 * libgnarl/a-tasatt.ads, libgnarl/a-taside.adb: Likewise.
4990 * libgnarl/a-taside.ads, libgnarl/a-tasini.adb: Likewise.
4991 * libgnarl/a-tasini.ads, libgnarl/a-taster.adb: Likewise.
4992 * libgnarl/g-boubuf.adb, libgnarl/g-boubuf.ads: Likewise.
4993 * libgnarl/g-boumai.ads, libgnarl/g-semaph.adb: Likewise.
4994 * libgnarl/g-semaph.ads, libgnarl/g-signal.adb: Likewise.
4995 * libgnarl/g-signal.ads, libgnarl/g-tastus.ads: Likewise.
4996 * libgnarl/g-thread.adb, libgnarl/g-thread.ads: Likewise.
4997 * libgnarl/i-vxinco.adb, libgnarl/i-vxinco.ads: Likewise.
4998 * libgnarl/s-inmaop.ads, libgnarl/s-inmaop__dummy.adb: Likewise.
4999 * libgnarl/s-inmaop__hwint.adb, libgnarl/s-inmaop__posix.adb: Likewise.
5000 * libgnarl/s-interr.adb, libgnarl/s-interr.ads: Likewise.
5001 * libgnarl/s-interr__dummy.adb, libgnarl/s-interr__hwint.adb: Likewise.
5002 * libgnarl/s-interr__sigaction.adb: Likewise.
5003 * libgnarl/s-interr__vxworks.adb, libgnarl/s-intman.ads: Likewise.
5004 * libgnarl/s-intman__android.adb, libgnarl/s-intman__dummy.adb: Likewise.
5005 * libgnarl/s-intman__lynxos.adb, libgnarl/s-intman__mingw.adb: Likewise.
5006 * libgnarl/s-intman__posix.adb, libgnarl/s-intman__qnx.adb: Likewise.
5007 * libgnarl/s-intman__rtems.adb, libgnarl/s-intman__rtems.ads: Likewise.
5008 * libgnarl/s-intman__solaris.adb, libgnarl/s-intman__susv3.adb: Likewise.
5009 * libgnarl/s-intman__vxworks.adb, libgnarl/s-intman__vxworks.ads: Likewise.
5010 * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads: Likewise.
5011 * libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads: Likewise.
5012 * libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads: Likewise.
5013 * libgnarl/s-linux__sparc.ads, libgnarl/s-linux__x32.ads: Likewise.
5014 * libgnarl/s-mudido.adb, libgnarl/s-mudido__affinity.adb: Likewise.
5015 * libgnarl/s-osinte__aix.adb, libgnarl/s-osinte__aix.ads: Likewise.
5016 * libgnarl/s-osinte__android.adb, libgnarl/s-osinte__android.ads: Likewise.
5017 * libgnarl/s-osinte__darwin.adb, libgnarl/s-osinte__darwin.ads: Likewise.
5018 * libgnarl/s-osinte__dragonfly.adb: Likewise.
5019 * libgnarl/s-osinte__dragonfly.ads, libgnarl/s-osinte__dummy.ads: Likewise.
5020 * libgnarl/s-osinte__freebsd.adb, libgnarl/s-osinte__freebsd.ads: Likewise.
5021 * libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__gnu.ads: Likewise.
5022 * libgnarl/s-osinte__hpux-dce.adb: Likewise.
5023 * libgnarl/s-osinte__hpux-dce.ads, libgnarl/s-osinte__hpux.ads: Likewise.
5024 * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
5025 * libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178.adb: Likewise.
5026 * libgnarl/s-osinte__lynxos178e.ads, libgnarl/s-osinte__mingw.ads: Likewise.
5027 * libgnarl/s-osinte__posix.adb, libgnarl/s-osinte__qnx.adb: Likewise.
5028 * libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.adb: Likewise.
5029 * libgnarl/s-osinte__rtems.ads, libgnarl/s-osinte__solaris.adb: Likewise.
5030 * libgnarl/s-osinte__solaris.ads, libgnarl/s-osinte__vxworks.adb: Likewise.
5031 * libgnarl/s-osinte__vxworks.ads, libgnarl/s-osinte__x32.adb: Likewise.
5032 * libgnarl/s-proinf.adb, libgnarl/s-proinf.ads: Likewise.
5033 * libgnarl/s-putaim.adb, libgnarl/s-putaim.ads: Likewise.
5034 * libgnarl/s-qnx.ads, libgnarl/s-solita.adb: Likewise.
5035 * libgnarl/s-solita.ads, libgnarl/s-stusta.adb: Likewise.
5036 * libgnarl/s-stusta.ads, libgnarl/s-taasde.adb: Likewise.
5037 * libgnarl/s-taasde.ads, libgnarl/s-tadeca.adb: Likewise.
5038 * libgnarl/s-tadeca.ads, libgnarl/s-tadert.adb: Likewise.
5039 * libgnarl/s-tadert.ads, libgnarl/s-taenca.adb: Likewise.
5040 * libgnarl/s-taenca.ads, libgnarl/s-taprob.adb: Likewise.
5041 * libgnarl/s-taprob.ads, libgnarl/s-taprop.ads: Likewise.
5042 * libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb: Likewise.
5043 * libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb: Likewise.
5044 * libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb: Likewise.
5045 * libgnarl/s-taprop__rtems.adb, libgnarl/s-taprop__solaris.adb: Likewise.
5046 * libgnarl/s-taprop__vxworks.adb, libgnarl/s-tarest.adb: Likewise.
5047 * libgnarl/s-tarest.ads, libgnarl/s-tasdeb.adb: Likewise.
5048 * libgnarl/s-tasdeb.ads, libgnarl/s-tasinf.adb: Likewise.
5049 * libgnarl/s-tasinf.ads, libgnarl/s-tasinf__linux.adb: Likewise.
5050 * libgnarl/s-tasinf__linux.ads, libgnarl/s-tasinf__mingw.adb: Likewise.
5051 * libgnarl/s-tasinf__mingw.ads, libgnarl/s-tasinf__solaris.adb: Likewise.
5052 * libgnarl/s-tasinf__solaris.ads, libgnarl/s-tasinf__vxworks.ads: Likewise.
5053 * libgnarl/s-tasini.adb, libgnarl/s-tasini.ads: Likewise.
5054 * libgnarl/s-taskin.adb, libgnarl/s-taskin.ads: Likewise.
5055 * libgnarl/s-taspri__dummy.ads, libgnarl/s-taspri__hpux-dce.ads: Likewise.
5056 * libgnarl/s-taspri__lynxos.ads, libgnarl/s-taspri__mingw.ads: Likewise.
5057 * libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
5058 * libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads: Likewise.
5059 * libgnarl/s-taspri__vxworks.ads, libgnarl/s-tasque.adb: Likewise.
5060 * libgnarl/s-tasque.ads, libgnarl/s-tasren.adb: Likewise.
5061 * libgnarl/s-tasren.ads, libgnarl/s-tasres.ads: Likewise.
5062 * libgnarl/s-tassta.adb, libgnarl/s-tassta.ads: Likewise.
5063 * libgnarl/s-tasuti.adb, libgnarl/s-tasuti.ads: Likewise.
5064 * libgnarl/s-tataat.adb, libgnarl/s-tataat.ads: Likewise.
5065 * libgnarl/s-tpinop.adb, libgnarl/s-tpinop.ads: Likewise.
5066 * libgnarl/s-tpoaal.adb, libgnarl/s-tpoben.adb: Likewise.
5067 * libgnarl/s-tpoben.ads, libgnarl/s-tpobmu.adb: Likewise.
5068 * libgnarl/s-tpobmu.ads, libgnarl/s-tpobop.adb: Likewise.
5069 * libgnarl/s-tpobop.ads, libgnarl/s-tpopmo.adb: Likewise.
5070 * libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
5071 * libgnarl/s-tpopsp__posix.adb, libgnarl/s-tpopsp__solaris.adb: Likewise.
5072 * libgnarl/s-tpopsp__tls.adb, libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
5073 * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
5074 * libgnarl/s-tpopsp__vxworks.adb, libgnarl/s-tporft.adb: Likewise.
5075 * libgnarl/s-tposen.adb, libgnarl/s-tposen.ads: Likewise.
5076 * libgnarl/s-vxwext.adb, libgnarl/s-vxwext.ads: Likewise.
5077 * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
5078 * libgnarl/s-vxwext__kernel.adb, libgnarl/s-vxwext__kernel.ads: Likewise.
5079 * libgnarl/s-vxwext__rtp-smp.adb, libgnarl/s-vxwext__rtp.adb: Likewise.
5080 * libgnarl/s-vxwext__rtp.ads, libgnarl/s-vxwork__aarch64.ads: Likewise.
5081 * libgnarl/s-vxwork__arm.ads, libgnarl/s-vxwork__ppc.ads: Likewise.
5082 * libgnarl/s-vxwork__x86.ads, libgnarl/thread.c: Likewise.
5083 * libgnat/a-assert.adb, libgnat/a-assert.ads: Likewise.
5084 * libgnat/a-btgbso.adb, libgnat/a-btgbso.ads: Likewise.
5085 * libgnat/a-calari.adb, libgnat/a-calari.ads: Likewise.
5086 * libgnat/a-calcon.adb, libgnat/a-calcon.ads: Likewise.
5087 * libgnat/a-caldel.adb, libgnat/a-caldel.ads: Likewise.
5088 * libgnat/a-calend.adb, libgnat/a-calend.ads: Likewise.
5089 * libgnat/a-calfor.adb, libgnat/a-calfor.ads: Likewise.
5090 * libgnat/a-catizo.adb, libgnat/a-cbdlli.adb: Likewise.
5091 * libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb: Likewise.
5092 * libgnat/a-cbhama.ads, libgnat/a-cbhase.adb: Likewise.
5093 * libgnat/a-cbhase.ads, libgnat/a-cbmutr.adb: Likewise.
5094 * libgnat/a-cbmutr.ads, libgnat/a-cborma.adb: Likewise.
5095 * libgnat/a-cborma.ads, libgnat/a-cborse.adb: Likewise.
5096 * libgnat/a-cborse.ads, libgnat/a-cbprqu.adb: Likewise.
5097 * libgnat/a-cbprqu.ads, libgnat/a-cbsyqu.adb: Likewise.
5098 * libgnat/a-cbsyqu.ads, libgnat/a-cdlili.adb: Likewise.
5099 * libgnat/a-cdlili.ads, libgnat/a-cfdlli.ads: Likewise.
5100 * libgnat/a-cfhama.ads, libgnat/a-cfhase.ads: Likewise.
5101 * libgnat/a-cfidll.ads, libgnat/a-cfinse.ads: Likewise.
5102 * libgnat/a-cfinve.ads, libgnat/a-cforma.ads: Likewise.
5103 * libgnat/a-cforse.ads, libgnat/a-cgaaso.adb: Likewise.
5104 * libgnat/a-cgaaso.ads, libgnat/a-cgarso.adb: Likewise.
5105 * libgnat/a-cgcaso.adb, libgnat/a-chacon.adb: Likewise.
5106 * libgnat/a-chacon.ads, libgnat/a-chahan.adb: Likewise.
5107 * libgnat/a-chahan.ads, libgnat/a-chlat9.ads: Likewise.
5108 * libgnat/a-chtgbk.adb, libgnat/a-chtgbk.ads: Likewise.
5109 * libgnat/a-chtgbo.adb, libgnat/a-chtgbo.ads: Likewise.
5110 * libgnat/a-chtgfk.adb, libgnat/a-chtgfk.ads: Likewise.
5111 * libgnat/a-chtgfo.adb, libgnat/a-chtgfo.ads: Likewise.
5112 * libgnat/a-chtgke.adb, libgnat/a-chtgke.ads: Likewise.
5113 * libgnat/a-chtgop.adb, libgnat/a-chtgop.ads: Likewise.
5114 * libgnat/a-chzla1.ads, libgnat/a-chzla9.ads: Likewise.
5115 * libgnat/a-cidlli.adb, libgnat/a-cidlli.ads: Likewise.
5116 * libgnat/a-cihama.adb, libgnat/a-cihama.ads: Likewise.
5117 * libgnat/a-cihase.adb, libgnat/a-cihase.ads: Likewise.
5118 * libgnat/a-cimutr.adb, libgnat/a-cimutr.ads: Likewise.
5119 * libgnat/a-ciorma.adb, libgnat/a-ciorma.ads: Likewise.
5120 * libgnat/a-ciormu.adb, libgnat/a-ciormu.ads: Likewise.
5121 * libgnat/a-ciorse.adb, libgnat/a-ciorse.ads: Likewise.
5122 * libgnat/a-clrefi.adb, libgnat/a-clrefi.ads: Likewise.
5123 * libgnat/a-coboho.adb, libgnat/a-coboho.ads: Likewise.
5124 * libgnat/a-cobove.adb, libgnat/a-cobove.ads: Likewise.
5125 * libgnat/a-cofove.ads, libgnat/a-cofuma.ads: Likewise.
5126 * libgnat/a-cofuse.ads, libgnat/a-cofuve.ads: Likewise.
5127 * libgnat/a-cogeso.adb, libgnat/a-cogeso.ads: Likewise.
5128 * libgnat/a-cohama.adb, libgnat/a-cohama.ads: Likewise.
5129 * libgnat/a-cohase.adb, libgnat/a-cohase.ads: Likewise.
5130 * libgnat/a-cohata.ads, libgnat/a-coinho.adb: Likewise.
5131 * libgnat/a-coinho.ads, libgnat/a-coinho__shared.adb: Likewise.
5132 * libgnat/a-coinho__shared.ads, libgnat/a-coinve.adb: Likewise.
5133 * libgnat/a-coinve.ads, libgnat/a-colien.adb: Likewise.
5134 * libgnat/a-colien.ads, libgnat/a-colire.adb: Likewise.
5135 * libgnat/a-colire.ads, libgnat/a-comlin.adb: Likewise.
5136 * libgnat/a-comlin.ads, libgnat/a-comutr.adb: Likewise.
5137 * libgnat/a-comutr.ads, libgnat/a-conhel.adb: Likewise.
5138 * libgnat/a-conhel.ads, libgnat/a-convec.adb: Likewise.
5139 * libgnat/a-convec.ads, libgnat/a-coorma.adb: Likewise.
5140 * libgnat/a-coorma.ads, libgnat/a-coormu.adb: Likewise.
5141 * libgnat/a-coormu.ads, libgnat/a-coorse.adb: Likewise.
5142 * libgnat/a-coorse.ads, libgnat/a-coprnu.adb: Likewise.
5143 * libgnat/a-coprnu.ads, libgnat/a-costso.adb: Likewise.
5144 * libgnat/a-costso.ads, libgnat/a-crbltr.ads: Likewise.
5145 * libgnat/a-crbtgk.adb, libgnat/a-crbtgk.ads: Likewise.
5146 * libgnat/a-crbtgo.adb, libgnat/a-crbtgo.ads: Likewise.
5147 * libgnat/a-crdlli.adb, libgnat/a-crdlli.ads: Likewise.
5148 * libgnat/a-csquin.ads, libgnat/a-cuprqu.adb: Likewise.
5149 * libgnat/a-cuprqu.ads, libgnat/a-cusyqu.adb: Likewise.
5150 * libgnat/a-cusyqu.ads, libgnat/a-cwila1.ads: Likewise.
5151 * libgnat/a-cwila9.ads, libgnat/a-decima.adb: Likewise.
5152 * libgnat/a-decima.ads, libgnat/a-decima__128.ads: Likewise.
5153 * libgnat/a-dhfina.adb, libgnat/a-dhfina.ads: Likewise.
5154 * libgnat/a-diocst.adb, libgnat/a-diocst.ads: Likewise.
5155 * libgnat/a-direct.adb, libgnat/a-direct.ads: Likewise.
5156 * libgnat/a-direio.adb, libgnat/a-direio.ads: Likewise.
5157 * libgnat/a-dirval.adb, libgnat/a-dirval.ads: Likewise.
5158 * libgnat/a-dirval__mingw.adb, libgnat/a-einuoc.adb: Likewise.
5159 * libgnat/a-einuoc.ads, libgnat/a-elchha.adb: Likewise.
5160 * libgnat/a-elchha.ads, libgnat/a-envvar.adb: Likewise.
5161 * libgnat/a-excach.adb, libgnat/a-except.adb: Likewise.
5162 * libgnat/a-except.ads, libgnat/a-exctra.adb: Likewise.
5163 * libgnat/a-exctra.ads, libgnat/a-exexda.adb: Likewise.
5164 * libgnat/a-exexpr.adb, libgnat/a-exextr.adb: Likewise.
5165 * libgnat/a-exstat.adb, libgnat/a-finali.adb: Likewise.
5166 * libgnat/a-finali.ads, libgnat/a-locale.adb: Likewise.
5167 * libgnat/a-locale.ads, libgnat/a-nagefl.ads: Likewise.
5168 * libgnat/a-naliop.ads, libgnat/a-naliop__nolibm.ads: Likewise.
5169 * libgnat/a-nallfl.ads, libgnat/a-nallfl__wraplf.ads: Likewise.
5170 * libgnat/a-nalofl.ads, libgnat/a-nalofl__simd.ads: Likewise.
5171 * libgnat/a-nashfl.ads, libgnat/a-nashfl__wraplf.ads: Likewise.
5172 * libgnat/a-nbnbig.adb, libgnat/a-nbnbin.adb: Likewise.
5173 * libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb: Likewise.
5174 * libgnat/a-ngcefu.adb, libgnat/a-ngcoar.adb: Likewise.
5175 * libgnat/a-ngcoty.adb, libgnat/a-ngcoty.ads: Likewise.
5176 * libgnat/a-ngelfu.adb, libgnat/a-ngelfu.ads: Likewise.
5177 * libgnat/a-ngrear.adb, libgnat/a-ngrear.ads: Likewise.
5178 * libgnat/a-nuauco.ads, libgnat/a-nuauco__x86.ads: Likewise.
5179 * libgnat/a-nuaufl.ads, libgnat/a-nuaufl__simd.ads: Likewise.
5180 * libgnat/a-nuaufl__wraplf.ads, libgnat/a-nudira.adb: Likewise.
5181 * libgnat/a-nudira.ads, libgnat/a-nuflra.adb: Likewise.
5182 * libgnat/a-nuflra.ads, libgnat/a-numaux.ads: Likewise.
5183 * libgnat/a-rbtgbk.adb, libgnat/a-rbtgbk.ads: Likewise.
5184 * libgnat/a-rbtgbo.adb, libgnat/a-rbtgbo.ads: Likewise.
5185 * libgnat/a-rbtgso.adb, libgnat/a-rbtgso.ads: Likewise.
5186 * libgnat/a-sbecin.adb, libgnat/a-sbecin.ads: Likewise.
5187 * libgnat/a-sbhcin.adb, libgnat/a-sbhcin.ads: Likewise.
5188 * libgnat/a-sblcin.adb, libgnat/a-sblcin.ads: Likewise.
5189 * libgnat/a-secain.adb, libgnat/a-secain.ads: Likewise.
5190 * libgnat/a-sequio.adb, libgnat/a-sequio.ads: Likewise.
5191 * libgnat/a-sfecin.ads, libgnat/a-sfhcin.ads: Likewise.
5192 * libgnat/a-sflcin.ads, libgnat/a-shcain.adb: Likewise.
5193 * libgnat/a-shcain.ads, libgnat/a-siocst.adb: Likewise.
5194 * libgnat/a-siocst.ads, libgnat/a-slcain.adb: Likewise.
5195 * libgnat/a-slcain.ads, libgnat/a-ssicst.adb: Likewise.
5196 * libgnat/a-ssicst.ads, libgnat/a-stboha.adb: Likewise.
5197 * libgnat/a-stbubo.adb, libgnat/a-stbubo.ads: Likewise.
5198 * libgnat/a-stbufi.adb, libgnat/a-stbufi.ads: Likewise.
5199 * libgnat/a-stbufo.adb, libgnat/a-stbufo.ads: Likewise.
5200 * libgnat/a-stbuun.adb, libgnat/a-stbuut.adb: Likewise.
5201 * libgnat/a-stbuut.ads, libgnat/a-stmaco.ads: Likewise.
5202 * libgnat/a-storio.adb, libgnat/a-strbou.adb: Likewise.
5203 * libgnat/a-strbou.ads, libgnat/a-stream.adb: Likewise.
5204 * libgnat/a-stream.ads, libgnat/a-strfix.adb: Likewise.
5205 * libgnat/a-strhas.adb, libgnat/a-strmap.adb: Likewise.
5206 * libgnat/a-strmap.ads, libgnat/a-strsea.adb: Likewise.
5207 * libgnat/a-strsea.ads, libgnat/a-strsto.ads: Likewise.
5208 * libgnat/a-strsup.adb, libgnat/a-strsup.ads: Likewise.
5209 * libgnat/a-strunb.adb, libgnat/a-strunb.ads: Likewise.
5210 * libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads: Likewise.
5211 * libgnat/a-ststbo.adb, libgnat/a-ststbo.ads: Likewise.
5212 * libgnat/a-ststio.adb, libgnat/a-ststio.ads: Likewise.
5213 * libgnat/a-ststun.adb, libgnat/a-ststun.ads: Likewise.
5214 * libgnat/a-sttebu.adb, libgnat/a-stunau.adb: Likewise.
5215 * libgnat/a-stunau.ads, libgnat/a-stunau__shared.adb: Likewise.
5216 * libgnat/a-stunha.adb, libgnat/a-stuten.adb: Likewise.
5217 * libgnat/a-stwibo.adb, libgnat/a-stwibo.ads: Likewise.
5218 * libgnat/a-stwifi.adb, libgnat/a-stwiha.adb: Likewise.
5219 * libgnat/a-stwima.adb, libgnat/a-stwima.ads: Likewise.
5220 * libgnat/a-stwise.adb, libgnat/a-stwise.ads: Likewise.
5221 * libgnat/a-stwisu.adb, libgnat/a-stwisu.ads: Likewise.
5222 * libgnat/a-stwiun.adb, libgnat/a-stwiun.ads: Likewise.
5223 * libgnat/a-stwiun__shared.adb, libgnat/a-stwiun__shared.ads: Likewise.
5224 * libgnat/a-stzbou.adb, libgnat/a-stzbou.ads: Likewise.
5225 * libgnat/a-stzfix.adb, libgnat/a-stzhas.adb: Likewise.
5226 * libgnat/a-stzmap.adb, libgnat/a-stzmap.ads: Likewise.
5227 * libgnat/a-stzsea.adb, libgnat/a-stzsea.ads: Likewise.
5228 * libgnat/a-stzsup.adb, libgnat/a-stzsup.ads: Likewise.
5229 * libgnat/a-stzunb.adb, libgnat/a-stzunb.ads: Likewise.
5230 * libgnat/a-stzunb__shared.adb, libgnat/a-stzunb__shared.ads: Likewise.
5231 * libgnat/a-suecin.adb, libgnat/a-suecin.ads: Likewise.
5232 * libgnat/a-suenco.adb, libgnat/a-suenst.adb: Likewise.
5233 * libgnat/a-suewst.adb, libgnat/a-suezst.adb: Likewise.
5234 * libgnat/a-suhcin.adb, libgnat/a-suhcin.ads: Likewise.
5235 * libgnat/a-sulcin.adb, libgnat/a-sulcin.ads: Likewise.
5236 * libgnat/a-suteio.adb, libgnat/a-suteio.ads: Likewise.
5237 * libgnat/a-suteio__shared.adb, libgnat/a-swbwha.adb: Likewise.
5238 * libgnat/a-swmwco.ads, libgnat/a-swunau.adb: Likewise.
5239 * libgnat/a-swunau.ads, libgnat/a-swunau__shared.adb: Likewise.
5240 * libgnat/a-swuwha.adb, libgnat/a-swuwti.adb: Likewise.
5241 * libgnat/a-swuwti.ads, libgnat/a-swuwti__shared.adb: Likewise.
5242 * libgnat/a-szbzha.adb, libgnat/a-szmzco.ads: Likewise.
5243 * libgnat/a-szunau.adb, libgnat/a-szunau.ads: Likewise.
5244 * libgnat/a-szunau__shared.adb, libgnat/a-szuzha.adb: Likewise.
5245 * libgnat/a-szuzti.adb, libgnat/a-szuzti.ads: Likewise.
5246 * libgnat/a-szuzti__shared.adb, libgnat/a-tags.adb: Likewise.
5247 * libgnat/a-tags.ads, libgnat/a-teioed.adb, libgnat/a-teioed.ads: Likewise.
5248 * libgnat/a-textio.adb, libgnat/a-textio.ads: Likewise.
5249 * libgnat/a-tiboio.adb, libgnat/a-ticoau.adb: Likewise.
5250 * libgnat/a-ticoau.ads, libgnat/a-ticoio.adb: Likewise.
5251 * libgnat/a-ticoio.ads, libgnat/a-tideau.adb: Likewise.
5252 * libgnat/a-tideau.ads, libgnat/a-tideio.adb: Likewise.
5253 * libgnat/a-tideio.ads, libgnat/a-tideio__128.adb: Likewise.
5254 * libgnat/a-tienau.adb, libgnat/a-tienau.ads: Likewise.
5255 * libgnat/a-tienio.adb, libgnat/a-tifiau.adb: Likewise.
5256 * libgnat/a-tifiau.ads, libgnat/a-tifiio.adb: Likewise.
5257 * libgnat/a-tifiio__128.adb, libgnat/a-tiflau.adb: Likewise.
5258 * libgnat/a-tiflau.ads, libgnat/a-tiflio.adb: Likewise.
5259 * libgnat/a-tiflio.ads, libgnat/a-tigeau.adb: Likewise.
5260 * libgnat/a-tigeau.ads, libgnat/a-tigeli.adb: Likewise.
5261 * libgnat/a-tiinau.adb, libgnat/a-tiinau.ads: Likewise.
5262 * libgnat/a-tiinio.adb, libgnat/a-tiinio.ads: Likewise.
5263 * libgnat/a-tiinio__128.adb, libgnat/a-timoio.adb: Likewise.
5264 * libgnat/a-timoio.ads, libgnat/a-timoio__128.adb: Likewise.
5265 * libgnat/a-tiocst.adb, libgnat/a-tiocst.ads: Likewise.
5266 * libgnat/a-tirsfi.adb, libgnat/a-tirsfi.ads: Likewise.
5267 * libgnat/a-titest.adb, libgnat/a-undesu.adb: Likewise.
5268 * libgnat/a-wichha.adb, libgnat/a-wichun.adb: Likewise.
5269 * libgnat/a-wichun.ads, libgnat/a-witeio.adb: Likewise.
5270 * libgnat/a-witeio.ads, libgnat/a-wrstfi.adb: Likewise.
5271 * libgnat/a-wrstfi.ads, libgnat/a-wtcoau.adb: Likewise.
5272 * libgnat/a-wtcoau.ads, libgnat/a-wtcoio.adb: Likewise.
5273 * libgnat/a-wtcstr.adb, libgnat/a-wtcstr.ads: Likewise.
5274 * libgnat/a-wtdeau.adb, libgnat/a-wtdeau.ads: Likewise.
5275 * libgnat/a-wtdeio.adb, libgnat/a-wtdeio__128.adb: Likewise.
5276 * libgnat/a-wtedit.adb, libgnat/a-wtedit.ads: Likewise.
5277 * libgnat/a-wtenau.adb, libgnat/a-wtenau.ads: Likewise.
5278 * libgnat/a-wtenio.adb, libgnat/a-wtfiau.adb: Likewise.
5279 * libgnat/a-wtfiau.ads, libgnat/a-wtfiio.adb: Likewise.
5280 * libgnat/a-wtfiio__128.adb, libgnat/a-wtflau.adb: Likewise.
5281 * libgnat/a-wtflau.ads, libgnat/a-wtflio.adb: Likewise.
5282 * libgnat/a-wtgeau.adb, libgnat/a-wtgeau.ads: Likewise.
5283 * libgnat/a-wtinau.adb, libgnat/a-wtinau.ads: Likewise.
5284 * libgnat/a-wtinio.adb, libgnat/a-wtinio__128.adb: Likewise.
5285 * libgnat/a-wtmoio.adb, libgnat/a-wtmoio.ads: Likewise.
5286 * libgnat/a-wtmoio__128.adb, libgnat/a-wttest.adb: Likewise.
5287 * libgnat/a-wwboio.adb, libgnat/a-zchhan.adb: Likewise.
5288 * libgnat/a-zchuni.adb, libgnat/a-zchuni.ads: Likewise.
5289 * libgnat/a-zrstfi.adb, libgnat/a-zrstfi.ads: Likewise.
5290 * libgnat/a-ztcoau.adb, libgnat/a-ztcoio.adb: Likewise.
5291 * libgnat/a-ztcstr.adb, libgnat/a-ztcstr.ads: Likewise.
5292 * libgnat/a-ztdeau.adb, libgnat/a-ztdeau.ads: Likewise.
5293 * libgnat/a-ztdeio.adb, libgnat/a-ztdeio__128.adb: Likewise.
5294 * libgnat/a-ztedit.adb, libgnat/a-ztedit.ads: Likewise.
5295 * libgnat/a-ztenau.adb, libgnat/a-ztenau.ads: Likewise.
5296 * libgnat/a-ztenio.adb, libgnat/a-ztexio.adb: Likewise.
5297 * libgnat/a-ztexio.ads, libgnat/a-ztfiau.adb: Likewise.
5298 * libgnat/a-ztfiau.ads, libgnat/a-ztfiio.adb: Likewise.
5299 * libgnat/a-ztfiio__128.adb, libgnat/a-ztflau.adb: Likewise.
5300 * libgnat/a-ztflau.ads, libgnat/a-ztflio.adb: Likewise.
5301 * libgnat/a-ztgeau.adb, libgnat/a-ztgeau.ads: Likewise.
5302 * libgnat/a-ztinau.adb, libgnat/a-ztinau.ads: Likewise.
5303 * libgnat/a-ztinio.adb, libgnat/a-ztinio__128.adb: Likewise.
5304 * libgnat/a-ztmoio.adb, libgnat/a-ztmoio__128.adb: Likewise.
5305 * libgnat/a-zttest.adb, libgnat/a-zzboio.adb: Likewise.
5306 * libgnat/g-allein.ads, libgnat/g-alleve.adb: Likewise.
5307 * libgnat/g-alleve.ads, libgnat/g-alleve__hard.adb: Likewise.
5308 * libgnat/g-alleve__hard.ads, libgnat/g-altcon.adb: Likewise.
5309 * libgnat/g-altcon.ads, libgnat/g-altive.ads: Likewise.
5310 * libgnat/g-alveop.adb, libgnat/g-alveop.ads: Likewise.
5311 * libgnat/g-alvety.ads, libgnat/g-alvevi.ads: Likewise.
5312 * libgnat/g-arrspl.adb, libgnat/g-arrspl.ads, libgnat/g-awk.adb: Likewise.
5313 * libgnat/g-awk.ads, libgnat/g-binenv.adb, libgnat/g-binenv.ads: Likewise.
5314 * libgnat/g-binsea.adb, libgnat/g-binsea.ads: Likewise.
5315 * libgnat/g-brapre.ads, libgnat/g-bubsor.adb: Likewise.
5316 * libgnat/g-bubsor.ads, libgnat/g-busora.adb: Likewise.
5317 * libgnat/g-busora.ads, libgnat/g-busorg.adb: Likewise.
5318 * libgnat/g-busorg.ads, libgnat/g-byorma.adb: Likewise.
5319 * libgnat/g-byorma.ads, libgnat/g-bytswa.adb: Likewise.
5320 * libgnat/g-bytswa.ads, libgnat/g-calend.adb: Likewise.
5321 * libgnat/g-calend.ads, libgnat/g-casuti.adb: Likewise.
5322 * libgnat/g-casuti.ads, libgnat/g-catiio.adb: Likewise.
5323 * libgnat/g-catiio.ads, libgnat/g-cgi.adb, libgnat/g-cgi.ads: Likewise.
5324 * libgnat/g-cgicoo.adb, libgnat/g-cgicoo.ads: Likewise.
5325 * libgnat/g-cgideb.adb, libgnat/g-cgideb.ads: Likewise.
5326 * libgnat/g-comlin.adb, libgnat/g-comlin.ads: Likewise.
5327 * libgnat/g-comver.adb, libgnat/g-comver.ads: Likewise.
5328 * libgnat/g-cppexc.adb, libgnat/g-cppexc.ads, libgnat/g-crc32.adb: Likewise.
5329 * libgnat/g-crc32.ads, libgnat/g-ctrl_c.adb, libgnat/g-ctrl_c.ads: Likewise.
5330 * libgnat/g-curexc.ads, libgnat/g-debpoo.adb: Likewise.
5331 * libgnat/g-debpoo.ads, libgnat/g-debuti.adb: Likewise.
5332 * libgnat/g-debuti.ads, libgnat/g-decstr.adb: Likewise.
5333 * libgnat/g-decstr.ads, libgnat/g-deutst.ads: Likewise.
5334 * libgnat/g-diopit.adb, libgnat/g-diopit.ads: Likewise.
5335 * libgnat/g-dirope.adb, libgnat/g-dirope.ads: Likewise.
5336 * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads: Likewise.
5337 * libgnat/g-dyntab.adb, libgnat/g-dyntab.ads: Likewise.
5338 * libgnat/g-eacodu.adb, libgnat/g-encstr.adb: Likewise.
5339 * libgnat/g-encstr.ads, libgnat/g-enutst.ads: Likewise.
5340 * libgnat/g-excact.adb, libgnat/g-excact.ads: Likewise.
5341 * libgnat/g-except.ads, libgnat/g-exctra.adb: Likewise.
5342 * libgnat/g-exctra.ads, libgnat/g-expect.adb: Likewise.
5343 * libgnat/g-expect.ads, libgnat/g-exptty.adb: Likewise.
5344 * libgnat/g-exptty.ads, libgnat/g-flocon.ads: Likewise.
5345 * libgnat/g-forstr.adb, libgnat/g-forstr.ads: Likewise.
5346 * libgnat/g-gfmafu.ads, libgnat/g-graphs.adb: Likewise.
5347 * libgnat/g-graphs.ads, libgnat/g-heasor.adb: Likewise.
5348 * libgnat/g-heasor.ads, libgnat/g-hesora.adb: Likewise.
5349 * libgnat/g-hesora.ads, libgnat/g-hesorg.adb: Likewise.
5350 * libgnat/g-hesorg.ads, libgnat/g-htable.adb: Likewise.
5351 * libgnat/g-htable.ads, libgnat/g-io.adb, libgnat/g-io.ads: Likewise.
5352 * libgnat/g-io_aux.adb, libgnat/g-io_aux.ads, libgnat/g-lists.adb: Likewise.
5353 * libgnat/g-lists.ads, libgnat/g-locfil.adb, libgnat/g-locfil.ads: Likewise.
5354 * libgnat/g-mbdira.adb, libgnat/g-mbdira.ads: Likewise.
5355 * libgnat/g-mbflra.adb, libgnat/g-mbflra.ads, libgnat/g-md5.adb: Likewise.
5356 * libgnat/g-md5.ads, libgnat/g-memdum.adb, libgnat/g-memdum.ads: Likewise.
5357 * libgnat/g-moreex.adb, libgnat/g-moreex.ads: Likewise.
5358 * libgnat/g-os_lib.adb, libgnat/g-os_lib.ads: Likewise.
5359 * libgnat/g-pehage.adb, libgnat/g-pehage.ads: Likewise.
5360 * libgnat/g-rannum.adb, libgnat/g-rannum.ads: Likewise.
5361 * libgnat/g-regexp.adb, libgnat/g-regexp.ads: Likewise.
5362 * libgnat/g-regist.adb, libgnat/g-regist.ads: Likewise.
5363 * libgnat/g-regpat.adb, libgnat/g-regpat.ads: Likewise.
5364 * libgnat/g-rewdat.adb, libgnat/g-rewdat.ads: Likewise.
5365 * libgnat/g-sechas.adb, libgnat/g-sechas.ads: Likewise.
5366 * libgnat/g-sehamd.adb, libgnat/g-sehamd.ads: Likewise.
5367 * libgnat/g-sehash.adb, libgnat/g-sehash.ads: Likewise.
5368 * libgnat/g-sercom.adb, libgnat/g-sercom.ads: Likewise.
5369 * libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb: Likewise.
5370 * libgnat/g-sestin.ads, libgnat/g-sets.adb, libgnat/g-sets.ads: Likewise.
5371 * libgnat/g-sha1.adb, libgnat/g-sha1.ads, libgnat/g-sha224.ads: Likewise.
5372 * libgnat/g-sha256.ads, libgnat/g-sha384.ads: Likewise.
5373 * libgnat/g-sha512.ads, libgnat/g-shsh32.adb: Likewise.
5374 * libgnat/g-shsh32.ads, libgnat/g-shsh64.adb: Likewise.
5375 * libgnat/g-shsh64.ads, libgnat/g-shshco.adb: Likewise.
5376 * libgnat/g-shshco.ads, libgnat/g-soccon.ads: Likewise.
5377 * libgnat/g-socket.adb, libgnat/g-socket.ads: Likewise.
5378 * libgnat/g-socket__dummy.adb, libgnat/g-socket__dummy.ads: Likewise.
5379 * libgnat/g-socpol.adb, libgnat/g-socpol.ads: Likewise.
5380 * libgnat/g-socpol__dummy.adb, libgnat/g-socpol__dummy.ads: Likewise.
5381 * libgnat/g-socthi.adb, libgnat/g-socthi.ads: Likewise.
5382 * libgnat/g-socthi__dummy.adb, libgnat/g-socthi__dummy.ads: Likewise.
5383 * libgnat/g-socthi__mingw.adb, libgnat/g-socthi__mingw.ads: Likewise.
5384 * libgnat/g-socthi__vxworks.adb, libgnat/g-socthi__vxworks.ads: Likewise.
5385 * libgnat/g-soliop.ads, libgnat/g-soliop__lynxos.ads: Likewise.
5386 * libgnat/g-soliop__mingw.ads, libgnat/g-soliop__qnx.ads: Likewise.
5387 * libgnat/g-soliop__solaris.ads, libgnat/g-sopowa.adb: Likewise.
5388 * libgnat/g-sopowa__mingw.adb, libgnat/g-sopowa__posix.adb: Likewise.
5389 * libgnat/g-sothco.adb, libgnat/g-sothco.ads: Likewise.
5390 * libgnat/g-sothco__dummy.adb, libgnat/g-sothco__dummy.ads: Likewise.
5391 * libgnat/g-souinf.ads, libgnat/g-spchge.adb: Likewise.
5392 * libgnat/g-spchge.ads, libgnat/g-speche.adb: Likewise.
5393 * libgnat/g-speche.ads, libgnat/g-spipat.adb: Likewise.
5394 * libgnat/g-spipat.ads, libgnat/g-spitbo.adb: Likewise.
5395 * libgnat/g-spitbo.ads, libgnat/g-spogwa.adb: Likewise.
5396 * libgnat/g-spogwa.ads, libgnat/g-sptabo.ads: Likewise.
5397 * libgnat/g-sptain.ads, libgnat/g-sptavs.ads, libgnat/g-sse.ads: Likewise.
5398 * libgnat/g-ssvety.ads, libgnat/g-sthcso.adb: Likewise.
5399 * libgnat/g-stheme.adb, libgnat/g-strhas.ads: Likewise.
5400 * libgnat/g-string.adb, libgnat/g-string.ads: Likewise.
5401 * libgnat/g-strspl.ads, libgnat/g-stseme.adb: Likewise.
5402 * libgnat/g-stsifd__sockets.adb, libgnat/g-table.adb: Likewise.
5403 * libgnat/g-table.ads, libgnat/g-tasloc.adb, libgnat/g-tasloc.ads: Likewise.
5404 * libgnat/g-timsta.adb, libgnat/g-timsta.ads: Likewise.
5405 * libgnat/g-traceb.adb, libgnat/g-traceb.ads: Likewise.
5406 * libgnat/g-trasym.adb, libgnat/g-trasym.ads, libgnat/g-tty.adb: Likewise.
5407 * libgnat/g-tty.ads, libgnat/g-u3spch.adb, libgnat/g-u3spch.ads: Likewise.
5408 * libgnat/g-utf_32.adb, libgnat/g-utf_32.ads: Likewise.
5409 * libgnat/g-wispch.adb, libgnat/g-wispch.ads: Likewise.
5410 * libgnat/g-wistsp.ads, libgnat/g-zspche.adb: Likewise.
5411 * libgnat/g-zspche.ads, libgnat/g-zstspl.ads, libgnat/gnat.ads: Likewise.
5412 * libgnat/i-c.adb, libgnat/i-cexten.ads: Likewise.
5413 * libgnat/i-cexten__128.ads, libgnat/i-cobol.adb: Likewise.
5414 * libgnat/i-cobol.ads, libgnat/i-cpoint.adb, libgnat/i-cpoint.ads: Likewise.
5415 * libgnat/i-cstrea.adb, libgnat/i-cstrea.ads: Likewise.
5416 * libgnat/i-cstrin.adb, libgnat/i-cstrin.ads: Likewise.
5417 * libgnat/i-fortra.adb, libgnat/i-pacdec.adb: Likewise.
5418 * libgnat/i-pacdec.ads, libgnat/i-vxwoio.adb: Likewise.
5419 * libgnat/i-vxwoio.ads, libgnat/i-vxwork.ads: Likewise.
5420 * libgnat/i-vxwork__x86.ads, libgnat/interfac.ads: Likewise.
5421 * libgnat/interfac__2020.ads, libgnat/memtrack.adb: Likewise.
5422 * libgnat/s-addima.adb, libgnat/s-addima.ads: Likewise.
5423 * libgnat/s-addope.adb, libgnat/s-addope.ads: Likewise.
5424 * libgnat/s-aoinar.adb, libgnat/s-aoinar.ads: Likewise.
5425 * libgnat/s-aomoar.adb, libgnat/s-aomoar.ads: Likewise.
5426 * libgnat/s-aotase.adb, libgnat/s-aotase.ads: Likewise.
5427 * libgnat/s-aridou.adb, libgnat/s-aridou.ads: Likewise.
5428 * libgnat/s-arit128.adb, libgnat/s-arit128.ads: Likewise.
5429 * libgnat/s-arit32.adb, libgnat/s-arit32.ads: Likewise.
5430 * libgnat/s-arit64.adb, libgnat/s-arit64.ads: Likewise.
5431 * libgnat/s-assert.adb, libgnat/s-assert.ads: Likewise.
5432 * libgnat/s-atacco.adb, libgnat/s-atacco.ads: Likewise.
5433 * libgnat/s-atocou.adb, libgnat/s-atocou.ads: Likewise.
5434 * libgnat/s-atocou__builtin.adb, libgnat/s-atoope.ads: Likewise.
5435 * libgnat/s-atopex.adb, libgnat/s-atopex.ads: Likewise.
5436 * libgnat/s-atopri.adb, libgnat/s-atopri.ads: Likewise.
5437 * libgnat/s-auxdec.adb, libgnat/s-auxdec.ads: Likewise.
5438 * libgnat/s-bignum.adb, libgnat/s-bignum.ads: Likewise.
5439 * libgnat/s-bitfie.ads, libgnat/s-bitops.adb: Likewise.
5440 * libgnat/s-bitops.ads, libgnat/s-bituti.adb: Likewise.
5441 * libgnat/s-bituti.ads, libgnat/s-boarop.ads: Likewise.
5442 * libgnat/s-boustr.adb, libgnat/s-boustr.ads: Likewise.
5443 * libgnat/s-bytswa.ads, libgnat/s-carsi8.adb: Likewise.
5444 * libgnat/s-carsi8.ads, libgnat/s-carun8.adb: Likewise.
5445 * libgnat/s-carun8.ads, libgnat/s-casi128.adb: Likewise.
5446 * libgnat/s-casi128.ads, libgnat/s-casi16.adb: Likewise.
5447 * libgnat/s-casi16.ads, libgnat/s-casi32.adb: Likewise.
5448 * libgnat/s-casi32.ads, libgnat/s-casi64.adb: Likewise.
5449 * libgnat/s-casi64.ads, libgnat/s-casuti.adb: Likewise.
5450 * libgnat/s-casuti.ads, libgnat/s-caun128.adb: Likewise.
5451 * libgnat/s-caun128.ads, libgnat/s-caun16.adb: Likewise.
5452 * libgnat/s-caun16.ads, libgnat/s-caun32.adb: Likewise.
5453 * libgnat/s-caun32.ads, libgnat/s-caun64.adb: Likewise.
5454 * libgnat/s-caun64.ads, libgnat/s-chepoo.ads: Likewise.
5455 * libgnat/s-commun.adb, libgnat/s-commun.ads: Likewise.
5456 * libgnat/s-conca2.adb, libgnat/s-conca2.ads: Likewise.
5457 * libgnat/s-conca3.adb, libgnat/s-conca3.ads: Likewise.
5458 * libgnat/s-conca4.adb, libgnat/s-conca4.ads: Likewise.
5459 * libgnat/s-conca5.adb, libgnat/s-conca5.ads: Likewise.
5460 * libgnat/s-conca6.adb, libgnat/s-conca6.ads: Likewise.
5461 * libgnat/s-conca7.adb, libgnat/s-conca7.ads: Likewise.
5462 * libgnat/s-conca8.adb, libgnat/s-conca8.ads: Likewise.
5463 * libgnat/s-conca9.adb, libgnat/s-conca9.ads, libgnat/s-crc32.adb: Likewise.
5464 * libgnat/s-crc32.ads, libgnat/s-crtl.ads, libgnat/s-dfmkio.ads: Likewise.
5465 * libgnat/s-dfmopr.ads, libgnat/s-dgmgop.ads: Likewise.
5466 * libgnat/s-diflio.adb, libgnat/s-diflio.ads: Likewise.
5467 * libgnat/s-diflmk.ads, libgnat/s-digemk.ads: Likewise.
5468 * libgnat/s-diinio.adb, libgnat/s-diinio.ads: Likewise.
5469 * libgnat/s-dilomk.ads, libgnat/s-dim.ads, libgnat/s-dimkio.ads: Likewise.
5470 * libgnat/s-dimmks.ads, libgnat/s-direio.adb: Likewise.
5471 * libgnat/s-direio.ads, libgnat/s-dlmkio.ads: Likewise.
5472 * libgnat/s-dlmopr.ads, libgnat/s-dmotpr.ads: Likewise.
5473 * libgnat/s-dorepr.adb, libgnat/s-dorepr__fma.adb: Likewise.
5474 * libgnat/s-dourea.adb, libgnat/s-dourea.ads: Likewise.
5475 * libgnat/s-dsaser.ads, libgnat/s-dwalin.adb: Likewise.
5476 * libgnat/s-dwalin.ads, libgnat/s-elaall.adb: Likewise.
5477 * libgnat/s-elaall.ads, libgnat/s-excdeb.adb: Likewise.
5478 * libgnat/s-excdeb.ads, libgnat/s-except.adb: Likewise.
5479 * libgnat/s-except.ads, libgnat/s-excmac__arm.adb: Likewise.
5480 * libgnat/s-excmac__arm.ads, libgnat/s-excmac__gcc.adb: Likewise.
5481 * libgnat/s-excmac__gcc.ads, libgnat/s-exctab.adb: Likewise.
5482 * libgnat/s-exctab.ads, libgnat/s-exctra.adb: Likewise.
5483 * libgnat/s-exctra.ads, libgnat/s-exnflt.ads: Likewise.
5484 * libgnat/s-exnint.adb, libgnat/s-exnint.ads: Likewise.
5485 * libgnat/s-exnlfl.ads, libgnat/s-exnllf.adb: Likewise.
5486 * libgnat/s-exnllf.ads, libgnat/s-exnlli.adb: Likewise.
5487 * libgnat/s-exnlli.ads, libgnat/s-exnllli.ads: Likewise.
5488 * libgnat/s-expint.adb, libgnat/s-expint.ads: Likewise.
5489 * libgnat/s-explli.adb, libgnat/s-explli.ads: Likewise.
5490 * libgnat/s-expllli.ads, libgnat/s-explllu.ads: Likewise.
5491 * libgnat/s-expllu.adb, libgnat/s-expllu.ads: Likewise.
5492 * libgnat/s-expmod.adb, libgnat/s-expmod.ads: Likewise.
5493 * libgnat/s-exponn.adb, libgnat/s-exponn.ads: Likewise.
5494 * libgnat/s-exponr.adb, libgnat/s-exponr.ads: Likewise.
5495 * libgnat/s-expont.adb, libgnat/s-expont.ads: Likewise.
5496 * libgnat/s-exponu.adb, libgnat/s-exponu.ads: Likewise.
5497 * libgnat/s-expuns.adb, libgnat/s-expuns.ads: Likewise.
5498 * libgnat/s-fatflt.ads, libgnat/s-fatgen.adb: Likewise.
5499 * libgnat/s-fatgen.ads, libgnat/s-fatlfl.ads: Likewise.
5500 * libgnat/s-fatllf.ads, libgnat/s-ficobl.ads: Likewise.
5501 * libgnat/s-filatt.ads, libgnat/s-fileio.adb: Likewise.
5502 * libgnat/s-fileio.ads, libgnat/s-finmas.adb: Likewise.
5503 * libgnat/s-finmas.ads, libgnat/s-finroo.adb: Likewise.
5504 * libgnat/s-finroo.ads, libgnat/s-flocon.adb: Likewise.
5505 * libgnat/s-flocon.ads, libgnat/s-flocon__none.adb: Likewise.
5506 * libgnat/s-fode128.ads, libgnat/s-fode32.ads: Likewise.
5507 * libgnat/s-fode64.ads, libgnat/s-fofi128.ads: Likewise.
5508 * libgnat/s-fofi32.ads, libgnat/s-fofi64.ads: Likewise.
5509 * libgnat/s-fore_d.adb, libgnat/s-fore_d.ads: Likewise.
5510 * libgnat/s-fore_f.adb, libgnat/s-fore_f.ads: Likewise.
5511 * libgnat/s-forrea.adb, libgnat/s-forrea.ads: Likewise.
5512 * libgnat/s-gearop.adb, libgnat/s-gearop.ads: Likewise.
5513 * libgnat/s-genbig.adb, libgnat/s-genbig.ads: Likewise.
5514 * libgnat/s-geveop.adb, libgnat/s-geveop.ads: Likewise.
5515 * libgnat/s-gloloc.adb, libgnat/s-gloloc.ads: Likewise.
5516 * libgnat/s-gloloc__mingw.adb, libgnat/s-htable.adb: Likewise.
5517 * libgnat/s-htable.ads, libgnat/s-imageb.adb: Likewise.
5518 * libgnat/s-imageb.ads, libgnat/s-imaged.adb: Likewise.
5519 * libgnat/s-imaged.ads, libgnat/s-imagef.adb: Likewise.
5520 * libgnat/s-imagef.ads, libgnat/s-imagei.adb: Likewise.
5521 * libgnat/s-imagei.ads, libgnat/s-imagen.adb: Likewise.
5522 * libgnat/s-imagen.ads, libgnat/s-imager.adb: Likewise.
5523 * libgnat/s-imager.ads, libgnat/s-imageu.adb: Likewise.
5524 * libgnat/s-imageu.ads, libgnat/s-imagew.adb: Likewise.
5525 * libgnat/s-imagew.ads, libgnat/s-imde128.ads: Likewise.
5526 * libgnat/s-imde32.ads, libgnat/s-imde64.ads: Likewise.
5527 * libgnat/s-imen16.ads, libgnat/s-imen32.ads: Likewise.
5528 * libgnat/s-imenu8.ads, libgnat/s-imfi128.ads: Likewise.
5529 * libgnat/s-imfi32.ads, libgnat/s-imfi64.ads: Likewise.
5530 * libgnat/s-imgbiu.adb, libgnat/s-imgbiu.ads: Likewise.
5531 * libgnat/s-imgboo.adb, libgnat/s-imgboo.ads: Likewise.
5532 * libgnat/s-imgcha.adb, libgnat/s-imgcha.ads: Likewise.
5533 * libgnat/s-imgflt.ads, libgnat/s-imgint.adb: Likewise.
5534 * libgnat/s-imgint.ads, libgnat/s-imglfl.ads: Likewise.
5535 * libgnat/s-imgllb.adb, libgnat/s-imgllb.ads: Likewise.
5536 * libgnat/s-imgllf.ads, libgnat/s-imglli.adb: Likewise.
5537 * libgnat/s-imglli.ads, libgnat/s-imglllb.ads: Likewise.
5538 * libgnat/s-imgllli.ads, libgnat/s-imglllu.ads: Likewise.
5539 * libgnat/s-imglllw.ads, libgnat/s-imgllu.adb: Likewise.
5540 * libgnat/s-imgllu.ads, libgnat/s-imgllw.adb: Likewise.
5541 * libgnat/s-imgllw.ads, libgnat/s-imgrea.adb: Likewise.
5542 * libgnat/s-imgrea.ads, libgnat/s-imguns.adb: Likewise.
5543 * libgnat/s-imguns.ads, libgnat/s-imguti.adb: Likewise.
5544 * libgnat/s-imguti.ads, libgnat/s-imgwch.adb: Likewise.
5545 * libgnat/s-imgwch.ads, libgnat/s-imgwiu.adb: Likewise.
5546 * libgnat/s-imgwiu.ads, libgnat/s-io.adb, libgnat/s-io.ads: Likewise.
5547 * libgnat/s-llflex.ads, libgnat/s-maccod.ads: Likewise.
5548 * libgnat/s-mantis.adb, libgnat/s-mantis.ads: Likewise.
5549 * libgnat/s-mastop.adb, libgnat/s-mastop.ads: Likewise.
5550 * libgnat/s-memcop.ads, libgnat/s-memory.adb: Likewise.
5551 * libgnat/s-memory.ads, libgnat/s-mmap.adb, libgnat/s-mmap.ads: Likewise.
5552 * libgnat/s-mmauni__long.ads, libgnat/s-mmosin__mingw.adb: Likewise.
5553 * libgnat/s-mmosin__mingw.ads, libgnat/s-mmosin__unix.adb: Likewise.
5554 * libgnat/s-mmosin__unix.ads, libgnat/s-multip.adb: Likewise.
5555 * libgnat/s-objrea.adb, libgnat/s-objrea.ads: Likewise.
5556 * libgnat/s-optide.adb, libgnat/s-os_lib.adb: Likewise.
5557 * libgnat/s-os_lib.ads, libgnat/s-osprim.ads: Likewise.
5558 * libgnat/s-osprim__darwin.adb, libgnat/s-osprim__lynxos.ads: Likewise.
5559 * libgnat/s-osprim__mingw.adb, libgnat/s-osprim__posix.adb: Likewise.
5560 * libgnat/s-osprim__posix2008.adb, libgnat/s-osprim__rtems.adb: Likewise.
5561 * libgnat/s-osprim__solaris.adb, libgnat/s-osprim__unix.adb: Likewise.
5562 * libgnat/s-osprim__x32.adb, libgnat/s-pack03.adb: Likewise.
5563 * libgnat/s-pack03.ads, libgnat/s-pack05.adb: Likewise.
5564 * libgnat/s-pack05.ads, libgnat/s-pack06.adb: Likewise.
5565 * libgnat/s-pack06.ads, libgnat/s-pack07.adb: Likewise.
5566 * libgnat/s-pack07.ads, libgnat/s-pack09.adb: Likewise.
5567 * libgnat/s-pack09.ads, libgnat/s-pack10.adb: Likewise.
5568 * libgnat/s-pack10.ads, libgnat/s-pack100.adb: Likewise.
5569 * libgnat/s-pack100.ads, libgnat/s-pack101.adb: Likewise.
5570 * libgnat/s-pack101.ads, libgnat/s-pack102.adb: Likewise.
5571 * libgnat/s-pack102.ads, libgnat/s-pack103.adb: Likewise.
5572 * libgnat/s-pack103.ads, libgnat/s-pack104.adb: Likewise.
5573 * libgnat/s-pack104.ads, libgnat/s-pack105.adb: Likewise.
5574 * libgnat/s-pack105.ads, libgnat/s-pack106.adb: Likewise.
5575 * libgnat/s-pack106.ads, libgnat/s-pack107.adb: Likewise.
5576 * libgnat/s-pack107.ads, libgnat/s-pack108.adb: Likewise.
5577 * libgnat/s-pack108.ads, libgnat/s-pack109.adb: Likewise.
5578 * libgnat/s-pack109.ads, libgnat/s-pack11.adb: Likewise.
5579 * libgnat/s-pack11.ads, libgnat/s-pack110.adb: Likewise.
5580 * libgnat/s-pack110.ads, libgnat/s-pack111.adb: Likewise.
5581 * libgnat/s-pack111.ads, libgnat/s-pack112.adb: Likewise.
5582 * libgnat/s-pack112.ads, libgnat/s-pack113.adb: Likewise.
5583 * libgnat/s-pack113.ads, libgnat/s-pack114.adb: Likewise.
5584 * libgnat/s-pack114.ads, libgnat/s-pack115.adb: Likewise.
5585 * libgnat/s-pack115.ads, libgnat/s-pack116.adb: Likewise.
5586 * libgnat/s-pack116.ads, libgnat/s-pack117.adb: Likewise.
5587 * libgnat/s-pack117.ads, libgnat/s-pack118.adb: Likewise.
5588 * libgnat/s-pack118.ads, libgnat/s-pack119.adb: Likewise.
5589 * libgnat/s-pack119.ads, libgnat/s-pack12.adb: Likewise.
5590 * libgnat/s-pack12.ads, libgnat/s-pack120.adb: Likewise.
5591 * libgnat/s-pack120.ads, libgnat/s-pack121.adb: Likewise.
5592 * libgnat/s-pack121.ads, libgnat/s-pack122.adb: Likewise.
5593 * libgnat/s-pack122.ads, libgnat/s-pack123.adb: Likewise.
5594 * libgnat/s-pack123.ads, libgnat/s-pack124.adb: Likewise.
5595 * libgnat/s-pack124.ads, libgnat/s-pack125.adb: Likewise.
5596 * libgnat/s-pack125.ads, libgnat/s-pack126.adb: Likewise.
5597 * libgnat/s-pack126.ads, libgnat/s-pack127.adb: Likewise.
5598 * libgnat/s-pack127.ads, libgnat/s-pack13.adb: Likewise.
5599 * libgnat/s-pack13.ads, libgnat/s-pack14.adb: Likewise.
5600 * libgnat/s-pack14.ads, libgnat/s-pack15.adb: Likewise.
5601 * libgnat/s-pack15.ads, libgnat/s-pack17.adb: Likewise.
5602 * libgnat/s-pack17.ads, libgnat/s-pack18.adb: Likewise.
5603 * libgnat/s-pack18.ads, libgnat/s-pack19.adb: Likewise.
5604 * libgnat/s-pack19.ads, libgnat/s-pack20.adb: Likewise.
5605 * libgnat/s-pack20.ads, libgnat/s-pack21.adb: Likewise.
5606 * libgnat/s-pack21.ads, libgnat/s-pack22.adb: Likewise.
5607 * libgnat/s-pack22.ads, libgnat/s-pack23.adb: Likewise.
5608 * libgnat/s-pack23.ads, libgnat/s-pack24.adb: Likewise.
5609 * libgnat/s-pack24.ads, libgnat/s-pack25.adb: Likewise.
5610 * libgnat/s-pack25.ads, libgnat/s-pack26.adb: Likewise.
5611 * libgnat/s-pack26.ads, libgnat/s-pack27.adb: Likewise.
5612 * libgnat/s-pack27.ads, libgnat/s-pack28.adb: Likewise.
5613 * libgnat/s-pack28.ads, libgnat/s-pack29.adb: Likewise.
5614 * libgnat/s-pack29.ads, libgnat/s-pack30.adb: Likewise.
5615 * libgnat/s-pack30.ads, libgnat/s-pack31.adb: Likewise.
5616 * libgnat/s-pack31.ads, libgnat/s-pack33.adb: Likewise.
5617 * libgnat/s-pack33.ads, libgnat/s-pack34.adb: Likewise.
5618 * libgnat/s-pack34.ads, libgnat/s-pack35.adb: Likewise.
5619 * libgnat/s-pack35.ads, libgnat/s-pack36.adb: Likewise.
5620 * libgnat/s-pack36.ads, libgnat/s-pack37.adb: Likewise.
5621 * libgnat/s-pack37.ads, libgnat/s-pack38.adb: Likewise.
5622 * libgnat/s-pack38.ads, libgnat/s-pack39.adb: Likewise.
5623 * libgnat/s-pack39.ads, libgnat/s-pack40.adb: Likewise.
5624 * libgnat/s-pack40.ads, libgnat/s-pack41.adb: Likewise.
5625 * libgnat/s-pack41.ads, libgnat/s-pack42.adb: Likewise.
5626 * libgnat/s-pack42.ads, libgnat/s-pack43.adb: Likewise.
5627 * libgnat/s-pack43.ads, libgnat/s-pack44.adb: Likewise.
5628 * libgnat/s-pack44.ads, libgnat/s-pack45.adb: Likewise.
5629 * libgnat/s-pack45.ads, libgnat/s-pack46.adb: Likewise.
5630 * libgnat/s-pack46.ads, libgnat/s-pack47.adb: Likewise.
5631 * libgnat/s-pack47.ads, libgnat/s-pack48.adb: Likewise.
5632 * libgnat/s-pack48.ads, libgnat/s-pack49.adb: Likewise.
5633 * libgnat/s-pack49.ads, libgnat/s-pack50.adb: Likewise.
5634 * libgnat/s-pack50.ads, libgnat/s-pack51.adb: Likewise.
5635 * libgnat/s-pack51.ads, libgnat/s-pack52.adb: Likewise.
5636 * libgnat/s-pack52.ads, libgnat/s-pack53.adb: Likewise.
5637 * libgnat/s-pack53.ads, libgnat/s-pack54.adb: Likewise.
5638 * libgnat/s-pack54.ads, libgnat/s-pack55.adb: Likewise.
5639 * libgnat/s-pack55.ads, libgnat/s-pack56.adb: Likewise.
5640 * libgnat/s-pack56.ads, libgnat/s-pack57.adb: Likewise.
5641 * libgnat/s-pack57.ads, libgnat/s-pack58.adb: Likewise.
5642 * libgnat/s-pack58.ads, libgnat/s-pack59.adb: Likewise.
5643 * libgnat/s-pack59.ads, libgnat/s-pack60.adb: Likewise.
5644 * libgnat/s-pack60.ads, libgnat/s-pack61.adb: Likewise.
5645 * libgnat/s-pack61.ads, libgnat/s-pack62.adb: Likewise.
5646 * libgnat/s-pack62.ads, libgnat/s-pack63.adb: Likewise.
5647 * libgnat/s-pack63.ads, libgnat/s-pack65.adb: Likewise.
5648 * libgnat/s-pack65.ads, libgnat/s-pack66.adb: Likewise.
5649 * libgnat/s-pack66.ads, libgnat/s-pack67.adb: Likewise.
5650 * libgnat/s-pack67.ads, libgnat/s-pack68.adb: Likewise.
5651 * libgnat/s-pack68.ads, libgnat/s-pack69.adb: Likewise.
5652 * libgnat/s-pack69.ads, libgnat/s-pack70.adb: Likewise.
5653 * libgnat/s-pack70.ads, libgnat/s-pack71.adb: Likewise.
5654 * libgnat/s-pack71.ads, libgnat/s-pack72.adb: Likewise.
5655 * libgnat/s-pack72.ads, libgnat/s-pack73.adb: Likewise.
5656 * libgnat/s-pack73.ads, libgnat/s-pack74.adb: Likewise.
5657 * libgnat/s-pack74.ads, libgnat/s-pack75.adb: Likewise.
5658 * libgnat/s-pack75.ads, libgnat/s-pack76.adb: Likewise.
5659 * libgnat/s-pack76.ads, libgnat/s-pack77.adb: Likewise.
5660 * libgnat/s-pack77.ads, libgnat/s-pack78.adb: Likewise.
5661 * libgnat/s-pack78.ads, libgnat/s-pack79.adb: Likewise.
5662 * libgnat/s-pack79.ads, libgnat/s-pack80.adb: Likewise.
5663 * libgnat/s-pack80.ads, libgnat/s-pack81.adb: Likewise.
5664 * libgnat/s-pack81.ads, libgnat/s-pack82.adb: Likewise.
5665 * libgnat/s-pack82.ads, libgnat/s-pack83.adb: Likewise.
5666 * libgnat/s-pack83.ads, libgnat/s-pack84.adb: Likewise.
5667 * libgnat/s-pack84.ads, libgnat/s-pack85.adb: Likewise.
5668 * libgnat/s-pack85.ads, libgnat/s-pack86.adb: Likewise.
5669 * libgnat/s-pack86.ads, libgnat/s-pack87.adb: Likewise.
5670 * libgnat/s-pack87.ads, libgnat/s-pack88.adb: Likewise.
5671 * libgnat/s-pack88.ads, libgnat/s-pack89.adb: Likewise.
5672 * libgnat/s-pack89.ads, libgnat/s-pack90.adb: Likewise.
5673 * libgnat/s-pack90.ads, libgnat/s-pack91.adb: Likewise.
5674 * libgnat/s-pack91.ads, libgnat/s-pack92.adb: Likewise.
5675 * libgnat/s-pack92.ads, libgnat/s-pack93.adb: Likewise.
5676 * libgnat/s-pack93.ads, libgnat/s-pack94.adb: Likewise.
5677 * libgnat/s-pack94.ads, libgnat/s-pack95.adb: Likewise.
5678 * libgnat/s-pack95.ads, libgnat/s-pack96.adb: Likewise.
5679 * libgnat/s-pack96.ads, libgnat/s-pack97.adb: Likewise.
5680 * libgnat/s-pack97.ads, libgnat/s-pack98.adb: Likewise.
5681 * libgnat/s-pack98.ads, libgnat/s-pack99.adb: Likewise.
5682 * libgnat/s-pack99.ads, libgnat/s-parame.adb: Likewise.
5683 * libgnat/s-parame.ads, libgnat/s-parame__hpux.ads: Likewise.
5684 * libgnat/s-parame__posix2008.ads, libgnat/s-parame__rtems.adb: Likewise.
5685 * libgnat/s-parame__vxworks.adb, libgnat/s-parame__vxworks.ads: Likewise.
5686 * libgnat/s-parint.adb, libgnat/s-parint.ads: Likewise.
5687 * libgnat/s-pehage.adb, libgnat/s-pehage.ads: Likewise.
5688 * libgnat/s-pooglo.adb, libgnat/s-pooglo.ads: Likewise.
5689 * libgnat/s-pooloc.adb, libgnat/s-pooloc.ads: Likewise.
5690 * libgnat/s-poosiz.adb, libgnat/s-poosiz.ads: Likewise.
5691 * libgnat/s-powflt.ads, libgnat/s-powlfl.ads: Likewise.
5692 * libgnat/s-powllf.ads, libgnat/s-purexc.ads: Likewise.
5693 * libgnat/s-putima.adb, libgnat/s-putima.ads: Likewise.
5694 * libgnat/s-rannum.adb, libgnat/s-rannum.ads: Likewise.
5695 * libgnat/s-ransee.adb, libgnat/s-ransee.ads: Likewise.
5696 * libgnat/s-regexp.adb, libgnat/s-regexp.ads: Likewise.
5697 * libgnat/s-regpat.adb, libgnat/s-regpat.ads: Likewise.
5698 * libgnat/s-resfil.adb, libgnat/s-resfil.ads: Likewise.
5699 * libgnat/s-restri.adb, libgnat/s-restri.ads: Likewise.
5700 * libgnat/s-retsta.ads, libgnat/s-rident.ads, libgnat/s-rpc.adb: Likewise.
5701 * libgnat/s-rpc.ads, libgnat/s-scaval.adb, libgnat/s-scaval.ads: Likewise.
5702 * libgnat/s-scaval__128.adb, libgnat/s-scaval__128.ads: Likewise.
5703 * libgnat/s-secsta.adb, libgnat/s-secsta.ads: Likewise.
5704 * libgnat/s-sequio.adb, libgnat/s-sequio.ads: Likewise.
5705 * libgnat/s-shabig.ads, libgnat/s-shasto.adb: Likewise.
5706 * libgnat/s-shasto.ads, libgnat/s-soflin.adb: Likewise.
5707 * libgnat/s-soflin.ads, libgnat/s-soliin.adb: Likewise.
5708 * libgnat/s-soliin.ads, libgnat/s-spark.ads, libgnat/s-spcuop.adb: Likewise.
5709 * libgnat/s-spcuop.ads, libgnat/s-spsufi.adb: Likewise.
5710 * libgnat/s-spsufi.ads, libgnat/s-stache.adb: Likewise.
5711 * libgnat/s-stache.ads, libgnat/s-stalib.adb: Likewise.
5712 * libgnat/s-stalib.ads, libgnat/s-statxd.adb: Likewise.
5713 * libgnat/s-statxd.ads, libgnat/s-stausa.adb: Likewise.
5714 * libgnat/s-stausa.ads, libgnat/s-stchop.adb: Likewise.
5715 * libgnat/s-stchop.ads, libgnat/s-stchop__limit.ads: Likewise.
5716 * libgnat/s-stchop__vxworks.adb, libgnat/s-stoele.adb: Likewise.
5717 * libgnat/s-stoele.ads, libgnat/s-stopoo.adb: Likewise.
5718 * libgnat/s-stopoo.ads, libgnat/s-stposu.adb: Likewise.
5719 * libgnat/s-stposu.ads, libgnat/s-stratt.adb: Likewise.
5720 * libgnat/s-stratt.ads, libgnat/s-strcom.adb: Likewise.
5721 * libgnat/s-strcom.ads, libgnat/s-strhas.adb: Likewise.
5722 * libgnat/s-strhas.ads, libgnat/s-string.adb: Likewise.
5723 * libgnat/s-string.ads, libgnat/s-ststop.adb: Likewise.
5724 * libgnat/s-ststop.ads, libgnat/s-tasloc.adb: Likewise.
5725 * libgnat/s-tasloc.ads, libgnat/s-traceb.adb: Likewise.
5726 * libgnat/s-traceb.ads, libgnat/s-traceb__hpux.adb: Likewise.
5727 * libgnat/s-traceb__mastop.adb, libgnat/s-traent.adb: Likewise.
5728 * libgnat/s-traent.ads, libgnat/s-trasym.adb: Likewise.
5729 * libgnat/s-trasym.ads, libgnat/s-trasym__dwarf.adb: Likewise.
5730 * libgnat/s-tsmona.adb, libgnat/s-tsmona__linux.adb: Likewise.
5731 * libgnat/s-tsmona__mingw.adb, libgnat/s-unstyp.ads: Likewise.
5732 * libgnat/s-utf_32.adb, libgnat/s-utf_32.ads: Likewise.
5733 * libgnat/s-vade128.ads, libgnat/s-vade32.ads: Likewise.
5734 * libgnat/s-vade64.ads, libgnat/s-vaen16.ads: Likewise.
5735 * libgnat/s-vaen32.ads, libgnat/s-vaenu8.ads: Likewise.
5736 * libgnat/s-vafi128.ads, libgnat/s-vafi32.ads: Likewise.
5737 * libgnat/s-vafi64.ads, libgnat/s-vaispe.adb: Likewise.
5738 * libgnat/s-vaispe.ads, libgnat/s-valboo.adb: Likewise.
5739 * libgnat/s-valboo.ads, libgnat/s-valcha.adb: Likewise.
5740 * libgnat/s-valcha.ads, libgnat/s-valflt.ads: Likewise.
5741 * libgnat/s-valint.adb, libgnat/s-valint.ads: Likewise.
5742 * libgnat/s-vallfl.ads, libgnat/s-valllf.ads: Likewise.
5743 * libgnat/s-vallli.adb, libgnat/s-vallli.ads: Likewise.
5744 * libgnat/s-valllli.ads, libgnat/s-vallllu.ads: Likewise.
5745 * libgnat/s-valllu.adb, libgnat/s-valllu.ads: Likewise.
5746 * libgnat/s-valrea.adb, libgnat/s-valrea.ads: Likewise.
5747 * libgnat/s-valued.adb, libgnat/s-valued.ads: Likewise.
5748 * libgnat/s-valuef.adb, libgnat/s-valuef.ads: Likewise.
5749 * libgnat/s-valuei.adb, libgnat/s-valuei.ads: Likewise.
5750 * libgnat/s-valuen.adb, libgnat/s-valuen.ads: Likewise.
5751 * libgnat/s-valuer.adb, libgnat/s-valuer.ads: Likewise.
5752 * libgnat/s-valueu.adb, libgnat/s-valueu.ads: Likewise.
5753 * libgnat/s-valuns.adb, libgnat/s-valuns.ads: Likewise.
5754 * libgnat/s-valuti.adb, libgnat/s-valuti.ads: Likewise.
5755 * libgnat/s-valwch.adb, libgnat/s-valwch.ads: Likewise.
5756 * libgnat/s-vauspe.adb, libgnat/s-vauspe.ads: Likewise.
5757 * libgnat/s-veboop.adb, libgnat/s-veboop.ads: Likewise.
5758 * libgnat/s-vector.ads, libgnat/s-vercon.adb: Likewise.
5759 * libgnat/s-vercon.ads, libgnat/s-wchcnv.adb: Likewise.
5760 * libgnat/s-wchcnv.ads, libgnat/s-wchcon.adb: Likewise.
5761 * libgnat/s-wchcon.ads, libgnat/s-wchjis.adb: Likewise.
5762 * libgnat/s-wchjis.ads, libgnat/s-wchstw.adb: Likewise.
5763 * libgnat/s-wchstw.ads, libgnat/s-wchwts.adb: Likewise.
5764 * libgnat/s-wchwts.ads, libgnat/s-widboo.adb: Likewise.
5765 * libgnat/s-widboo.ads, libgnat/s-widcha.adb: Likewise.
5766 * libgnat/s-widcha.ads, libgnat/s-widenu.adb: Likewise.
5767 * libgnat/s-widenu.ads, libgnat/s-widint.ads: Likewise.
5768 * libgnat/s-widlli.adb, libgnat/s-widlli.ads: Likewise.
5769 * libgnat/s-widllli.ads, libgnat/s-widlllu.ads: Likewise.
5770 * libgnat/s-widllu.adb, libgnat/s-widllu.ads: Likewise.
5771 * libgnat/s-widthi.adb, libgnat/s-widthi.ads: Likewise.
5772 * libgnat/s-widthu.adb, libgnat/s-widthu.ads: Likewise.
5773 * libgnat/s-widuns.ads, libgnat/s-widwch.adb: Likewise.
5774 * libgnat/s-widwch.ads, libgnat/s-win32.ads, libgnat/s-winext.ads: Likewise.
5775 * libgnat/s-wwdcha.adb, libgnat/s-wwdcha.ads: Likewise.
5776 * libgnat/s-wwdenu.adb, libgnat/s-wwdenu.ads: Likewise.
5777 * libgnat/s-wwdwch.adb, libgnat/s-wwdwch.ads: Likewise.
5778 * libgnat/system-aix.ads, libgnat/system-darwin-arm.ads: Likewise.
5779 * libgnat/system-darwin-ppc.ads, libgnat/system-darwin-x86.ads: Likewise.
5780 * libgnat/system-djgpp.ads, libgnat/system-dragonfly-x86_64.ads: Likewise.
5781 * libgnat/system-freebsd.ads, libgnat/system-hpux-ia64.ads: Likewise.
5782 * libgnat/system-hpux.ads, libgnat/system-linux-alpha.ads: Likewise.
5783 * libgnat/system-linux-arm.ads, libgnat/system-linux-hppa.ads: Likewise.
5784 * libgnat/system-linux-ia64.ads, libgnat/system-linux-m68k.ads: Likewise.
5785 * libgnat/system-linux-mips.ads, libgnat/system-linux-ppc.ads: Likewise.
5786 * libgnat/system-linux-riscv.ads, libgnat/system-linux-s390.ads: Likewise.
5787 * libgnat/system-linux-sh4.ads, libgnat/system-linux-sparc.ads: Likewise.
5788 * libgnat/system-linux-x86.ads, libgnat/system-lynxos178-ppc.ads: Likewise.
5789 * libgnat/system-lynxos178-x86.ads, libgnat/system-mingw.ads: Likewise.
5790 * libgnat/system-qnx-arm.ads, libgnat/system-rtems.ads: Likewise.
5791 * libgnat/system-solaris-sparc.ads: Likewise.
5792 * libgnat/system-solaris-x86.ads: Likewise.
5793 * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
5794 * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
5795 * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
5796 * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
5797 * libgnat/system-vxworks7-aarch64.ads: Likewise.
5798 * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
5799 * libgnat/system-vxworks7-arm.ads: Likewise.
5800 * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
5801 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
5802 * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
5803 * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
5804 * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
5805 * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
5806 * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
5807 * libgnat/system-vxworks7-x86_64-rtp-smp.ads, link.c, live.adb: Likewise.
5808 * live.ads, locales.c, make.adb, make.ads, make_util.adb: Likewise.
5809 * make_util.ads, makeusg.adb, makeusg.ads, mdll-fil.adb: Likewise.
5810 * mdll-fil.ads, mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads: Likewise.
5811 * mingw32.h, mkdir.c, namet-sp.adb, namet-sp.ads, namet.adb: Likewise.
5812 * namet.ads, namet.h, nlists.adb, nlists.ads, nlists.h, opt.adb: Likewise.
5813 * opt.ads, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads: Likewise.
5814 * osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, osint.adb: Likewise.
5815 * osint.ads, output.adb, output.ads, par-ch10.adb, par-ch11.adb: Likewise.
5816 * par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb: Likewise.
5817 * par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch7.adb, par-ch8.adb: Likewise.
5818 * par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb: Likewise.
5819 * par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb, par.adb: Likewise.
5820 * par.ads, par_sco.adb, par_sco.ads: Likewise.
5821 * pprint.adb, pprint.ads, prep.adb, prep.ads: Likewise.
5822 * prepcomp.adb, prepcomp.ads, put_scos.adb, put_scos.ads: Likewise.
5823 * raise-gcc.c, raise.c, raise.h, repinfo-input.adb: Likewise.
5824 * repinfo-input.ads, repinfo.adb, repinfo.ads, repinfo.h: Likewise.
5825 * restrict.adb, restrict.ads, rident.ads, rtfinal.c, rtinit.c: Likewise.
5826 * rtsfind.adb, rtsfind.ads, runtime.h, s-oscons-tmplt.c: Likewise.
5827 * scans.adb, scans.ads, scil_ll.adb, scil_ll.ads, scn.adb: Likewise.
5828 * scn.ads, scng.adb, scng.ads, scos.adb, scos.ads: Likewise.
5829 * scos.h, sdefault.ads, seh_init.c, sem.adb, sem.ads: Likewise.
5830 * sem_aggr.adb, sem_aggr.ads, sem_attr.adb, sem_attr.ads: Likewise.
5831 * sem_aux.adb, sem_aux.ads, sem_case.adb, sem_case.ads: Likewise.
5832 * sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads: Likewise.
5833 * sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads: Likewise.
5834 * sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads: Likewise.
5835 * sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads, sem_ch5.adb: Likewise.
5836 * sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch7.ads: Likewise.
5837 * sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_ch9.ads, sem_dim.adb: Likewise.
5838 * sem_dim.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb: Likewise.
5839 * sem_dist.ads, sem_elab.adb, sem_elab.ads, sem_elim.adb: Likewise.
5840 * sem_elim.ads, sem_eval.adb, sem_eval.ads, sem_intr.adb: Likewise.
5841 * sem_intr.ads, sem_mech.adb, sem_mech.ads, sem_prag.adb: Likewise.
5842 * sem_prag.ads, sem_res.adb, sem_res.ads, sem_scil.adb: Likewise.
5843 * sem_scil.ads, sem_smem.adb, sem_smem.ads, sem_type.adb: Likewise.
5844 * sem_type.ads, sem_util.adb, sem_util.ads, sem_warn.adb: Likewise.
5845 * sem_warn.ads, set_targ.adb, set_targ.ads, sfn_scan.adb: Likewise.
5846 * sfn_scan.ads, sigtramp-arm-qnx.c, sigtramp-armdroid.c: Likewise.
5847 * sigtramp-ios.c, sigtramp-qnx.c: Likewise.
5848 * sigtramp-vxworks-target.h, sigtramp-vxworks.c, sigtramp.h: Likewise.
5849 * sinfo-cn.adb, sinfo-cn.ads, sinfo-utils.adb, sinfo-utils.ads: Likewise.
5850 * sinfo.adb, sinfo.ads, sinput-c.adb, sinput-c.ads, sinput-d.adb: Likewise.
5851 * sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.adb: Likewise.
5852 * sinput.ads, socket.c, spark_xrefs.adb, spark_xrefs.ads: Likewise.
5853 * sprint.adb, sprint.ads, stand.ads: Likewise.
5854 * stringt.adb, stringt.ads, stringt.h, strub.adb, strub.ads: Likewise.
5855 * style.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb: Likewise.
5856 * stylesw.ads, switch-b.adb, switch-b.ads, switch-c.adb: Likewise.
5857 * switch-c.ads, switch-m.adb, switch-m.ads, switch.adb: Likewise.
5858 * switch.ads, sysdep.c, table.adb: Likewise.
5859 * table.ads, targext.c, targparm.adb, targparm.ads, tbuild.adb: Likewise.
5860 * tbuild.ads, tempdir.adb, tempdir.ads, terminals.c, tracebak.c: Likewise.
5861 * treepr.adb, treepr.ads, ttypes.ads, types.adb, types.ads: Likewise.
5862 * types.h, uintp.adb, uintp.ads, uintp.h, uname.adb, uname.ads: Likewise.
5863 * urealp.adb, urealp.ads, urealp.h, usage.adb, usage.ads: Likewise.
5864 * validsw.adb, validsw.ads, vast.adb, vast.ads, warnsw.adb: Likewise.
5865 * warnsw.ads, widechar.adb, widechar.ads, xoscons.adb: Likewise.
5866 * xsnamest.adb, xutil.adb, xutil.ads, gnatvsn.adb: Likewise.
5867 * gnatvsn.ads (Current_Year): Likewise and bump to 2023.
5868
58692023-01-09 Eric Botcazou <ebotcazou@adacore.com>
5870
5871 * exp_ch7.adb (Make_Adjust_Call): Remove unreachable statement.
5872 (Make_Final_Call): Likewise.
5873
58742023-01-09 Eric Botcazou <ebotcazou@adacore.com>
5875
5876 * exp_util.ads (Is_Tag_To_Class_Wide_Conversion): Delete.
5877 (Is_Displacement_Of_Object_Or_Function_Result): Likewise.
5878 * exp_util.adb (Is_Tag_To_Class_Wide_Conversion): Rename to...
5879 (Is_Temporary_For_Interface_Object): ...this.
5880 (Is_Finalizable_Transient): Adjust call to above renaming.
5881 (Is_Displacement_Of_Object_Or_Function_Result): Delete.
5882 (Requires_Cleanup_Actions): Remove special handling of the
5883 temporaries created for interface objects.
5884 * exp_ch7.adb (Build_Finalizer): Likewise.
5885
d901bf8a
GA
58862023-01-07 LIU Hao <lh_mouse@126.com>
5887
5888 PR middle-end/108300
5889 * adaint.c: Define `WIN32_LEAN_AND_MEAN` before `#include
5890 <windows.h>`.
5891 * cio.c: Likewise.
5892 * ctrl_c.c: Likewise.
5893 * expect.c: Likewise.
5894 * gsocket.h: Likewise.
5895 * mingw32.h: Likewise.
5896 * mkdir.c: Likewise.
5897 * rtfinal.c: Likewise.
5898 * rtinit.c: Likewise.
5899 * seh_init.c: Likewise.
5900 * sysdep.c: Likewise.
5901 * terminals.c: Likewise.
5902 * tracebak.c: Likewise.
5903
53ef7c1d
GA
59042023-01-05 Eric Botcazou <ebotcazou@adacore.com>
5905
5906 * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: Tweak.
5907
59082023-01-05 Eric Botcazou <ebotcazou@adacore.com>
5909
5910 * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite the end of the
5911 handling of objects with (class-wide) interface type by using the
5912 same idiom as the other cases generating a renaming.
5913 * exp_util.adb (Is_Displacement_Of_Object_Or_Function_Result): Tweak
5914 pattern matching code and exclude special return objects.
5915 (Requires_Cleanup_Actions): Adjust comment.
5916 * exp_ch7.adb (Build_Finalizer): Likewise.
5917
59182023-01-05 Piotr Trojanek <trojanek@adacore.com>
5919
5920 * freeze.adb (Build_Renamed_Body): Rewrite subprogram renaming to
5921 subprogram declaration early and then set the Body_To_Inling flag.
5922
59232023-01-05 Piotr Trojanek <trojanek@adacore.com>
5924
5925 * freeze.adb (Build_Renamed_Body): Revert a special case for
5926 GNATprove; remove unnecessary initialization of a local variable.
5927
59282023-01-05 Marc Poulhiès <poulhies@adacore.com>
5929
5930 * sem_ch12.adb (Instantiate_Package_Body): Better filtering when
5931 installing parent on the scope stack.
5932
59332023-01-05 Eric Botcazou <ebotcazou@adacore.com>
5934
5935 * repinfo.ads (The JSON output format): Document change.
5936 * urealp.adb (UR_Write_To_JSON): Output a fraction instead of a
5937 decimal approximation.
5938
59392023-01-05 Eric Botcazou <ebotcazou@adacore.com>
5940
5941 * exp_ch3.adb (Expand_N_Object_Declaration): New local variable
5942 Func_Id holding the function for a special return object.
5943 Use a direct renaming in the class-wide case when the initializing
5944 expression is a captured function call, except for a special return
5945 object when the two functions do not return on the same stack.
5946 Apply the accessibility check for class-wide special return objects.
5947 * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: New.
5948 Do not force a dispatching call to the primitive operation _Size if
5949 the expression is known to statically have the tag of its type.
5950
59512023-01-05 Eric Botcazou <ebotcazou@adacore.com>
5952
5953 * exp_ch3.adb (Expand_N_Object_Declaration): Fix pasto in comment.
5954
59552023-01-05 Ronan Desplanques <desplanques@adacore.com>
5956
5957 * sem_aggr.adb (Resolve_Array_Aggregate): Tweak conditions for
5958 warning about use of parentheses for array aggregates.
5959
59602023-01-05 Javier Miranda <miranda@adacore.com>
5961
5962 * scans.ads (Tok_Left_Curly_Bracket, Tok_Right_Curly_Bracket)
5963 (Tok_Left_Interpolated_String): Placed in no category since they
5964 don't fit well in the existing categories. Fix typo in comment.
5965 (Inside_Interpolated_String_Literal): New scan state variable.
5966 * scng.adb (Slit): Scan interpolated string literals,
5967 continuations of interpolated string literals and escaped
5968 characters found in interpolated string literals.
5969 (Scan): Handle consecutive interpolated expressions. Handle ending
5970 delimiter placed immediately after an interpolated expression.
5971 Handle string literal placed after interpolated expression. Handle
5972 left and right curly brackets; when extensions are not allowed
5973 they are treated as left and right paren; when extensions are
5974 allowed they are handled as delimiters of interpolated string
5975 literals.
5976 * sinfo.ads (N_Interpolated_String_Literal): New node.
5977 * gen_il-gen-gen_nodes.adb (N_Interpolated_String_Literal): Define
5978 N_String_Literal node.
5979 * gen_il-types.ads (Opt_Type_Enum): Define N_String_Literal as
5980 concrete node type.
5981 * par-ch2.adb (P_Interpolated_String_Literal): New subprogram.
5982 * par-ch4.adb (P_Simple_Expression): Handle '}' as expression
5983 terminator when scanning an interpolated expression; disable error
5984 recovery machinery for binary operator when we are processing an
5985 interpolated string literal and reach the expression terminator
5986 '}'.
5987 (P_Primary): Call P_Interpolated_String_Literal when the opening
5988 interpolated-string-literal delimiter is found (that is, the left
5989 curly bracket '{').
5990 * par-tchk.adb (T_Right_Curly_Bracket): New subprogram.
5991 * par.adb (P_Interpolated_String_Literal): New declaration.
5992 (T_Right_Curly_Bracket): New declaration.
5993 * sem.adb (Analyze): Call Analyze_Interpolated_String_Literal.
5994 * sem_ch2.ads (Analyze_Interpolated_String_Literal): New
5995 subprogram
5996 * sem_ch2.adb (Analyze_Interpolated_String_Literal): Likewise.
5997 * sem_util.adb (Is_User_Defined_Literal): Complete mapping of
5998 literal aspects adding that interpolated string literals have no
5999 correspondence with any aspect.
6000 * sem_res.adb (Resolve_Interpolated_String_Literal): New
6001 subprogram.
6002 (Has_Applicable_User_Defined_Literal): Complete mapping of literal
6003 aspects adding that interpolated string literals have no
6004 correspondency with any aspect.
6005 * expander.adb (Expand): Add call to
6006 Expand_N_Interpolated_String_Literal.
6007 * exp_util.adb (Insert_Actions): Handle
6008 N_Interpolated_String_Literal nodes; that is, continue climbing.
6009 * exp_ch2.ads (Expand_N_Interpolated_String_Literal): New
6010 subprogram.
6011 * exp_ch2.adb (Expand_N_Interpolated_String_Literal): Likewise.
6012 * exp_put_image.adb (Build_Elementary_Put_Image_Call): Add missing
6013 conversion to force dispatching call. Required to handle calls to
6014 descendants.
6015 (Build_String_Put_Image_Call): Do not output string delimiters
6016 when the put_image call is part of an interpolated string literal.
6017 * rtsfind.ads (RTU_Id): Add RE_Set_Trim_Leading_Spaces.
6018 * sprint.adb (Sprint_Node): Output interpolated string contents.
6019 * libgnat/a-stbubo.adb (Get_UTF_8): Add default value for
6020 Trim_Leading_White_Spaces component in aggregate.
6021 (Buffer_Type_Implementation): Update Trim_Leading_White_Spaces.
6022 * libgnat/a-stbuun.adb (Get_UTF_8): Likewise.
6023 (Buffer_Type_Implementation): Likewise.
6024 * libgnat/a-sttebu.ads (Set_Trim_Leading_Spaces): New subprogram.
6025 (Trim_Leading_Spaces): New subprogram.
6026 (Root_Buffer_Type): Adding Trim_Leading_While_Spaces component.
6027 * libgnat/a-sttebu.adb (procedure Set_Trim_Leading_Spaces): New
6028 subprogram.
6029 (Trim_Leading_Space): New subprogram.
6030 (Put_UTF_8): Handle Trim_Leading_White_Spaces.
6031 (New_Line): Likewise.
6032 * libgnat/s-putima.ads (Put_Image_String): Adding formal
6033 (with_delimiters).
6034 (Put_Image_Wide_String): Likewise.
6035 (Put_Image_Wide_Wide_String): Likewise.
6036 * libgnat/s-putima.adb (Put_Image_String): Adding support for new
6037 formal.
6038 (Put_Image_Wide_String): Likewise.
6039 (Put_Image_Wide_Wide_String): Likewise.
6040
60412023-01-05 Joao Azevedo <azevedo@adacore.com>
6042
6043 * doc/gnat_ugn/gnat_utility_programs.rst: add gnatpp --layout
6044 switch and update legacy switches.
6045
60462023-01-05 Eric Botcazou <ebotcazou@adacore.com>
6047
6048 * freeze.adb (Freeze_Entity): For the purpose of deciding whether to
6049 freeze an entity coming from an outer scope in an inner scope, treat
6050 the internal subprogram generated because of post-conditions as also
6051 coming from source if the original subprogram itself does.
6052
60532023-01-05 Eric Botcazou <ebotcazou@adacore.com>
6054
6055 * contracts.adb (Build_Subprogram_Contract_Wrapper): Generate an
6056 extended return statement in all cases.
6057 (Expand_Subprogram_Contract): Adjust comment.
6058
60592023-01-05 Ronan Desplanques <desplanques@adacore.com>
6060
6061 * libgnat/g-forstr.adb (F_Kind): Rename enumeration literal.
6062 (P_Flt_Format): Adjust handling of "%g".
6063 (Determine_Notation_And_Aft): New procedure.
6064 (Decimal_Exponent): New function.
6065 (Increment_Integral_Part): New procedure.
6066 (Remove_Extraneous_Decimal_Digit): New procedure.
6067 (Trim_Fractional_Part): New procedure.
6068 * libgnat/g-forstr.ads: Change description of "%g" specifier.
6069
60702023-01-05 Marc Poulhiès <poulhies@adacore.com>
6071
6072 * sem_ch12.adb (Instantiate_Package_Body): Correctly find the
6073 parent instance to place on the scope stack.
6074
60752023-01-05 Justin Squirek <squirek@adacore.com>
6076
6077 * sem_ch8.adb (Set_Entity_Or_Discriminal): Verify we are actually
6078 resetting the entity field of a non-prefixed discriminant
6079 reference.
6080
60812023-01-05 Eric Botcazou <ebotcazou@adacore.com>
6082
6083 * exp_ch3.adb (Expand_N_Object_Declaration): New local variable used
6084 throughout instead of testing Is_Special_Return_Object every time.
6085 Do not rename an OK_To_Rename object for a special return object.
6086 * exp_ch4.adb (Expand_Concatenate): Revert to constrained allocation
6087 if the result is allocated on the secondary stack.
6088
60892023-01-05 Steve Baird <baird@adacore.com>
6090
6091 * sem_prag.adb (Analyze_Pragma): Fix Is_Configuration_Pragma
6092 function to handle case where the pragma's parent is an
6093 N_Aspect_Specification node. In analyzing a Discard_Names pragma,
6094 do not assume that a nonzero number of arguments implies that the
6095 pragma is not a configuration pragma; that assumption only holds
6096 for legal programs.
6097
60982023-01-05 Bob Duff <duff@adacore.com>
6099
6100 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
6101 Add RM references.
6102 * gnat_ugn.texi: Regenerate.
6103
61042023-01-05 Eric Botcazou <ebotcazou@adacore.com>
6105
6106 * exp_ch3.adb (Expand_N_Object_Declaration): For a special return
6107 object of an interface type that is not inherently limited, make
6108 a call to the Adjust primitive after doing the copy. For a special
6109 return object of a non-class-wide type initialized by a function
6110 call, use a direct renaming only if the object doing the capture
6111 is flagged by Is_Related_To_Func_Return. For a special return
6112 object using a direct renaming, reassign the tag, if need be.
6113 * exp_ch6.adb (Expand_Simple_Function_Return): Fix comment.
6114 * exp_util.adb (Is_Related_To_Func_Return): Accept both regular and
6115 renaming object declarations for return objects.
6116
61172023-01-05 Bob Duff <duff@adacore.com>
6118
6119 * sem_ch5.adb (Analyze_Assignment): Fix the bug by checking
6120 Original_Node. The renaming might be elsewhere, but the (original)
6121 reference is right here.
6122 * errout.adb: Remove pragma Unreferenced which was added because
6123 of the above bug.
6124 * einfo.ads: Misc cleanup.
6125 * lib.adb: Likewise.
6126 * lib.ads: Likewise.
6127
0f8fbb57
GA
61282023-01-03 Ghjuvan Lacambre <lacambre@adacore.com>
6129
6130 * errout.adb (Write_JSON_Span): Escape subprogram name.
6131
61322023-01-03 Ghjuvan Lacambre <lacambre@adacore.com>
6133
6134 * output.adb (Write_Buffer): Use Flush_Buffer instead of Write_Eol.
6135
61362023-01-03 Ronan Desplanques <desplanques@adacore.com>
6137
6138 * libgnat/g-forstr.adb (P_Flt_Format): Add "*" syntax handling.
6139
61402023-01-03 Ronan Desplanques <desplanques@adacore.com>
6141
6142 * libgnat/g-forstr.adb (P_Int_Format): Fix parsing bug.
6143
61442023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6145
6146 * exp_ch6.adb (Expand_Simple_Function_Return): Make sure that a
6147 captured function call also verifies Is_Related_To_Func_Return.
6148 Do not generate an actual subtype for special return objects.
6149 * exp_util.ads (Is_Related_To_Func_Return): Add commentary.
6150
61512023-01-03 Ronan Desplanques <desplanques@adacore.com>
6152
6153 * libgnat/g-forstr.adb
6154 (Advance_And_Accumulate_Until_Next_Specifier): New procedure.
6155 ("-"): Replace inline code with call to
6156 Advance_And_Accumulate_Until_Next_Specifier.
6157 (Next_Format): likewise.
6158
61592023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6160
6161 * checks.adb (Apply_Discriminant_Check.Denotes_Explicit_Dereference):
6162 Return false for artificial dereferences generated by the expander.
6163
61642023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6165
6166 * exp_ch6.adb (Is_Build_In_Place_Function): Adjust comment.
6167 * sem_util.adb (Compute_Returns_By_Ref): Do not set Returns_By_Ref
6168 on functions with foreign convention.
6169
61702023-01-03 Marc Poulhiès <poulhies@adacore.com>
6171
6172 * exp_aggr.adb (Build_Assignment_With_Temporary): New.
6173 (Expand_Array_Aggregate): Tune backend optimization
6174 and insert a temporary in the case of an access with
6175 Designated_Storage_Model aspect.
6176 (Convert_Array_Aggr_In_Allocator): Likewise.
6177
61782023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6179
6180 * sem_res.adb (Resolve_Membership_Op): Adjust again latest change.
6181
61822023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6183
6184 * sem_util.ads (Set_Debug_Info_Defining_Id): Adjust comment.
6185 * sem_util.adb (Is_Aliased_View) <N_Explicit_Dereference>: Return
6186 false for more artificial dereferences generated by the expander.
6187 (Set_Debug_Info_Defining_Id): Set Debug_Info_Needed unconditionally
6188 in -gnatD mode.
6189 * exp_ch6.adb (Replace_Renaming_Declaration_Id): Also preserve the
6190 Is_Aliased flag.
6191
61922023-01-03 Joel Brobecker <brobecker@adacore.com>
6193
6194 * doc/gnat_ugn/platform_specific_information.rst
6195 (_Platform_Specific_Information): Minor rewording of intro text.
6196 * gnat_ugn.texi: Regenerate.
6197
61982023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6199
6200 * exp_util.ads (Is_Captured_Function_Call): Declare.
6201 * exp_util.adb (Is_Captured_Function_Call): New predicate.
6202 * exp_ch3.adb (Expand_N_Object_Declaration): Use it to detect a
6203 rewritten function call as the initializing expression.
6204 * exp_ch6.adb (Expand_Simple_Function_Return): Use it to detect a
6205 rewritten function call as the returned expression.
6206
62072023-01-03 Bob Duff <duff@adacore.com>
6208
6209 * exp_util.adb (Integer_Type_For): Assertion and comment.
6210 (Small_Integer_Type_For): Remove some code and call
6211 Integer_Type_For instead.
6212 * sem_util.ads (Rep_To_Pos_Flag): Improve comments. "Standard_..."
6213 seems overly pedantic here.
6214 * exp_attr.adb (Succ, Pred): Clean up: make the code as similar as
6215 possible.
6216 * exp_ch4.adb: Minor: named notation.
6217
62182023-01-03 Javier Miranda <miranda@adacore.com>
6219
6220 * ghost.adb (Is_OK_Declaration): A reference to a Ghost entity may
6221 appear within the class-wide precondition of a helper subprogram.
6222 This context is treated as suitable because it was already
6223 verified when we were analyzing the original class-wide
6224 precondition.
6225
62262023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6227
6228 * exp_tss.adb (Base_Init_Proc): Do not return the Init_Proc of the
6229 ancestor type for a derived array type.
6230 * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Factor out the
6231 common processing done on representation items.
6232 For Default_Component_Value and Default_Value, look into the first
6233 subtype to find out the representation items.
6234
fee53a31
GA
62352023-01-02 Iain Sandoe <iain@sandoe.co.uk>
6236
6237 PR ada/108202
6238 * gcc-interface/Make-lang.in (GCC_LINKERFLAGS, GCC_LDFLAGS):
6239 Versions of ALL_LINKERFLAGS, LDFLAGS with -Werror and
6240 -static-libgcc filtered out for Darwin8 and 9 (-Werror is filtered
6241 out for other hosts).
6242
62432023-01-02 Jakub Jelinek <jakub@redhat.com>
6244
6245 * gnat_ugn.texi: Bump @copying's copyright year.
6246 * gnat_rm.texi: Likewise.
6247
848830dc 6248\f
d64f8779 6249Copyright (C) 2023 Free Software Foundation, Inc.
848830dc
PMR
6250
6251Copying and distribution of this file, with or without modification,
6252are permitted in any medium without royalty provided the copyright
6253notice and this notice are preserved.
This page took 1.838234 seconds and 5 git commands to generate.