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