]> gcc.gnu.org Git - gcc.git/blame - gcc/ada/ChangeLog
Daily bump.
[gcc.git] / gcc / ada / ChangeLog
CommitLineData
2e0f3f97
GA
12023-12-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2
3 * adaint.c [__APPLE__]: Include <signal.h>, <sys/time.h>.
4 * terminals.c [!_WIN32]: Include <signal.h>.
5 [__APPLE__]: Include <util.h>.
6 Fix typos.
7
8428bcd7
GA
82023-11-30 Eric Botcazou <ebotcazou@adacore.com>
9
10 * checks.ads (Apply_Predicate_Check): Add Deref boolean parameter.
11 * checks.adb (Apply_Predicate_Check): Revert latest change. Use
12 Loc local variable to hold the source location. Use a common code
13 path for the generic processing and make a dereference if Deref is
14 True.
15 * exp_ch4.adb (Expand_Allocator_Expression): Compute Aggr_In_Place
16 earlier. If it is true, do not call Apply_Predicate_Check on the
17 expression on entry but on the temporary on exit with a
18 dereference.
19 * sem_res.adb (Resolve_Actuals): Add explicit parameter
20 association in call to Apply_Predicate_Check.
21
222023-11-30 Steve Baird <baird@adacore.com>
23
24 * exp_put_image.adb (Put_Image_Enabled): Return True in more
25 cases. In particular, when testing to see if a type occurs in a
26 predefined unit, test the type's code unit
27 (obtained by calling Get_Code_Unit). In the case of type within a
28 user-defined instance of a predefined generic, Is_Predefined_Unit
29 will return True for the type and False for the type's code unit.
30
312023-11-30 Yannick Moy <moy@adacore.com>
32
33 * contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract):
34 Remove checking on volatility. Remove handling of SPARK_Mode, not
35 needed anymore.
36 (Analyze_Entry_Or_Subprogram_Contract): Remove checking on
37 volatility.
38 (Check_Type_Or_Object_External_Properties): Same.
39 (Analyze_Object_Contract): Same.
40 * freeze.adb (Freeze_Record_Type): Same. Also remove checking on
41 synchronized types and ghost types.
42 * sem_ch12.adb (Instantiate_Object): Remove checking on
43 volatility.
44 (Instantiate_Type): Same.
45 * sem_ch3.adb (Access_Type_Declaration): Same.
46 (Derived_Type_Declaration): Remove checking related to untagged
47 partial view.
48 (Process_Discriminants): Remove checking on volatility.
49 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Same.
50 * sem_ch6.adb (Analyze_Procedure_Call): Fix use of SPARK_Mode
51 where GNATprove_Mode was intended.
52 * sem_disp.adb (Inherited_Subprograms): Protect against Empty
53 node.
54 * sem_prag.adb (Analyze_Global_In_Decl_Part): Remove checking on
55 volatility.
56 (Analyze_Pragma): Same.
57 * sem_res.adb (Flag_Effectively_Volatile_Objects): Remove.
58 (Resolve_Actuals): Remove checking on volatility.
59 (Resolve_Entity_Name): Same.
60 * sem_util.adb (Check_Nonvolatile_Function_Profile): Remove.
61 (Check_Volatility_Compatibility): Remove.
62 * sem_util.ads: Same.
63
642023-11-30 Sheri Bernstein <bernstein@adacore.com>
65
66 * libgnat/i-cstrin.adb (Free): Rewrite code so there is only one
67 return, to remove Improper_Returns violation.
68 (Position_Of_Nul): Add pragma to exempt Improper_Returns
69 violation.
70 (To_Chars_Ptr): Likewise.
71 (Value): Likewise
72
732023-11-30 Viljar Indus <indus@adacore.com>
74
75 * sem_prag.adb (Validate_Compile_Time_Warning_Errors): Avoid
76 checking compile time warnings and errors if backend has not been
77 activated.
78
792023-11-30 Yannick Moy <moy@adacore.com>
80
81 * checks.adb, exp_aggr.adb, exp_ch4.ads, exp_ch5.adb,
82 exp_util.adb, exp_util.ads, inline.adb, sem_ch13.adb,
83 sem_ch6.adb, sem_ch8.adb, sem_prag.adb, sem_util.ads: Fix comments
84 and typos.
85
862023-11-30 Javier Miranda <miranda@adacore.com>
87
88 * freeze.adb (Declared_In_Expanded_Body): New subprogram.
89 (In_Expanded_Body): Minor code cleanup.
90 (Freeze_Expression): Code cleanup plus factorize in a new function
91 the code that identifies entities declared in the body of expander
92 generated subprograms, since such case must be checked also for
93 other node kinds when climbing the tree to locate the place to
94 insert the freezing node.
95
962023-11-30 Steve Baird <baird@adacore.com>
97
98 * sem_ch8.adb (Find_Direct_Name): In the case of a resolving a
99 name that occurs within an instantiation, add code to detect and
100 filter out unwanted candidate resolutions. The filtering is
101 performed via a call to Remove_Interp.
102
1032023-11-30 Steve Baird <baird@adacore.com>
104
105 * libgnarl/a-rttiev.ads: add a comment
106
1072023-11-30 Steve Baird <baird@adacore.com>
108
109 * sem_ch12.adb (Validate_Discriminated_Formal_Type): Replace
110 Entity_Id equality test with a call to Subtypes_Match. Distinct
111 subtypes which are statically matching should pass this test.
112 (Check_Discriminated_Formal): Replace Entity_Id equality test with
113 a call to Subtypes_Statically_Match (preceded by a check that the
114 preconditions for the call are satisfied).
115
1162023-11-30 Eric Botcazou <ebotcazou@adacore.com>
117
118 * exp_ch4.adb (Expand_Allocator_Expression): Add Special_Return
119 boolean constant to hold the value of For_Special_Return_Object
120 for the allocator and use it throughout the procedure.
121
1222023-11-30 Eric Botcazou <ebotcazou@adacore.com>
123
124 * checks.adb (Apply_Predicate_Check): Also deal specifically with
125 an expression that is a qualified aggregate in an allocator.
126
1272023-11-30 Steve Baird <baird@adacore.com>
128
129 * sem_ch4.adb (Constant_Indexing_OK): As a temporary stopgap,
130 return False in the case of an unanalyzed prefixed-view call.
131
6c85b8a9
GA
1322023-11-28 Simon Wright <simon@pushface.org>
133
134 PR ada/111909
135 * adaint.c
136 (__gnat_get_file_names_case_sensitive): Split out the __APPLE__
137 check and remove the checks for __arm__, __arm64__. For Apple,
138 file names are by default case-insensitive unless TARGET_OS_IOS is
139 set.
140
1412023-11-28 Eric Botcazou <ebotcazou@adacore.com>
142
143 * gcc-interface/decl.cc (annotate_value): Apply the same processing
144 for parameters as for variables.
145
1462023-11-28 Marc Poulhiès <poulhies@adacore.com>
147
148 * gcc-interface/utils2.cc (build_simple_component_ref): Add
149 comment on assertion.
150
1512023-11-28 Steve Baird <baird@adacore.com>
152
153 * exp_attr.adb (Expand_N_Attribute_Reference): In the case of a
154 Reduce attribute reference, fix bugs in initializing Accum_Typ.
155 The previous version was incorrect in the case where E1 refers to
156 the first of multiple possible overload resolution candidates and
157 that candidate does not turn out to be the right one. The previous
158 version also had code to compute Accum_Typ via a different method
159 if the initial computation turned out to yield a universal numeric
160 type. Delete that initial computation and use the second method in
161 all cases.
162
1632023-11-28 Gary Dismukes <dismukes@adacore.com>
164
165 * sem_aggr.adb (Add_Discriminant_Values): Remove this procedure.
166 (Propagate_Discriminants): Remove this procedure.
167 (Resolve_Record_Aggregate): Remove code (the Capture_Discriminants
168 block statement) related to propagating discriminants and
169 generating initializations for subcomponents of a
170 discriminant-dependent box-defaulted subcomponent of a nonprivate
171 record type with discriminants, and handle all top-level
172 components that have a non-null base init proc directly, by
173 calling Add_Association with "Is_Box_Present => True". Also,
174 combine that elsif clause with the immediately preceding elsif
175 clause, since they now both contain the same statement (calls to
176 Add_Association with the same actuals).
177
1782023-11-28 Bob Duff <duff@adacore.com>
179
180 * sem_util.adb (Check_Result_And_Post_State): Disable this when
181 we're in an instance. Misc cleanup.
182
1832023-11-28 Eric Botcazou <ebotcazou@adacore.com>
184
185 * exp_ch7.ads (Expand_Cleanup_Actions): Move declaration to the
186 Finalization Management section.
187 * exp_ch7.adb (Transient Scope Management): Move description down to
188 after that of the general finalization and make a few changes.
189 (Insert_Actions_In_Scope_Around): Call Process_Transients_In_Scope
190 only if cleanups are being handled.
191 (Process_Transients_In_Scope): Remove redundant test on Clean.
192 * exp_util.ads (Within_Case_Or_If_Expression): Adjust description.
193 * exp_util.adb (Within_Case_Or_If_Expression): Only return true if
194 within the dependent expressions of the conditional expressions.
195
1962023-11-28 Eric Botcazou <ebotcazou@adacore.com>
197
198 * doc/gnat_rm/the_implementation_of_standard_i_o.rst: Fix a couple
199 occurrences of incorrect quoting.
200 * gnat_rm.texi: Regenerate.
201
2022023-11-28 Eric Botcazou <ebotcazou@adacore.com>
203
204 * exp_ch6.adb (Build_Flag_For_Function): New function made up of the
205 code building the special flag for return object present...
206 (Expand_N_Extended_Return_Statement): ...in there. Replace the code
207 with a call to Build_Flag_For_Function. Add assertion for the flag.
208 (Expand_Non_Function_Return): For a nested return, if the return
209 object needs finalization actions, update the special flag.
210
2112023-11-28 Sebastian Poeplau <poeplau@adacore.com>
212
213 * einfo-utils.ads, einfo-utils.adb (Is_Address_Compatible_Type):
214 New function.
215
2162023-11-28 Gary Dismukes <dismukes@adacore.com>
217
218 * exp_aggr.adb (Expand_Container_Aggregate): Apply a conversion to the
219 size temp object passed as the second actual parameter on the call to
220 the New_Indexed_Subp function, to convert it to the index type of the
221 container type (taken from the first formal parameter of the function).
222
2232023-11-28 Eric Botcazou <ebotcazou@adacore.com>
224
225 * sem_attr.adb (Eval_Attribute): Do not proceed in a spec expression
226 for nonstatic representation attributes of a scalar subtype when the
227 subtype is not frozen.
228 * sem_ch3.adb (Analyze_Object_Declaration): Do not freeze the type
229 of the object in a spec expression.
230
2312023-11-28 Richard Kenner <kenner@adacore.com>
232
233 * exp_unst.adb (Note_Uplevel_Bound): Treat
234 N_Unchecked_Type_Conversion like N_Type_Conversion.
235
2362023-11-28 Yannick Moy <moy@adacore.com>
237
238 * libgnat/s-imgboo.adb: Remove with_clause now in spec file.
239 * libgnat/s-imgboo.ads: Remove dependency on System.Val_Bool.
240 (Image_Boolean): Replace call to Value_Boolean by passing value V
241 to updated ghost function Is_Boolean_Image_Ghost.
242 * libgnat/s-valboo.ads (Is_Boolean_Image_Ghost): Move to other
243 unit.
244 (Value_Boolean.): Update precondition.
245 * libgnat/s-valspe.ads (Is_Boolean_Image_Ghost): Move here. Add
246 new parameter for expected boolean value.
247
2482023-11-28 Tucker Taft <taft@adacore.com>
249
250 * sem_scil.adb: Handle discriminant specification.
251
92c480a4
GA
2522023-11-21 Eric Botcazou <ebotcazou@adacore.com>
253
254 * gcc-interface/trans.cc (Loop_Statement_to_gnu): Always use the
255 simpler form for a loop with a boolean iteration variable.
256
2572023-11-21 Eric Botcazou <ebotcazou@adacore.com>
258
259 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Subtype>: Put
260 the alignment directly on the type in the constrained case too.
261 * gcc-interface/utils.cc (maybe_pad_type): For an array type, take
262 the alignment of the element type as the original alignment.
263
2642023-11-21 Gary Dismukes <dismukes@adacore.com>
265
266 * sem_aggr.adb (Resolve_Container_Aggregate): In the case where Comp
267 is an N_Iterated_Component_Association, pick up Discrete_Choices rather
268 than Choices.
269
2702023-11-21 Eric Botcazou <ebotcazou@adacore.com>
271
272 * exp_ch7.adb (Build_Finalizer): For package specs and bodies, push
273 and pop the specs onto the scope stack only once.
274 * inline.adb (Cleanup_Scopes): Call Pop_Scope instead of End_Scope.
275
2762023-11-21 Steve Baird <baird@adacore.com>
277
278 * sem_aggr.adb (Resolve_Delta_Array_Aggregate): In the case of a
279 deep delta choice, the expected type for the expression will
280 typically not be the component type of the array type, so a call
281 to Analyze_And_Resolve that assumes otherwise would be an error.
282 It turns out that such a call, while wrong, is usually harmless
283 because the expression has already been marked as analyzed. This
284 doesn't work if the aggregate occurs in a postcondition and, in
285 any case, we don't want to rely on this. So do not perform the
286 call in the deep case.
287
2882023-11-21 Eric Botcazou <ebotcazou@adacore.com>
289
290 * sem_warn.adb (Check_References.Type_OK_For_No_Value_Assigned):
291 New predicate.
292 (Check_References): For Warn_On_No_Value_Assigned, use the same test
293 on the type in the address-not-taken and default cases.
294
2952023-11-21 Gary Dismukes <dismukes@adacore.com>
296
297 * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Retrieve the
298 iteration type's iteration interface progenitor via
299 Iterator_Interface_Ancestor, in the case of both "in" and "of"
300 iterators. Narrow the scope of Pack, so it's declared and
301 initialized only within the code related to "of" iterators, and
302 change its name to Cont_Type_Pack. Adjust comments.
303 * sem_ch5.adb (Get_Cursor_Type): In the case of a derived type,
304 retrieve the iteration type's iterator interface progenitor (if it
305 exists) via Iterator_Interface_Ancestor rather than assuming that
306 the parent type is the interface progenitor.
307 * sem_util.ads (Iterator_Interface_Ancestor): New function.
308 * sem_util.adb (Iterator_Interface_Ancestor): New function
309 returning a type's associated iterator interface type, if any, by
310 collecting and traversing the type's interfaces.
311
3122023-11-21 Eric Botcazou <ebotcazou@adacore.com>
313
314 * sem_attr.adb (Resolve_Attribute) <Attribute_Address>: Remove the
315 bypass for prefixes with task type.
316
3172023-11-21 Viljar Indus <indus@adacore.com>
318
319 * par.adb: Restore Style_Checks after parsing each unit.
320
3212023-11-21 Yannick Moy <moy@adacore.com>
322
323 * exp_spark.adb (Expand_SPARK_Delta_Or_Aggregate): Fix type.
324
3252023-11-21 Eric Botcazou <ebotcazou@adacore.com>
326
327 * sem_ch12.adb (Analyze_Package_Instantiation): Test Expander_Active
328 to detect generic contexts for the generation of cleanup actions.
329
3302023-11-21 Justin Squirek <squirek@adacore.com>
331
332 * libgnat/g-catiio.adb (Value): Modify conditionals to use 'Last
333 instead of 'Length
334
3352023-11-21 Eric Botcazou <ebotcazou@adacore.com>
336
337 * sem_util.adb (Null_Status): Deal with unchecked type conversions.
338
3392023-11-21 Eric Botcazou <ebotcazou@adacore.com>
340
341 * exp_aggr.adb (Convert_To_Assignments): Do not treat initialization
342 procedures specially when it comes to creating a transient scope.
343 * exp_ch7.adb (Build_Finalizer.Process_Declarations): Likewise.
344 * exp_util.adb (Requires_Cleanup_Actions): Likewise.
345
3462023-11-21 Doug Rupp <rupp@adacore.com>
347
348 * s-oscons-tmplt.c: #define CLOCK_RT_Ada "CLOCK_MONOTONIC" for
349 __vxworks
350
3512023-11-21 Steve Baird <baird@adacore.com>
352
353 * sem_aggr.adb: Replace "not Present (...)" call with "No (...)" call.
354
3552023-11-21 Eric Botcazou <ebotcazou@adacore.com>
356
357 * gen_il-fields.ads (Opt_Field_Enum): Remove Is_Finalization_Wrapper
358 * gen_il-gen-gen_nodes.adb (N_Block_Statement): Likewise.
359 * sinfo.ads (Is_Finalization_Wrapper): Delete.
360 * exp_ch7.adb (Build_Finalizer.Process_Declarations): Adjust comment
361 and remove obsolete code testing the Is_Finalization_Wrapper flag.
362 * exp_util.adb (Requires_Cleanup_Actions): Likewise.
363
3642023-11-21 Doug Rupp <rupp@adacore.com>
365
366 * libgnat/libada.gpr: Revise section 1
367
3682023-11-21 Steve Baird <baird@adacore.com>
369
370 * par.adb: Add new Boolean variable Inside_Delta_Aggregate.
371 * par-ch4.adb (P_Simple_Expression): Add support for a deep delta
372 aggregate choice. We turn a sequence of selectors into a peculiar
373 tree. We build a component (Indexed or Selected) whose prefix is
374 another such component, etc. The leftmost prefix at the bottom of
375 the tree has a "name" which is the first selector, without any
376 further prefix. For something like "with delta (1)(2) => 3" where
377 the type of the aggregate is an array of arrays of integers, we'll
378 build an N_Indexed_Component whose prefix is an integer literal 1.
379 This is consistent with the trees built for "regular"
380 (Ada-defined) delta aggregates.
381 * sem_aggr.adb (Is_Deep_Choice, Is_Root_Prefix_Of_Deep_Choice):
382 New queries.
383 (Resolve_Deep_Delta_Assoc): new procedure.
384 (Resolve_Delta_Array_Aggregate): call Resolve_Deep_Delta_Assoc in
385 deep case.
386 (Resolve_Delta_Record_Aggregate): call Resolve_Deep_Delta_Assoc in
387 deep case.
388 (Get_Component_Type): new function replaces old Get_Component
389 function.
390 * sem_aggr.ads (Is_Deep_Choice, Is_Root_Prefix_Of_Deep_Choice):
391 New queries.
392 * exp_aggr.adb (Expand_Delta_Array_Aggregate): add nested function
393 Make_Array_Delta_Assignment_LHS; call it instead of
394 Make_Indexed_Component.
395 (Expand_Delta_Record_Aggregate): add nested function
396 Make_Record_Delta_Assignment_LHS; call it instead of
397 Make_Selected_Component.
398 * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Insert range
399 checks for indexes in deep delta aggregates.
400
4012023-11-21 Ronan Desplanques <desplanques@adacore.com>
402
403 * adaint.c (__gnat_unlink): Add new parameter and fix text
404 conversion on Windows. Remove unnecessary curly braces.
405 * adaint.h (__gnat_unlink): Add new parameter.
406 * libgnat/i-cstrea.ads (unlink): Adapt to __gnat_unlink signature
407 change.
408 * libgnat/i-cstrea.adb (unlink): New Subprogram definition.
409 * libgnat/s-crtl.ads (unlink): Adapt to __gnat_unlink signature
410 change.
411 * libgnat/s-fileio.adb (Delete): Pass encoding argument to unlink.
412
4132023-11-21 Eric Botcazou <ebotcazou@adacore.com>
414
415 * sem_ch12.adb (Save_Global_References.Set_Global_Type): Beef up
416 comment about the setting of the full view.
417 * sem_res.adb (Resolve_Actuals.Insert_Default): Add another bypass
418 for the case of a generic context.
419
4202023-11-21 Marc Poulhiès <poulhies@adacore.com>
421
422 * doc/gnat_ugn/the_gnat_compilation_model.rst: Move index
423 directives.
424 * gnat_ugn.texi: Regenerate.
425
4262023-11-21 Pierre-Marie de Rodat <derodat@adacore.com>
427
428 * par_sco.adb (Process_Decisions)<Process_Node>: Skip aspect
429 specifications.
430
4312023-11-21 Ronan Desplanques <desplanques@adacore.com>
432
433 * libgnat/libgnat_common.gpr: Unconditionally pass -gnatg.
434
4352023-11-21 Marc Poulhiès <poulhies@adacore.com>
436
437 * exp_util.ads: Typo fix.
438
5cb13173
GA
4392023-11-16 Eric Botcazou <ebotcazou@adacore.com>
440
441 * gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Also create a
442 TYPE_DECL for the return type built for the CI/CO mechanism.
443
b9fd8399
GA
4442023-11-10 Andris Pavēnis <andris.pavenis@iki.fi>
445
446 * expect.c (__gnat_waitpid): fix syntax errors
447
4482023-11-09 Simon Wright <simon@pushface.org>
449
450 PR ada/111813
451 * libgnat/a-calfor.adb (Value (2)): Allow values of
452 parameter Elapsed_Time greater than or equal to 24 hours, by doing
453 the hour calculations in Natural rather than Hour_Number (0 ..
454 23). Calculate the result directly rather than by using Seconds_Of
455 (whose Hour parameter is of type Hour_Number).
456 If an exception occurs of type Constraint_Error, re-raise it
457 rather than raising a new CE.
458
c48f1056
GA
4592023-11-07 Joseph Myers <joseph@codesourcery.com>
460
461 * gcc-interface/utils.cc (flag_isoc2x): Rename to flag_isoc23.
462
4632023-11-07 Eric Botcazou <ebotcazou@adacore.com>
464
465 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Apply the
466 specific rewriting done for an aliased object with an unconstrained
467 array nominal subtype in the renaming case too.
468
4692023-11-07 Eric Botcazou <ebotcazou@adacore.com>
470
471 * gcc-interface/trans.cc (gnat_gimplify_expr) <CALL_EXPR>: Delete.
472
4732023-11-07 Bob Duff <duff@adacore.com>
474
475 * sem_ch13.ads (Set_Enum_Esize): Do not set alignment.
476 * sem_ch13.adb (Set_Enum_Esize): Do not set alignment. Archaeology
477 seems to show that this line of code dates from when "Alignment =
478 0" meant "the Alignment is not known at compile time" and "the
479 Alignment is not yet known at compile time" as well as "the
480 Alignment is zero". In any case, it seems to be unnecessary, and
481 in this case harmful, because gigi would crash. Alignment_Clause
482 is set (because there is one), so gigi would query the Alignment,
483 but Alignment was destroyed.
484
4852023-11-07 Julien Bortolussi <bortolussi@adacore.com>
486
487 * doc/share/conf.py: Changed the background color and the logo.
488
4892023-11-07 Eric Botcazou <ebotcazou@adacore.com>
490
491 * gen_il-fields.ads (Opt_Field_Enum): Add Compare_Type.
492 * gen_il-gen-gen_nodes.adb (N_Op_Eq): Likewise.
493 (N_Op_Ge): Likewise.
494 (N_Op_Gt): Likewise.
495 (N_Op_Le): Likewise.
496 (N_Op_Lt): Likewise.
497 (N_Op_Ne): Likewise.
498 * sinfo.ads (Compare_Type): Document new field.
499 * sem_ch4.adb (Analyze_Comparison_Equality_Op): If the entity is
500 already present, set the Compare_Type on overloaded operands if it
501 is present on the node.
502 * sem_ch12.adb (Check_Private_View): Look into the Compare_Type
503 instead of the Etype for comparison operators.
504 (Copy_Generic_Node): Remove obsolete code for comparison
505 operators.
506 (Save_Global_References.Save_References): Do not walk into the
507 descendants of N_Implicit_Label_Declaration nodes.
508 (Save_Global_References.Set_Global_Type): Look into the
509 Compare_Type instead of the Etype for comparison operators.
510 * sem_res.adb (Resolve_Comparison_Op): Set Compare_Type.
511 (Resolve_Equality_Op): Likewise.
512
5132023-11-07 Ronan Desplanques <desplanques@adacore.com>
514
515 * adaint.c (__gnat_file_time): Fix Windows version.
516
5172023-11-07 Eric Botcazou <ebotcazou@adacore.com>
518
519 * exp_ch3.adb (Expand_N_Object_Declaration): Fold initialization
520 expression of Nominal_Subtype_Is_Constrained_Array constant into
521 the computation of Rewrite_As_Renaming and remove the constant.
522 Set it to True for an aliased array with unconstrained nominal
523 subtype if the subtype of the expression is also unconstrained.
524
5252023-11-07 Piotr Trojanek <trojanek@adacore.com>
526
527 * exp_util.adb (Add_Own_DIC, Add_Own_Invariants): Store the aspect
528 expression in Expression_Copy.
529
5302023-11-07 Yannick Moy <moy@adacore.com>
531
532 * exp_aggr.adb: Apply the renaming.
533 * exp_ch3.adb: Same.
534 * exp_ch4.adb: Same.
535 * exp_ch6.adb: Same.
536 * exp_ch7.adb: Same.
537 * exp_util.adb: Same.
538 * freeze.adb: Same.
539 * sem_aggr.adb: Same.
540 * sem_attr.adb: Same.
541 * sem_aux.adb: Alphabetize Is_Limited_Type. Rename.
542 * sem_aux.ads: Same.
543 * sem_ch3.adb: Apply the renaming.
544 * sem_ch6.adb: Same.
545 * sem_ch8.adb: Same.
546 * sem_prag.adb: Same.
547 * sem_res.adb: Same.
548 * sem_util.adb: Same.
549
5502023-11-07 Viljar Indus <indus@adacore.com>
551
552 * aspects.adb (Exchange_Aspects): Removed. This method was
553 typically called after a Rewrite method. Now since the Rewrite
554 switches the aspects between the new and the old node it is no
555 longer needed.
556 (Has_Aspects): Converted to a utility method that performs the same
557 before as the previous Has_Aspects field did. Meaning it shows whether
558 a node actually has aspects or not.
559 (Copy_Aspects): New utility method that performs a deep copy of the
560 From nodes aspects.
561 (Aspect_Specfications): Removed. No longer needed. Replaced
562 by the primitive operation for the Aspect_Specification fields.
563 (Set_Aspect_Specifications): Likewise.
564 (Aspect_Specifications_Hash_Table): Remove the table and all the
565 utility methods for storing the old aspects.
566 * aspects.ads: Likewise.
567 * atree.adb (Copy_Separate_Tree): Remove custom code for aspects.
568 (New_Copy): Likewise.
569 (Replace): Likewise.
570 (Rewrite): Likewise.
571 * exp_ch3.adb (Expand_N_Object_Declaration): Keep the aspects from the old node.
572 * exp_ch6.adb (Validate_Subprogram_Calls): Previously aspects were ignored
573 because they were not on the tree. Explicitly ignore them here
574 when traversing the tree.
575 * exp_unst.adb (Build_Tables): Likewise
576 * gen_il-fields.ads: Remove Has_Aspects and add
577 Aspect_Specifications fields.
578 * gen_il-gen-gen_nodes.adb: Add Aspect_Specification fields
579 for all nodes that can have aspects. Additionally add
580 Expression_Copy for Aspect_Speficiations to avoid reusing
581 the Associated_Node for generic instantiation and aspect
582 analysis.
583 * ghost.adb (Remove_Ignored_Ghost_Node): Remove call to Remove_Aspects.
584 The rewritten node is a Null_Statement that cannot have aspects
585 and there is not anything to gain from removing them from the
586 Orignal_Node of N since it technically is not part of the active
587 tree.
588 * inline.adb (Process_Formals_In_Aspects): Simplify code for node traversal.
589 * par-ch13.adb: Avoid setting the parent explicitly for the
590 Aspect_Specifications list. This is done explicitly in the setter.
591 * par-ch6.adb: Likewise.
592 * par_sco.adb (Traverse_Aspects): Handle early return.
593 * sem_ch10.adb: Simplify code for Analyze_Aspect_Specifications.
594 * sem_ch11.adb: Likewise.
595 * sem_ch12.adb (Analyze_Formal_Derived_Interface_Type): Keep the aspects from
596 the orignal node after rewrite.
597 (Analyze_Formal_Derived_Type): Likewise.
598 (Analyze_Formal_Interface_Type): Likewise.
599 (Analyze_Formal_Object_Declaration): Simplify code for
600 Analyze_Aspect_Specifications.
601 (Analyze_Formal_Package_Declaration): Likewise.
602 (Analyze_Formal_Subprogram_Declaration): Likewise.
603 (Analyze_Formal_Type_Declaration): Likewise.
604 (Analyze_Generic_Package_Declaration): Remove Exchange_Aspects.
605 The new node already has the correct aspects after the rewrite.
606 Also simplify code for Analyze_Aspect_Specifications.
607 (Analyze_Generic_Subprogram_Declaration): Likewise.
608 (Analyze_Package_Instantiation): Simplify code for
609 Analyze_Aspect_Specifications.
610 (Build_Instance_Compilation_Unit_Nodes): Remove explicit copy of
611 aspects that is no longer needed.
612 (Save_References): Update the traversal code to handle
613 Aspect_Specifications in the tree.
614 (Copy_Generic_Node): Remove explicit copy for aspects. New_Copy
615 took care of that already.
616 * sem_ch13.adb (Analyze_Aspect_Specifications): Add early return to simplify
617 code for its calls. Avoid reusing the Entity(Associated_Node)
618 field for storing the original expression. Instead use the
619 new Expression_Copy field since Entity(Associated_Node) is
620 also used in generic instantiation.
621 (Analyze_Aspects_On_Subprogram_Body_Or_Stub): Simlify call
622 to Analyze_Aspect_Specifications.
623 (Check_Aspect_At_End_Of_Declarations): Use Expression_Copy
624 instead of Entity.
625 (Check_Aspect_At_Freeze_Point): Likewise.
626 * sem_ch3.adb: Simplify calls to Analyze_Aspect_Specifications.
627 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Simplify call to
628 Analyze_Aspect_Specifications.
629 (Analyze_Expression_Function): Keep the aspects from the
630 original node after a rewrite.
631 (Analyze_Generic_Subprogram_Body): Remove Exchange aspects
632 that is no longer needed. Simplify call to
633 Analyze_Aspect_Specifications.
634 (Analyze_Null_Procedure): Keep the aspects from the
635 original node after a rewrite.
636 (Analyze_Subprogram_Body_Helper): Simplify calls to
637 Analyze_Aspect_Specifications.
638 (Analyze_Subprogram_Declaration): Likewise.
639 * sem_ch7.adb (Analyze_Package_Body_Helper): Remove Exchange aspects
640 that is no longer needed. Simplify call to
641 Analyze_Aspect_Specifications.
642 (Analyze_Package_Declaration): Simplify call to
643 Analyze_Aspect_Specifications.
644 (Analyze_Private_Type_Declaration): Likewise.
645 * sem_ch8.adb: Simplify calls to
646 Analyze_Aspect_Specifications.
647 * sem_ch9.adb (Analyze_Entry_Body): Simplify call to
648 Analyze_Aspects_On_Subprogram_Body_Or_Stub.
649 (Analyze_Entry_Declaration): Simplify call to
650 Analyze_Aspect_Specifications.
651 (Analyze_Protected_Body): Likewise.
652 (Analyze_Protected_Type_Declaration): Likewise.
653 (Analyze_Single_Protected_Declaration): Keep the aspects from
654 the original node after a rewrite. Simplify call to
655 Analyze_Aspect_Specifications.
656 (Analyze_Single_Task_Declaration): Likewise.
657 (Analyze_Task_Body): Simplify call to
658 Analyze_Aspect_Specifications.
659 (Analyze_Task_Type_Declaration): Simplify calls to
660 Analyze_Aspect_Specifications.
661 * sem_dim.adb: Remove explicitly setting the parents
662 for the Aspect_Specification list.
663 * sem_disp.adb: Remove the with that is no longer
664 required since Aspect_Specifications is a node operation now.
665 * sem_util.adb (Copy_Node_With_Replacement): Remove explicit code for aspects.
666 * treepr.adb (Print_Field): Remove the version that was used for printing
667 aspects.
668 (Print_Node): Remove aspect specific code.
669
6702023-11-07 Eric Botcazou <ebotcazou@adacore.com>
671
672 * gen_il-gen-gen_nodes.adb (N_Op_Boolean): Fix description.
673 * sem_ch4.adb (Analyze_Comparison_Equality_Op): Tidy up.
674 * sem_ch12.adb (Copy_Generic_Node): Use N_Op_Compare subtype.
675
6762023-11-07 Piotr Trojanek <trojanek@adacore.com>
677
678 * exp_ch6.adb, exp_disp.adb, sem_ch13.adb, sem_ch3.adb: Fix newly
679 detected violations.
680
6812023-11-07 Piotr Trojanek <trojanek@adacore.com>
682
683 * sem_ch3.adb, sem_ch4.adb, sem_eval.adb: Fix newly detected
684 violations.
685
6862023-11-07 Ronan Desplanques <desplanques@adacore.com>
687
688 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
689 -gnatwc documentation.
690 * gnat_ugn.texi: Regenerate.
691
6922023-11-07 Steve Baird <baird@adacore.com>
693
694 * local_restrict.ads: A new package. Declares Local_Restriction
695 enumeration type and provides operations to check for local
696 restriction violations.
697 * local_restrict.adb: Corresponding package body. Replace "not
698 Present (X)" calls with "No (X)" calls.
699 * aspects.ads: Add a new enumeration elements,
700 Aspect_Local_Restrictions and Aspect_User_Aspect, to the Aspect_Id
701 enumeration type. Update Aspect_Id-indexed aggregates. Add nested
702 package User_Aspect_Support to manage two pieces of state. One is
703 a map from identifiers to User_Aspect_Definition pragmas (updated
704 when such a pragma is encountered). The other is an
705 access-to-subprogram variable that is introduced in order to keep
706 the bulk of semantics out of the closure of package Aspects while
707 allowing a call from aspects.adb to the sem_ch13 procedure that
708 analyzes a User_Aspect aspect specification.
709 * aspects.adb (Find_Aspect): Cope with a case of a block statement
710 with an empty parent. It is not clear whether this is papering
711 over a compiler bug. Add indirect call through the aforementioned
712 access-to-subprogram variable when Find_Aspect enounters an
713 unanalyzed User_Aspect aspect specification. If Find_Aspect is
714 called looking for aspect Foo, then a User_Aspect specification
715 might generate (during analysis) a Foo aspect specification. So
716 the Find_Aspect call needs to trigger that analysis if it has not
717 already taken place. Provide a body for package
718 User_Aspect_Support. Replace "not Present (X)" call with "No (X)"
719 call.
720 * freeze.adb (Freeze_Subprogram): Check local restriction
721 compatibility when a dispatching operation is overridden.
722 * par-prag.adb: Add support for parsing a User_Aspect_Definition
723 pragma.
724 * restrict.ads: We'd like to have the body of package Restrict
725 include a call to a procedure declared in package Local_Restrict.
726 Doing that in the obvious way pulls most of semantics into the
727 closure of package Restrict, and that turns out to cause problems.
728 So we introduce a level of indirection and instead call through an
729 access-to-subprogram value. In this unit, we declare the
730 access-to-subprogram type and object.
731 * restrict.adb (Check Restriction): When a construct is
732 encountered that could violate a global restriction (depending on
733 whether the given restriction is in effect), Check_Restriction is
734 called. At this point, we also check for a violation of any
735 corresponding local restriction that is in effect. For reasons
736 described above, this check is performed via an indirect call.
737 * sem_ch13.ads (Parse_Aspect_Local_Restrictions): A new function,
738 similar to the existing Parse_Aspect_Xxx subprograms.
739 * sem_ch13.adb: Perform semantic analysis of Local_Restrictions
740 and User_Aspect aspect specifications. Declare and call new
741 Validate_Aspect_Local_Restrictions and
742 Analyze_User_Aspect_Aspect_Specification procedures (a reference
743 to the latter is registered during package elaboration). In
744 Analyze_Aspect_Specifications, do not set the Analyzed flag of a
745 User_Aspect aspect specification. Replace "not Present (X)" call
746 with "No (X)" call. Replace 'Image with 'Img in a case where the
747 prefix of the attribute reference is an object; this is done to
748 accomodate older compilers.
749 * sem_ch6.adb (Check_Subtype_Conformant): Include in subtype
750 conformance check a check for overriding-related compatibility of
751 local restrictions.
752 * sem_ch8.adb (Analyze_Subprogram_Renaming): In the case of an
753 instance of a generic that takes a formal subprogram, check that
754 formal and actual are compatible with respect to local
755 restrictions.
756 * sem_prag.adb: Add support for User_Aspect_Definition pragma.
757 * sem_res.adb (Resolve_Call): Check caller/callee compatibility
758 with respect to local restrictions.
759 * snames.ads-tmpl: Add Name_Local_Restrictions, Name_User_Aspect,
760 and Name_User_Aspect_Definition constants.
761 * doc/gnat_rm/implementation_defined_aspects.rst: Document new
762 aspects.
763 * doc/gnat_rm/implementation_defined_pragmas.rst: Document new
764 pragma.
765 * doc/gnat_ugn/the_gnat_compilation_model.rst: Add
766 User_Aspect_Definition to list of GNAT pragmas.
767 * gcc-interface/Make-lang.in: Add local_restrict.o.
768 * gnat-style.texi: Regenerate.
769 * gnat_rm.texi: Regenerate.
770 * gnat_ugn.texi: Regenerate.
771
7722023-11-07 Bob Duff <duff@adacore.com>
773
774 * sem_ch4.adb (Is_Private_Overriding): Return True in the case
775 where a primitive operation is publicly inherited but privately
776 overridden.
777
7782023-11-07 Piotr Trojanek <trojanek@adacore.com>
779
780 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Remove code from the
781 ELSE branch, because it was is identical to code before the IF
782 statements itself.
783
7842023-11-07 Piotr Trojanek <trojanek@adacore.com>
785
786 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Change Ctyp and Csiz
787 from variables to constants and compute them using the nominal type
788 of the assigned array object.
789
7902023-11-07 Piotr Trojanek <trojanek@adacore.com>
791
792 * exp_pakd.adb, libgnarl/s-osinte__android.ads,
793 libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__qnx.ads,
794 libgnarl/s-osinte__rtems.ads, libgnat/s-gearop.adb,
795 libgnat/s-poosiz.adb, sem_util.adb: Fix style.
796
7972023-11-07 Piotr Trojanek <trojanek@adacore.com>
798
799 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Simplify handling of
800 assignments with string literals.
801
8022023-11-07 Piotr Trojanek <trojanek@adacore.com>
803
804 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Remove Rhs_Val_Known;
805 represent unknown value by assigning Rhs_Val with No_Uint.
806
8072023-11-07 Piotr Trojanek <trojanek@adacore.com>
808
809 * exp_pakd.adb
810 (Expand_Bit_Packed_Element_Set): Change local Decl object from
811 variable to constant.
812 (Setup_Inline_Packed_Array_Reference): Likewise for Csiz.
813
8142023-11-07 Piotr Trojanek <trojanek@adacore.com>
815
816 * exp_pakd.adb (Setup_Inline_Packed_Array_Reference): Remove extra
817 whitespace from the list of parameters.
818
8192023-11-07 Piotr Trojanek <trojanek@adacore.com>
820
821 * sem_util.adb (Get_Actual_Subtype_If_Available): Only call Etype
822 when necessary.
823
8242023-11-07 Piotr Trojanek <trojanek@adacore.com>
825
826 * sem_util.adb
827 (Get_Actual_Subtype,Get_Actual_Subtype_If_Available): Fix handling
828 of expanded names.
829
8302023-11-07 Viljar Indus <indus@adacore.com>
831
832 * sem_prag.adb: (Analyze_Pragma): Reduce the number of nested if
833 statements.
834
8352023-11-07 Viljar Indus <indus@adacore.com>
836
837 * sem_ch10.adb: (Analyze_Compilation_Unit): Restore the orignal
838 state of style check pragmas at the end of the analysis.
839
8402023-11-07 Eric Botcazou <ebotcazou@adacore.com>
841
842 * exp_pakd.adb (Get_Base_And_Bit_Offset): Use the full component
843 reference instead of just the selector name for 'Bit_Position.
844
eb4e1b62
GA
8452023-11-04 David Malcolm <dmalcolm@redhat.com>
846
847 * gcc-interface/misc.cc: Update for changes to diagnostic_context.
848
3b632746
GA
8492023-10-22 Iain Sandoe <iain@sandoe.co.uk>
850
851 * gcc-interface/Makefile.in: Handle Darwin rpaths.
852
6f684dd2
GA
8532023-10-20 Alexandre Oliva <oliva@adacore.com>
854
855 * gcc-interface/trans.cc (gigi): Mark __gnat_reraise_zcx with
856 ECF_XTHROW.
857 (build_raise_check): Likewise for all rcheck subprograms.
858
c85f7481
GA
8592023-10-19 Yannick Moy <moy@adacore.com>
860
861 * aspects.ads: Add aspect Side_Effects.
862 * contracts.adb (Add_Pre_Post_Condition)
863 (Inherit_Subprogram_Contract): Add support for new contract.
864 * contracts.ads: Update comments.
865 * einfo-utils.adb (Get_Pragma): Add support.
866 * einfo-utils.ads (Prag): Update comment.
867 * errout.ads: Add explain codes.
868 * par-prag.adb (Prag): Add support.
869 * sem_ch13.adb (Analyze_Aspect_Specifications)
870 (Check_Aspect_At_Freeze_Point): Add support.
871 * sem_ch6.adb (Analyze_Subprogram_Body_Helper)
872 (Analyze_Subprogram_Declaration): Call new analysis procedure to
873 check SPARK legality rules.
874 (Analyze_SPARK_Subprogram_Specification): New procedure to check
875 SPARK legality rules. Use an explain code for the error.
876 (Analyze_Subprogram_Specification): Move checks to new subprogram.
877 This code was effectively dead, as the kind for parameters was set
878 to E_Void at this point to detect early references.
879 * sem_ch6.ads (Analyze_Subprogram_Specification): Add new
880 procedure.
881 * sem_prag.adb (Analyze_Depends_In_Decl_Part)
882 (Analyze_Global_In_Decl_Part): Adapt legality check to apply only
883 to functions without side-effects.
884 (Analyze_If_Present): Extract functionality in new procedure
885 Analyze_If_Present_Internal.
886 (Analyze_If_Present_Internal): New procedure to analyze given
887 pragma kind.
888 (Analyze_Pragmas_If_Present): New procedure to analyze given
889 pragma kind associated with a declaration.
890 (Analyze_Pragma): Adapt support for Always_Terminates and
891 Exceptional_Cases. Add support for Side_Effects. Make sure to call
892 Analyze_If_Present to ensure pragma Side_Effects is analyzed prior
893 to analyzing pragmas Global and Depends. Use explain codes for the
894 errors.
895 * sem_prag.ads (Analyze_Pragmas_If_Present): Add new procedure.
896 * sem_util.adb (Is_Function_With_Side_Effects): New query function
897 to determine if a function is a function with side-effects.
898 * sem_util.ads (Is_Function_With_Side_Effects): Same.
899 * snames.ads-tmpl: Declare new names for pragma and aspect.
900 * doc/gnat_rm/implementation_defined_aspects.rst: Document new aspect.
901 * doc/gnat_rm/implementation_defined_pragmas.rst: Document new pragma.
902 * gnat_rm.texi: Regenerate.
903
9042023-10-19 Sheri Bernstein <bernstein@adacore.com>
905
906 * libgnat/s-imagef.adb (Set_Image_Fixed): Refactor loop.
907
9082023-10-19 Sheri Bernstein <bernstein@adacore.com>
909
910 * libgnat/s-imguti.adb (Set_Decimal_Digits): Add pragma to exempt
911 Unassigned_OUT_Parameters.
912 (Set_Floating_Invalid_Value): Likewise
913
9142023-10-19 Patrick Bernardi <bernardi@adacore.com>
915
916 * bindusg.adb (Display): Make it clear -Q adds to the number of
917 secondary stacks generated by the binder.
918 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
919 Document the -Q gnatbind switch and fix references to old
920 runtimes.
921 * gnat-style.texi: Regenerate.
922 * gnat_rm.texi: Regenerate.
923 * gnat_ugn.texi: Regenerate.
924
9252023-10-19 Ronan Desplanques <desplanques@adacore.com>
926
927 * sem_ch3.adb (Constrain_Array): Replace manual list length
928 computation by call to List_Length.
929
9302023-10-19 Piotr Trojanek <trojanek@adacore.com>
931
932 * exp_aggr.adb (Expand_Container_Aggregate): Simplify with "No".
933
69e3072c
GA
9342023-10-10 Eric Botcazou <ebotcazou@adacore.com>
935
936 * gcc-interface/decl.cc (inline_status_for_subprog): Minor tweak.
937 (gnat_to_gnu_field): Try harder to get a packable form of the type
938 for a bitfield.
939
9402023-10-10 Ronan Desplanques <desplanques@adacore.com>
941
942 * libgnat/a-direct.adb (Start_Search_Internal): Tweak subprogram
943 body.
944
9452023-10-10 Eric Botcazou <ebotcazou@adacore.com>
946
947 * sem_util.ads (Set_Scope_Is_Transient): Delete.
948 * sem_util.adb (Set_Scope_Is_Transient): Likewise.
949 * exp_ch7.adb (Create_Transient_Scope): Set Is_Transient directly.
950
9512023-10-10 Eric Botcazou <ebotcazou@adacore.com>
952
953 * exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): Return true
954 if the aggregate is a dependent expression of a conditional
955 expression being returned from a build-in-place function.
956
9572023-10-10 Eric Botcazou <ebotcazou@adacore.com>
958
959 PR ada/111434
960 * sem_ch10.adb (Replace): New procedure to replace an entity with
961 another on the homonym chain.
962 (Install_Limited_With_Clause): Rename Non_Lim_View to Typ for the
963 sake of consistency. Call Replace to do the replacements and split
964 the code into the regular and the special cases. Add debuggging
965 output controlled by -gnatdi.
966 (Install_With_Clause): Print the Parent_With and Implicit_With flags
967 in the debugging output controlled by -gnatdi.
968 (Remove_Limited_With_Unit.Restore_Chain_For_Shadow (Shadow)): Rewrite
969 using a direct replacement of E4 by E2. Call Replace to do the
970 replacements. Add debuggging output controlled by -gnatdi.
971
9722023-10-10 Ronan Desplanques <desplanques@adacore.com>
973
974 * libgnat/a-direct.adb: Fix filesystem entry filtering.
975
9762023-10-10 Ronan Desplanques <desplanques@adacore.com>
977
978 * atree.ads, nlists.ads, types.ads: Remove references to extended
979 nodes. Fix typo.
980 * sinfo.ads: Likewise and fix position of
981 Comes_From_Check_Or_Contract description.
982
9832023-10-10 Javier Miranda <miranda@adacore.com>
984
985 * sem_attr.adb (Analyze_Attribute): Protect the frontend against
986 replacing 'Size by its static value if 'Size is not known at
987 compile time and we are processing pragmas Compile_Time_Warning or
988 Compile_Time_Errors.
989
96557ee6
GA
9902023-10-03 David Malcolm <dmalcolm@redhat.com>
991
992 * gcc-interface/misc.cc: Use text_info ctor.
993
41d1c9a9
GA
9942023-10-02 David Malcolm <dmalcolm@redhat.com>
995
996 * gcc-interface/misc.cc (gnat_post_options): Update for renaming
997 of diagnostic_context's show_caret to m_source_printing.enabled.
998
0d9b4e86
GA
9992023-09-26 Eric Botcazou <ebotcazou@adacore.com>
1000
1001 * exp_ch7.adb (Build_Finalizer.Process_Declarations): Remove call
1002 to Is_Simple_Protected_Type as redundant.
1003 (Build_Finalizer.Process_Object_Declaration): Do not retrieve the
1004 corresponding record type for simple protected objects. Make the
1005 flow of control more explicit in their specific processing.
1006 * exp_util.adb (Requires_Cleanup_Actions): Return false for simple
1007 protected objects present in library-level package bodies for the
1008 sake of consistency with Build_Finalizer and remove call to
1009 Is_Simple_Protected_Type as redundant.
1010
10112023-09-26 Eric Botcazou <ebotcazou@adacore.com>
1012
1013 PR ada/110488
1014 * sem_ch3.adb (Analyze_Object_Declaration): Do not build a default
1015 subtype for a deferred constant in the definite case too.
1016
10172023-09-26 Marc Poulhiès <poulhies@adacore.com>
1018
1019 * exp_ch7.adb (Contains_Subprogram): Recursively search for subp
1020 in loop's statements.
1021 (Unnest_Loop)<Fixup_Inner_Scopes>: New.
1022 (Unnest_Loop): Rename local variable for more clarity.
1023 * exp_unst.ads: Refresh comment.
1024
10252023-09-26 Javier Miranda <miranda@adacore.com>
1026
1027 * exp_ch6.adb (Expand_Call_Helper): When computing the
1028 accessibility level of an actual parameter based on the
1029 expresssion of a constant declaration, add missing support for
1030 deferred constants
1031
10322023-09-26 Eric Botcazou <ebotcazou@adacore.com>
1033
1034 * einfo.ads (Status_Flag_Or_Transient_Decl): Remove ??? comment.
1035 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Extend the
1036 handling of finalizable return objects to the non-BIP case.
1037 * exp_ch7.adb (Build_Finalizer.Process_Declarations): Adjust the
1038 comment accordingly.
1039 * exp_util.adb (Requires_Cleanup_Actions): Likewise.
1040
10412023-09-26 Daniel King <dmking@adacore.com>
1042
1043 * raise-gcc.c (get_ip_from_context): Adapt for CHERI purecap
1044 (get_call_site_action_for): Adapt for CHERI purecap
1045
10462023-09-26 Daniel King <dmking@adacore.com>
1047
1048 * libgnat/a-tags.adb (To_Tag): Use System.Storage_Elements for
1049 integer to address conversion.
1050 * libgnat/s-putima.adb (Put_Image_Pointer): Likewise.
1051
10522023-09-26 Daniel King <dmking@adacore.com>
1053
1054 * libgnat/s-stratt__cheri.adb: New file
1055
10562023-09-26 Daniel King <dmking@adacore.com>
1057
1058 * libgnat/i-cheri.ads (Capability_Bound_Error)
1059 (Capability_Permission_Error, Capability_Sealed_Error)
1060 (Capability_Tag_Error): New, define CHERI exception types.
1061
10622023-09-26 Ronan Desplanques <desplanques@adacore.com>
1063
1064 * exp_prag.adb: Make minor corrections in comments.
1065 * rtsfind.ads: Remove unused element from RTU_Id definition.
1066
10672023-09-26 Derek Schacht <schacht@adacore.com>
1068
1069 * doc/gnat_ugn/gnat_and_program_execution.rst: Add more details on
1070 using Generic Elementary Functions with dimensional analysis.
1071 * gnat_ugn.texi: Regenerate.
1072
10732023-09-26 Yannick Moy <moy@adacore.com>
1074
1075 * exp_ch5.adb (Expand_N_Case_Statement): Reference both sections
1076 of the Ada RM that deal with case statements and case expressions
1077 to justify the insertion of a runtime check.
1078
590a8bec
GA
10792023-09-19 Richard Wai <richard@annexi-strayline.com>
1080
1081 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Expanded comments
1082 explaining why TSS Finalize_Address is not generated for
1083 concurrent class-wide types.
1084 * exp_ch7.adb (Make_Finalize_Address_Stmts): Handle cases where the
1085 underlying non-constrained parent type is a concurrent type, and
1086 adjust the designated type to be the corresponding record’s
1087 class-wide type.
1088
10892023-09-19 Richard Wai <richard@annexi-strayline.com>
1090
1091 * sem_ch3.adb (Build_Derived_Record_Type): Treat presence of
1092 keyword "synchronized" the same as "limited" when determining if a
1093 private extension is limited.
1094
10952023-09-19 Marc Poulhiès <poulhies@adacore.com>
1096
1097 * gcc-interface/utils.cc (max_value): New.
1098 * gcc-interface/gigi.h (max_value): New.
1099 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Subtype>:
1100 When computing gnu_min/gnu_max, try to use max_value if there is
1101 an initial expression.
1102
11032023-09-19 Javier Miranda <miranda@adacore.com>
1104
1105 * contracts.adb
1106 (Has_Public_Visibility_Of_Subprogram): Add missing support for
1107 child subprograms.
1108
37bbfd1c
GA
11092023-09-15 Eric Botcazou <ebotcazou@adacore.com>
1110
1111 * gcc-interface/utils.cc (finish_record_type): Round the size in
1112 the padding case as well.
1113
11142023-09-15 Piotr Trojanek <trojanek@adacore.com>
1115
1116 * exp_aggr.adb (Build_Array_Aggr_Code): Don't build aggregate code
1117 for null array aggregates.
1118 * sem_aggr.adb (Resolve_Array_Aggregate): Don't examine formatting
1119 of a null array aggregate.
1120
11212023-09-15 Eric Botcazou <ebotcazou@adacore.com>
1122
1123 * inline.adb (Expand_Inlined_Call): In the case of a function call
1124 that returns an unconstrained type and initializes an object, set
1125 the No_Initialization flag on the new declaration of the object.
1126
11272023-09-15 Patrick Bernardi <bernardi@adacore.com>
1128
1129 * exp_ch6.adb (Expand_N_Subprogram_Body): Do not perform
1130 local-exception-to- goto optimization on barrier functions.
1131 * exp_ch9.adb (Expand_Entry_Barrier): Simplify the if statement
1132 around the simple barrier optimization and remove an old, no
1133 longer relevant comment.
1134
11352023-09-15 Patrick Bernardi <bernardi@adacore.com>
1136
1137 * bindgen.adb (Gen_Adainit): Generate restrictions when standard
1138 library is suppressed.
1139 (Gen_Output_File_Ada): Ditto.
1140 (Gen_Restrictions): Ditto.
1141
11422023-09-15 Eric Botcazou <ebotcazou@adacore.com>
1143
1144 * exp_util.adb (Component_May_Be_Bit_Aligned): Do not return false
1145 for a small component of a record type with a variant part.
1146
11472023-09-15 Eric Botcazou <ebotcazou@adacore.com>
1148
1149 * exp_aggr.adb (Convert_To_Assignments): In the case of a
1150 component association, call Is_Container_Aggregate on the parent's
1151 parent.
1152 (Expand_Array_Aggregate): Likewise.
1153
11542023-09-15 Kévin Le Gouguec <legouguec@adacore.com>
1155
1156 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Remove
1157 extended discussion regarding mold run-time dependencies;
1158 packaging changes in GNAT Pro have made them obsolete.
1159
11602023-09-15 Eric Botcazou <ebotcazou@adacore.com>
1161
1162 * sem_res.adb (Resolve_Call): When the target is an entity, do not
1163 freeze it if the current scope is the inner wrapper function built
1164 for an expression function with a Post or Refined_Post aspect.
1165
11662023-09-15 Bob Duff <duff@adacore.com>
1167 Ronan Desplanques <desplanques@adacore.com>
1168
1169 * atree.adb (Node_Kind_Table): Specify parameter explicitly in
1170 GNAT.Table instantiations. Use fully qualified references instead
1171 of relying on use clauses.
1172 (Get_Field_Value): Remove special case for F_Scope_Depth_Value.
1173 That is, enable the Field_Present check in that case.
1174 (It was already enabled for all other fields.) Violations of this
1175 check were already fixed.
1176 (Print_Node_Statistics): Sort the output in decreasing order of
1177 frequencies.
1178 (Print_Field_Statistics): Likewise (sort).
1179 * accessibility.adb (Accessibility_Level): Pass Allow_Alt_Model in
1180 recursive calls. Apparently, an oversight.
1181 (Innermost_Master_Scope_Depth): Need to special-case the 'Old
1182 attribute and allocators.
1183 * einfo-utils.ads (Scope_Depth): Use Scope_Kind_Id to get
1184 predicate checks.
1185 (Scope_Depth_Set): Likewise.
1186 (Scope_Depth_Default_0): Likewise.
1187 * einfo-utils.adb: As for spec.
1188 * frontend.adb (Frontend): Remove unnecessary "return;".
1189 * gen_il-types.ads (Scope_Kind): New union type.
1190 * gen_il-gen-gen_entities.adb (Scope_Kind): New union type.
1191 * sem.ads: Move "with Einfo.Entities;" from body to spec.
1192 (Scope_Stack_Entry): Declare Entity to be of Scope_Kind_Id to get
1193 predicate checks. We had previously been putting non-scopes on the
1194 scope stack; this prevents such anomalies.
1195 * sem.adb: Move "with Einfo.Entities;" from body to spec.
1196 * sem_ch8.ads: Move "with Einfo.Entities;" from body to spec. Add
1197 "with Types;".
1198 (Push_Scope): Use Scope_Kind_Id to get predicate checks.
1199 * sem_ch8.adb: Move "with Einfo.Entities;" from body to spec. Add
1200 "with Types;".
1201 (Push_Scope): Use Scope_Kind_Id to get predicate checks.
1202 (Pop_Scope): Use Scope_Kind_Id on popped entity to get predicate
1203 checks. This prevents anomalies where a scope pushed onto the
1204 stack is later mutated to a nonscope before being popped.
1205 * sem_util.ads (Find_Enclosing_Scope): Add postcondition to ensure
1206 that the enclosing scope of a node N is not the same node N.
1207 Clearly, N does not enclose itself.
1208 * sem_util.adb (Find_Enclosing_Scope): There were several bugs
1209 where Find_Enclosing_Scope(N) = N. For example, if N is an entity,
1210 then we would typically go up to its declaration, and then back
1211 down to the Defining_Entity of the declaration, which is N itself.
1212 There were other cases where Find_Enclosing_Scope of an entity
1213 disagreed with Scope. Clearly, Find_Enclosing_Scope and Scope
1214 should agree (when both are defined). Such bugs caused latent bugs
1215 in accessibility.adb related to 'Old, and fixing bugs here caused
1216 such bugs to be revealed. These are fixed by calling Scope when N
1217 is an entity.
1218
12192023-09-15 Javier Miranda <miranda@adacore.com>
1220
1221 * accessibility.ads (Needs_Result_Accessibility_Extra_Formal):
1222 Removed.
1223 * accessibility.adb (Needs_Result_Accessibility_Level_Param):
1224 Removed.
1225 (Needs_Result_Accessibility_Extra_Formal): Removed.
1226 (Needs_Result_Accessibility_Level): Revert previous patch.
1227 * sem_ch6.adb (Parent_Subprogram): Handle function overriding an
1228 enumeration literal.
1229 (Create_Extra_Formals): Ensure that the parent subprogram has all
1230 its extra formals.
1231
05cb8730
GA
12322023-09-14 Yannick Moy <moy@adacore.com>
1233
1234 * exp_util.adb (Is_Statically_Disabled): New function to detect a
1235 "statically disabled condition which evaluates to a given value",
1236 as described in SPARK UG 7.3.2.
1237 (Kill_Dead_Code): Call the new function Is_Statically_Disabled for
1238 conditions of if statements.
1239 * exp_util.ads (Is_Statically_Disabled): New function spec.
1240
12412023-09-14 Javier Miranda <miranda@adacore.com>
1242
1243 * exp_util.adb (Process_Record_Component): Adjust assertion on the
1244 availablity of the invariant procedure; required because the
1245 invariant procedure is built by the expander, and hence it is not
1246 available compiling generic units or when the sources have errors,
1247 since expansion is then disabled.
1248
12492023-09-14 Javier Miranda <miranda@adacore.com>
1250
1251 * sem_util.adb (Large_Max_Size_Mutable): Protect access to
1252 attribute Is_Array_Type.
1253
12542023-09-14 Javier Miranda <miranda@adacore.com>
1255
1256 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Protect
1257 access to Entity attribute and add missing code to check function
1258 selector in a prefix form call.
1259
12602023-09-14 Eric Botcazou <ebotcazou@adacore.com>
1261
1262 * exp_ch6.adb (Expand_Ctrl_Function_Call): Also do nothing for the
1263 expression of a delta aggregate.
1264
12652023-09-14 Eric Botcazou <ebotcazou@adacore.com>
1266
1267 * exp_util.adb (Initialized_By_Aliased_BIP_Func_Call): Make the name
1268 matching more robust.
1269
12702023-09-14 Javier Miranda <miranda@adacore.com>
1271
1272 * sem_ch6.adb (Parent_Subprogram): Complete assertion.
1273
d820cd78
GA
12742023-09-05 Eric Botcazou <ebotcazou@adacore.com>
1275
1276 * gcc-interface/trans.cc (gnat_to_gnu): Really test Storage_Pool on
1277 the simple return statement.
1278
12792023-09-05 Tom Tromey <tromey@adacore.com>
1280
1281 * gcc-interface/decl.cc (gnat_to_gnu_entity): Set bit-packed for
1282 constrained and unconstrained array types.
1283 * gcc-interface/misc.cc (gnat_get_array_descr_info): Examine
1284 BIT_PACKED_ARRAY_TYPE_P.
1285
12862023-09-05 Piotr Trojanek <trojanek@adacore.com>
1287
1288 * sem_type.adb (Interface_Present_In_Ancestor): Remove guard against no
1289 list of interfaces; fix style in comments (trailing dots).
1290
12912023-09-05 Piotr Trojanek <trojanek@adacore.com>
1292
1293 * sem_type.adb (Iface_Present_In_Ancestor): Only look at the list of
1294 interfaces for types that allow it. The guard is a high-level equivalent
1295 of the entity kinds listed in the preconditon of the Interfaces query.
1296
12972023-09-05 Piotr Trojanek <trojanek@adacore.com>
1298
1299 * sem_type.adb (Iface_Present_In_Ancestor): Remove guard for empty list
1300 of interfaces; the following loop will work just fine without it.
1301
13022023-09-05 Eric Botcazou <ebotcazou@adacore.com>
1303
1304 * exp_ch9.adb (Build_Protected_Entry): Move the At_End procedure
1305 from the entry body to the inner block statement.
1306
13072023-09-05 Bob Duff <duff@adacore.com>
1308
1309 * sem_ch4.adb (Find_Component_In_Instance): Check that
1310 Declaration_Node (Par) is not Empty, as it is for itypes.
1311
13122023-09-05 Ronan Desplanques <desplanques@adacore.com>
1313
1314 * sem_ch7.adb (Analyze_Package_Declaration): Restrict calls to
1315 `Sem_Warn.Check_References` and adjust comment accordingly.
1316
13172023-09-05 Eric Botcazou <ebotcazou@adacore.com>
1318
1319 * freeze.adb (Freeze_Enumeration_Type): Give an error on a type with
1320 both representation clause and too large size.
1321
13222023-09-05 Liaiss Merzougue <merzougue@adacore.com>
1323
1324 * libgnat/s-imguti.adb: Remove comment.
1325
13262023-09-05 Javier Miranda <miranda@adacore.com>
1327
1328 * accessibility.ads (Needs_Result_Accessibility_Extra_Formal): New
1329 subprogram.
1330 * accessibility.adb (Needs_Result_Accessibility_Level_Param): New
1331 subprogram.
1332 (Needs_Result_Accessibility_Extra_Formal): New subprogram,
1333 temporarily keep the previous behavior of the frontend.
1334 * sem_ch6.adb (Create_Extra_Formals): Replace occurrences of
1335 function Needs_Result_Accessibility_Level_Param by calls to
1336 function Needs_Result_Accessibility_Extra_Formal.
1337 (Extra_Formals_OK): Ditto.
1338
13392023-09-05 Alexandre Oliva <oliva@adacore.com>
1340
1341 * libgnat/system-vxworks-ppc-rtp-smp.ads: Add -msmp to
1342 Linker_Options pragma.
1343
13442023-09-05 Javier Miranda <miranda@adacore.com>
1345
1346 * exp_aggr.adb (Expand_Container_Aggregate): Report warning on
1347 infinite recursion if an empty container aggregate appears in the
1348 return statement of its Empty function. Fix typo in comment.
1349 * sem_aggr.adb (Resolve_Aggregate): Resolve Ada 2022 empty
1350 aggregate that initializes a record type that has defined its
1351 container aggregate aspects.
1352 (Resolve_Iterated_Association): Protect access to attribute Etype.
1353 * sem_ch13.adb (Resolve_Aspect_Aggregate): Fix typo in comment.
1354
13552023-09-05 Steve Baird <baird@adacore.com>
1356
1357 * sem_attr.adb (Denote_Same_Function): Handle the case where
1358 Has_Homonym (Pref_Id) returns True but Homonym (Pref_Id) returns
1359 an empty result.
1360
13612023-09-05 Steve Baird <baird@adacore.com>
1362
1363 * sem_res.adb (Resolve_Unary_Op): In deciding whether to emit a
1364 warning about a modular type's unary minus operator being applied
1365 to an integer literal, ignore integer literals for which
1366 Comes_From_Source is False.
1367
13682023-09-05 Johannes Kliemann <kliemann@adacore.com>
1369
1370 * libgnarl/s-taprop__qnx.adb: Implement Set_Task_Affinity.
1371
13722023-09-05 Ghjuvan Lacambre <lacambre@adacore.com>
1373
1374 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
1375 index.
1376 * gnat_ugn.texi: Regenerate.
1377
13782023-09-05 Daniel King <dmking@adacore.com>
1379
1380 * libgnat/s-carsi8.adb: Use operations from
1381 System.Storage_Elements for address arithmetic.
1382 * libgnat/s-carun8.adb: Likewise
1383 * libgnat/s-casi128.adb: Likewise
1384 * libgnat/s-casi16.adb: Likewise
1385 * libgnat/s-casi32.adb: Likewise
1386 * libgnat/s-casi64.adb: Likewise
1387 * libgnat/s-caun128.adb: Likewise
1388 * libgnat/s-caun16.adb: Likewise
1389 * libgnat/s-caun32.adb: Likewise
1390 * libgnat/s-caun64.adb: Likewise
1391 * libgnat/s-geveop.adb: Likewise
1392
13932023-09-05 Eric Botcazou <ebotcazou@adacore.com>
1394
1395 * sem_ch12.adb (Component_Type_For_Private_View): New function.
1396 (Check_Generic_Actuals): For an actual type parameter, also check
1397 its component type if it is an array type.
1398 (Check_Private_View): Use Component_Type_For_Private_View in the
1399 case of an array type.
1400 (Instantiate_Type): Likewise.
1401 (Save_Global_References.Set_Global_Type): Likewise.
1402
14032023-09-05 Sheri Bernstein <bernstein@adacore.com>
1404
1405 * libgnat/s-aridou.adb: Add pragma to exempt Metrics_LSLOC.
1406 (Double_Divide): Add pragma to exempt
1407 Metrics_Cyclomatic_Complexity.
1408 (Scaled_Divide): Likewise.
1409 * libgnat/s-vauspe.ads (Uns_Option): Add pragma to exempt
1410 Discriminated_Records.
1411
14122023-09-05 Ronan Desplanques <desplanques@adacore.com>
1413
1414 * Makefile.rtl: Add missing units.
1415
14162023-09-05 Sheri Bernstein <bernstein@adacore.com>
1417
1418 * libgnarl/a-reatim.adb (Time_Of): Add pragma to exempt
1419 Discriminated_Records.
1420 * libgnat/s-imguti.adb (Round, Set_Decimal_Digits): Likewise.
1421 * libgnat/s-multip.adb (Number_Of_CPUs): Likewise.
1422 * libgnarl/s-tpopsp__posix-foreign.adb (Self): Refactor multiple
1423 returns.
1424
14252023-09-05 Javier Miranda <miranda@adacore.com>
1426
1427 * sem_ch3.adb (Add_Internal_Interface_Entities): Add missing
1428 subtype-conformance check on primitives implementing interface
1429 primitives.
1430 (Error_Posted_In_Formals): New subprogram.
1431
14322023-09-05 Ronan Desplanques <desplanques@adacore.com>
1433
1434 * libgnarl/s-tassta.adb: Tweak comment.
1435
14362023-09-05 Yang Yujie <yangyujie@loongson.cn>
1437
1438 * Makefile.rtl: Add LoongArch support.
1439 * libgnarl/s-linux__loongarch.ads: New file.
1440 * libgnat/system-linux-loongarch.ads: New file.
1441
4b92dba7
GA
14422023-08-07 Sheri Bernstein <bernstein@adacore.com>
1443
1444 * libgnat/s-parame__qnx.adb: Refactor multiple returns.
1445
14462023-08-07 Piotr Trojanek <trojanek@adacore.com>
1447
1448 * libgnat/i-cstrin.ads (Value): Extend preconditions; adapt comment for
1449 the package.
1450
14512023-08-07 Yannick Moy <moy@adacore.com>
1452
1453 * sem_res.adb (Resolve_Call): Always call Cannot_Inline so that
1454 subprogram called is marked as not always inlined.
1455
14562023-08-07 Javier Miranda <miranda@adacore.com>
1457
1458 * sem_res.adb (Resolve_Type_Conversion): Do not warn on conversion
1459 to class-wide type on internally build helpers of class-wide
1460 preconditions.
1461
86fa4433
GA
14622023-08-03 Sheri Bernstein <bernstein@adacore.com>
1463
1464 * libgnat/s-aridou.adb: Add pragma to exempt Improper_Returns.
1465 * libgnat/s-atopri.adb (Lock_Free_Try_Write): Likewise.
1466 * libgnat/s-bitops.adb (Bit_Eq): Likewise.
1467 * libgnat/s-carsi8.adb: Likewise.
1468 * libgnat/s-carun8.adb: Likewise.
1469 * libgnat/s-casi16.adb: Likewise.
1470 * libgnat/s-casi32.adb: Likewise.
1471 * libgnat/s-casi64.adb: Likewise.
1472 * libgnat/s-caun16.adb: Likewise.
1473 * libgnat/s-caun32.adb: Likewise.
1474 * libgnat/s-caun64.adb: Likewise.
1475 * libgnat/s-exponn.adb: Likewise.
1476 * libgnat/s-expont.adb: Likewise.
1477 * libgnat/s-valspe.adb: Likewise.
1478 * libgnat/s-vauspe.adb: Likewise.
1479
14802023-08-03 Vasiliy Fofanov <fofanov@adacore.com>
1481
1482 * libgnat/s-imageb.adb (Set_Image_Based_Unsigned): Rewritten.
1483 * libgnat/s-imagew.adb (Set_Image_Width_Unsigned): Likewise.
1484
14852023-08-03 Eric Botcazou <ebotcazou@adacore.com>
1486
1487 * exp_util.adb (Make_Invariant_Call): Convert the expression to
1488 the type of the formal parameter if need be.
1489
14902023-08-03 Eric Botcazou <ebotcazou@adacore.com>
1491
1492 * libgnat/s-dwalin.adb ("-"): New subtraction operator.
1493 (Enable_Cache): Use it to compute the offset.
1494 (Symbolic_Address): Likewise.
1495
cf58b896
GA
14962023-08-01 Yannick Moy <moy@adacore.com>
1497
1498 * repinfo.adb (Compute_Max_Length): Set parameter to print number
1499 in decimal notation.
1500 (List_Component_Layout): Same.
1501
15022023-08-01 Yannick Moy <moy@adacore.com>
1503
1504 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Check for
1505 Skip_Proof and Skip_Flow_And_Proof annotations for deciding
1506 whether a subprogram can be inlined.
1507
15082023-08-01 Steve Baird <baird@adacore.com>
1509
1510 * sem_ch3.adb (Constrain_Corresponding_Record): When copying
1511 information from the unconstrained record type to a newly
1512 constructed constrained record subtype, the
1513 Direct_Primitive_Operations attribute must be copied.
1514
15152023-08-01 Steve Baird <baird@adacore.com>
1516
1517 * sem_ch3.adb (Analyze_Component_Declaration): Remove
1518 Build_Default_Subtype_OK call and code that could only executed in
1519 the case where the removed call would have returned True. Other
1520 calls to Build_Default_Subtype_Ok are unaffected by this change.
1521
15222023-08-01 Pascal Obry <obry@adacore.com>
1523
1524 * aspects.ads (Find_Aspect): Add Boolean parameter Or_Rep_Item
1525 (defaulted to False).
1526 * aspects.adb (Find_Aspect): If new Boolean parameter Or_Rep_Item
1527 is True, then instead of returning an empty result if no
1528 appropriate N_Aspect_Specification node is found, return an
1529 appropriate N_Attribute_Definition_Clause if one is found.
1530 * exp_put_image.ads: Change name of Enable_Put_Image function to
1531 Put_Image_Enabled.
1532 * exp_put_image.adb (Build_Record_Put_Image_Procedure): Detect the
1533 case where a call to the Put_Image procedure of a derived type can
1534 be transformed into a call to the parent type's Put_Image
1535 procedure (with a type conversion to the parent type as the actual
1536 parameter).
1537 (Put_Image_Enabled): Change name of function (previously
1538 Enable_Put_Image). Return True in more cases. In particular,
1539 return True for a type with an explicitly specified Put_Image
1540 aspect even if the type is declared in a predefined unit (or in an
1541 instance of a predefined generic unit).
1542 * exp_attr.adb: Changes due to Put_Image_Enabled function name
1543 change.
1544
15452023-08-01 Yannick Moy <moy@adacore.com>
1546
1547 * repinfo.adb (List_Common_Type_Info): Fix output when alignment
1548 is not statically known, and fix assertion when expansion is not
1549 enabled.
1550
15512023-08-01 Bob Duff <duff@adacore.com>
1552
1553 * atree.adb (Field_Present): New function to detect whether or not
1554 a given field is present in a given node, based on either the node
1555 kind or the entity kind as appropriate.
1556 (Get_Field_Value): Check that the field begin fetched exists.
1557 However, disable the check in the case of Scope_Depth_Value,
1558 because we have failures in that case. Those failures need to be
1559 fixed, and then the check can be enabled for all fields.
1560 (Set_Field_Value): Check that the field begin set exists.
1561
15622023-08-01 Léo Creuse <creuse@adacore.com>
1563
1564 * par_sco.adb (Process_Decisions): Traverse all attributes of
1565 quantified expressions nodes.
1566
e0f91730
GA
15672023-07-28 Eric Botcazou <ebotcazou@adacore.com>
1568
1569 * gcc-interface/trans.cc (gnat_to_gnu): Restrict previous change to
1570 the case where the simple return statement has got no storage pool.
1571
15722023-07-28 Clément Chigot <chigot@adacore.com>
1573
1574 * libgnarl/s-inmaop__posix.adb: Add assert after sigwait in
1575 Interrupt_Wait
1576
15772023-07-28 Javier Miranda <miranda@adacore.com>
1578
1579 * einfo-utils.adb (Underlying_Type): Protect recursion call
1580 against non-available attribute Etype.
1581 * einfo.ads (Protected_Subprogram): Fix typo in documentation.
1582 * exp_ch3.adb (BIP_Function_Call_Id): New subprogram.
1583 (Expand_N_Object_Declaration): Improve code that evaluates if the
1584 object is initialized with a BIP function call.
1585 * exp_ch6.adb (Is_True_Build_In_Place_Function_Call): New
1586 subprogram.
1587 (Add_Task_Actuals_To_Build_In_Place_Call): Add dummy actuals if
1588 the function does not require the BIP task actuals but it is a
1589 dispatching operation that inherited them.
1590 (Build_In_Place_Formal): Improve code to avoid never-ending loop
1591 if the BIP formal is not found.
1592 (Add_Dummy_Build_In_Place_Actuals): New subprogram.
1593 (Expand_Call_Helper): Add calls to
1594 Add_Dummy_Build_In_Place_Actuals.
1595 (Expand_N_Extended_Return_Statement): Adjust assertion.
1596 (Expand_Simple_Function_Return): Adjust assertion.
1597 (Make_Build_In_Place_Call_In_Allocator): No action needed if the
1598 called function inherited the BIP extra formals but it is not a
1599 true BIP function.
1600 (Make_Build_In_Place_Call_In_Assignment): Ditto.
1601 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Remove code
1602 reporting unsupported case (since this patch adds support for it).
1603 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Adding assertion
1604 to ensure matching of BIP formals when setting the
1605 Protected_Formal field of a protected subprogram to reference the
1606 corresponding extra formal of the subprogram that implements it.
1607 (Might_Need_BIP_Task_Actuals): New subprogram.
1608 (Create_Extra_Formals): Improve code adding inherited extra
1609 formals.
1610
16112023-07-28 Pascal Obry <obry@adacore.com>
1612
1613 * s-oscons-tmplt.c: Add support for SO_BINDTODEVICE constant.
1614 * libgnat/g-socket.ads (Set_Socket_Option): Handle SO_BINDTODEVICE option.
1615 (Get_Socket_Option): Handle SO_BINDTODEVICE option.
1616 * libgnat/g-socket.adb: Likewise.
1617 (Get_Socket_Option): Handle the case where IF_NAMESIZE is not defined
1618 and so equal to -1.
1619
16202023-07-28 Léo Creuse <creuse@adacore.com>
1621
1622 * par_sco.adb (Has_Decision): Consider that quantified expressions
1623 contain decisions.
1624
16252023-07-28 Ronan Desplanques <desplanques@adacore.com>
1626
1627 * libgnarl/s-tposen.adb: Fix race condition. Add comment to justify
1628 the locking timing.
1629
16302023-07-28 Viljar Indus <indus@adacore.com>
1631
1632 * exp_util.adb (Find_Optional_Prim_Op): use "No" instead of "= Empty"
1633
16342023-07-28 Piotr Trojanek <trojanek@adacore.com>
1635
1636 * sem_res.adb (Resolve_Actuals): Add guard for the call to
1637 Class_Preconditions_Subprogram.
1638
16392023-07-28 Eric Botcazou <ebotcazou@adacore.com>
1640
1641 * exp_aggr.adb (Is_Two_Dim_Packed_Array): Return true only if the
1642 component type of the array is scalar.
1643
16442023-07-28 Piotr Trojanek <trojanek@adacore.com>
1645
1646 * sem_ch6.adb (Check_Statement_Sequence): Only warn about missing return
1647 statements and let GNATprove emit a check when needed.
1648
16492023-07-28 Tom Tromey <tromey@adacore.com>
1650
1651 * fe.h (Convention): Now inline function.
1652 * gen_il-gen.adb (Put_C_Type_And_Subtypes.Put_Enum_Lit)
1653 (Put_C_Type_And_Subtypes.Put_Kind_Subtype, Put_C_Getter):
1654 Emit enum.
1655 * snames.h-tmpl (Name_Id, Name_, Attribute_Id, Attribute_)
1656 (Convention_Id, Convention_, Pragma_Id, Pragma_): Now enum.
1657 (Get_Attribute_Id, Get_Pragma_Id): Now inline functions.
1658 * types.h (Node_Kind, Entity_Kind, Convention_Id, Name_Id):
1659 Now enum.
1660 * xsnamest.adb (Output_Header_Line, Make_Value): Emit enum.
1661
16622023-07-28 Piotr Trojanek <trojanek@adacore.com>
1663
1664 * libgnat/a-except.ads (Save_Occurrence): Fix typo.
1665
16662023-07-28 Piotr Trojanek <trojanek@adacore.com>
1667
1668 * einfo-utils.adb (Number_Formals): Change types in body.
1669 * einfo-utils.ads (Number_Formals): Change type in spec.
1670 * einfo.ads (Number_Formals): Change type in comment.
1671 * sem_ch13.adb (Is_Property_Function): Fix style in a caller of
1672 Number_Formals that was likely to crash because of missing guards.
1673
16742023-07-28 Piotr Trojanek <trojanek@adacore.com>
1675
1676 * sem_warn.adb (Check_Infinite_Loop_Warning): Don't look at the type of
1677 actual parameter when it has no type at all, e.g. because the entire
1678 subprogram call is illegal.
1679
ec842611
GA
16802023-07-18 Tom Tromey <tromey@adacore.com>
1681
1682 * gcc-interface/decl.cc (check_ok_for_atomic_type): Use Pragma_Id.
1683 * gcc-interface/trans.cc (lvalue_required_p, Pragma_to_gnu): Use
1684 Pragma_Id.
1685 (get_type_length, Attribute_to_gnu, get_atomic_access): Use
1686 Attribute_Id.
1687
16882023-07-18 Javier Miranda <miranda@adacore.com>
1689
1690 * exp_imgv.adb (Rewrite_Object_Image): fix type of formal. Found
1691 reading sources.
1692 (Expand_Wide_Image_Attribute): ditto.
1693 (Expand_Wide_Wide_Image_Attribute): ditto.
1694 (Rewrite_Object_Image): ditto.
1695 * exp_put_image.adb (Build_Image_Call): For class-wide interface
1696 type prefix generate code to displace the pointer to the object to
1697 reference the base of the underlying object.
1698
16992023-07-18 Viljar Indus <indus@adacore.com>
1700
1701 * sem_aggr.adb (Resolve_Iterated_Association): Add temporary scope
1702 when analyzing the Iterator Specification. Use preanalysis instead
1703 of Analysis to avoid polluting the tree.
1704
17052023-07-18 Viljar Indus <indus@adacore.com>
1706
1707 * sem_aggr.adb (Resolve_Iterated_Association): Use the element
1708 type for the iterator in a container aggregate with an iterator
1709 specification.
1710
17112023-07-18 Viljar Indus <indus@adacore.com>
1712
1713 * exp_aggr.adb (Expand_Container_Aggregate): Use the positional
1714 addition method only when dealing with a container aggregate
1715 without an Iterator Specification e.g. with a loop parameter
1716 specification
1717
17182023-07-18 Eric Botcazou <ebotcazou@adacore.com>
1719
1720 * sem_util.ads (Wrong_Type): Add Multiple parameter defaulting to
1721 False and document it.
1722 * sem_util.adb (Wrong_Type): Do not return early if an error has
1723 already been posted on Expr and Multiple is True.
1724 * sem_ch4.adb (Analyze_One_Call): Pass All_Errors_Mode as the
1725 actual parameter for Multiple to Wrong_Type.
1726
17272023-07-18 Javier Miranda <miranda@adacore.com>
1728
1729 * exp_disp.adb (Has_Dispatching_Constructor_Call): Removed.
1730 (Expand_Interface_Conversion): Reverse patch.
1731
17322023-07-18 Ronan Desplanques <desplanques@adacore.com>
1733
1734 * libgnarl/s-taprop__linux.adb (Set_Task_Affinity, Create_Task): Tweak
1735 handling of CPU affinities.
1736
17372023-07-18 Eric Botcazou <ebotcazou@adacore.com>
1738
1739 * sem_type.ads (Is_Ancestor): Remove mention of tagged type.
1740 * exp_aggr.adb: Add with and use clauses for Sem_Type.
1741 (Build_Record_Aggr_Code.Replace_Type): Call Is_Ancestor to spot
1742 self-references to the type of the aggregate.
1743 * sem_aggr.adb (Resolve_Record_Aggregate.Add_Discriminant_Values):
1744 Likewise.
1745
17462023-07-18 Eric Botcazou <ebotcazou@adacore.com>
1747
1748 * sem_ch13.adb (Replace_Type_References_Generic.Visible_Component):
1749 In the case of private discriminated types, explicitly check that we
1750 have a private declaration before examining its discriminant part.
1751
17522023-07-18 Alexandre Oliva <oliva@adacore.com>
1753
1754 * libgnat/a-except.ads (Raise_Exception): Mark expected_throw.
1755 (Reraise_Occurrence): Likewise.
1756 (Raise_Exception_Always): Likewise.
1757 (Raise_From_Controlled_Operation): Likewise.
1758 (Reraise_Occurrence_Always): Likewise.
1759 (Reraise_Occurrence_No_Defer): Likewise.
1760 * libgnat/a-except.adb
1761 (Exception_Propagation.Propagate_Exception): Likewise.
1762 (Complete_And_Propagate_Occurrence): Likewise.
1763 (Raise_Exception_No_Defer): Likewise.
1764 (Raise_From_Signal_Handler): Likewise.
1765 (Raise_With_Msg): Likewise.
1766 (Raise_With_Location_And_Msg): Likewise.
1767 (Raise_Constraint_Error): Likewise.
1768 (Raise_Constraint_Error_Msg): Likewise.
1769 (Raise_Program_Error): Likewise.
1770 (Raise_Program_Error_Msg): Likewise.
1771 (Raise_Storage_Error): Likewise.
1772 (Raise_Storage_Error_Msg): Likewise.
1773 (Reraise, Rcheck_*): Likewise.
1774 * doc/gnat_rm/security_hardening_features.rst (Control Flow
1775 Hardening): Note the influence of expected_throw.
1776 * gnat_rm.texi: Regenerate.
1777 * gnat_ugn.texi: Regenerate.
1778 * gcc-interface/utils.cc (handle_expected_throw_attribute): New.
1779 (gnat_internal_attribute_table): Add expected_throw.
1780
17812023-07-18 Vasiliy Fofanov <fofanov@adacore.com>
1782
1783 * libgnat/s-pack03.adb: Update copyright year; refactor return statements.
1784 * libgnat/s-pack05.adb: Likewise.
1785 * libgnat/s-pack06.adb: Likewise.
1786 * libgnat/s-pack07.adb: Likewise.
1787 * libgnat/s-pack09.adb: Likewise.
1788 * libgnat/s-pack10.adb: Likewise.
1789 * libgnat/s-pack100.adb: Likewise.
1790 * libgnat/s-pack101.adb: Likewise.
1791 * libgnat/s-pack102.adb: Likewise.
1792 * libgnat/s-pack103.adb: Likewise.
1793 * libgnat/s-pack104.adb: Likewise.
1794 * libgnat/s-pack105.adb: Likewise.
1795 * libgnat/s-pack106.adb: Likewise.
1796 * libgnat/s-pack107.adb: Likewise.
1797 * libgnat/s-pack108.adb: Likewise.
1798 * libgnat/s-pack109.adb: Likewise.
1799 * libgnat/s-pack11.adb: Likewise.
1800 * libgnat/s-pack110.adb: Likewise.
1801 * libgnat/s-pack111.adb: Likewise.
1802 * libgnat/s-pack112.adb: Likewise.
1803 * libgnat/s-pack113.adb: Likewise.
1804 * libgnat/s-pack114.adb: Likewise.
1805 * libgnat/s-pack115.adb: Likewise.
1806 * libgnat/s-pack116.adb: Likewise.
1807 * libgnat/s-pack117.adb: Likewise.
1808 * libgnat/s-pack118.adb: Likewise.
1809 * libgnat/s-pack119.adb: Likewise.
1810 * libgnat/s-pack12.adb: Likewise.
1811 * libgnat/s-pack120.adb: Likewise.
1812 * libgnat/s-pack121.adb: Likewise.
1813 * libgnat/s-pack122.adb: Likewise.
1814 * libgnat/s-pack123.adb: Likewise.
1815 * libgnat/s-pack124.adb: Likewise.
1816 * libgnat/s-pack125.adb: Likewise.
1817 * libgnat/s-pack126.adb: Likewise.
1818 * libgnat/s-pack127.adb: Likewise.
1819 * libgnat/s-pack13.adb: Likewise.
1820 * libgnat/s-pack14.adb: Likewise.
1821 * libgnat/s-pack15.adb: Likewise.
1822 * libgnat/s-pack17.adb: Likewise.
1823 * libgnat/s-pack18.adb: Likewise.
1824 * libgnat/s-pack19.adb: Likewise.
1825 * libgnat/s-pack20.adb: Likewise.
1826 * libgnat/s-pack21.adb: Likewise.
1827 * libgnat/s-pack22.adb: Likewise.
1828 * libgnat/s-pack23.adb: Likewise.
1829 * libgnat/s-pack24.adb: Likewise.
1830 * libgnat/s-pack25.adb: Likewise.
1831 * libgnat/s-pack26.adb: Likewise.
1832 * libgnat/s-pack27.adb: Likewise.
1833 * libgnat/s-pack28.adb: Likewise.
1834 * libgnat/s-pack29.adb: Likewise.
1835 * libgnat/s-pack30.adb: Likewise.
1836 * libgnat/s-pack31.adb: Likewise.
1837 * libgnat/s-pack33.adb: Likewise.
1838 * libgnat/s-pack34.adb: Likewise.
1839 * libgnat/s-pack35.adb: Likewise.
1840 * libgnat/s-pack36.adb: Likewise.
1841 * libgnat/s-pack37.adb: Likewise.
1842 * libgnat/s-pack38.adb: Likewise.
1843 * libgnat/s-pack39.adb: Likewise.
1844 * libgnat/s-pack40.adb: Likewise.
1845 * libgnat/s-pack41.adb: Likewise.
1846 * libgnat/s-pack42.adb: Likewise.
1847 * libgnat/s-pack43.adb: Likewise.
1848 * libgnat/s-pack44.adb: Likewise.
1849 * libgnat/s-pack45.adb: Likewise.
1850 * libgnat/s-pack46.adb: Likewise.
1851 * libgnat/s-pack47.adb: Likewise.
1852 * libgnat/s-pack48.adb: Likewise.
1853 * libgnat/s-pack49.adb: Likewise.
1854 * libgnat/s-pack50.adb: Likewise.
1855 * libgnat/s-pack51.adb: Likewise.
1856 * libgnat/s-pack52.adb: Likewise.
1857 * libgnat/s-pack53.adb: Likewise.
1858 * libgnat/s-pack54.adb: Likewise.
1859 * libgnat/s-pack55.adb: Likewise.
1860 * libgnat/s-pack56.adb: Likewise.
1861 * libgnat/s-pack57.adb: Likewise.
1862 * libgnat/s-pack58.adb: Likewise.
1863 * libgnat/s-pack59.adb: Likewise.
1864 * libgnat/s-pack60.adb: Likewise.
1865 * libgnat/s-pack61.adb: Likewise.
1866 * libgnat/s-pack62.adb: Likewise.
1867 * libgnat/s-pack63.adb: Likewise.
1868 * libgnat/s-pack65.adb: Likewise.
1869 * libgnat/s-pack66.adb: Likewise.
1870 * libgnat/s-pack67.adb: Likewise.
1871 * libgnat/s-pack68.adb: Likewise.
1872 * libgnat/s-pack69.adb: Likewise.
1873 * libgnat/s-pack70.adb: Likewise.
1874 * libgnat/s-pack71.adb: Likewise.
1875 * libgnat/s-pack72.adb: Likewise.
1876 * libgnat/s-pack73.adb: Likewise.
1877 * libgnat/s-pack74.adb: Likewise.
1878 * libgnat/s-pack75.adb: Likewise.
1879 * libgnat/s-pack76.adb: Likewise.
1880 * libgnat/s-pack77.adb: Likewise.
1881 * libgnat/s-pack78.adb: Likewise.
1882 * libgnat/s-pack79.adb: Likewise.
1883 * libgnat/s-pack80.adb: Likewise.
1884 * libgnat/s-pack81.adb: Likewise.
1885 * libgnat/s-pack82.adb: Likewise.
1886 * libgnat/s-pack83.adb: Likewise.
1887 * libgnat/s-pack84.adb: Likewise.
1888 * libgnat/s-pack85.adb: Likewise.
1889 * libgnat/s-pack86.adb: Likewise.
1890 * libgnat/s-pack87.adb: Likewise.
1891 * libgnat/s-pack88.adb: Likewise.
1892 * libgnat/s-pack89.adb: Likewise.
1893 * libgnat/s-pack90.adb: Likewise.
1894 * libgnat/s-pack91.adb: Likewise.
1895 * libgnat/s-pack92.adb: Likewise.
1896 * libgnat/s-pack93.adb: Likewise.
1897 * libgnat/s-pack94.adb: Likewise.
1898 * libgnat/s-pack95.adb: Likewise.
1899 * libgnat/s-pack96.adb: Likewise.
1900 * libgnat/s-pack97.adb: Likewise.
1901 * libgnat/s-pack98.adb: Likewise.
1902 * libgnat/s-pack99.adb: Likewise.
1903
19042023-07-18 Yannick Moy <moy@adacore.com>
1905
1906 * errout.adb (Error_Msg_Internal): Remove call to
1907 Prescan_Message on the special continuation for the explain code
1908 command, as this does not play well with the setting of global
1909 variables for the message (like its status as a warning or not).
1910 Instead, set directly the global variables regarding content of
1911 the message in terms of special characters.
1912
19132023-07-18 Eric Botcazou <ebotcazou@adacore.com>
1914
1915 * sem_util.ads (Validated_View): Document enhanced behavior.
1916 * sem_util.adb (Validated_View): Return the nonlimited view, if any,
1917 of types coming from a limited with.
1918
af3d3ce3
GA
19192023-07-11 Bob Duff <duff@adacore.com>
1920
1921 * exp_ch3.adb (Expand_N_Object_Declaration): Avoid transforming to
1922 a renaming in case of constrained array that comes from source.
1923
19242023-07-11 Eric Botcazou <ebotcazou@adacore.com>
1925
1926 * sem_ch13.adb (Replace_Type_References_Generic.Visible_Component):
1927 In the case of private discriminated types, return a discriminant
1928 only if it is listed in the discriminant part of the declaration.
1929
322d17ae
GA
19302023-07-10 Eric Botcazou <ebotcazou@adacore.com>
1931
1932 * adaint.c [_WIN32]: Undefine 'abort' macro.
1933
19342023-07-10 Tom Tromey <tromey@adacore.com>
1935
1936 * snames.h-tmpl (Name_Id, Attribute_Id, Convention_Id)
1937 (Pragma_Id): New typedefs.
1938 (Get_Attribute_Id, Get_Pragma_Id): Use typedef.
1939
19402023-07-10 Yannick Moy <moy@adacore.com>
1941
1942 * libgnat/s-aridou.adb (Lemma_Powers_Of_2_Commutation): Rewrite
1943 assertion.
1944
19452023-07-10 Bob Duff <duff@adacore.com>
1946
1947 * doc/gnat_rm/gnat_language_extensions.rst
1948 (Local Declarations Without Block): Document the feature very
1949 briefly, and refer the reader to the RFC for details and examples.
1950 * gnat_rm.texi: Regenerate.
1951 * gnat_ugn.texi: Regenerate.
1952
19532023-07-10 Alexandre Oliva <oliva@adacore.com>
1954
1955 * doc/gnat_rm/security_hardening_features.rst (Control Flow
1956 Hardening): Document -fhardcfr-skip-leaf.
1957 * gnat_rm.texi: Regenerate.
1958
19592023-07-10 Alexandre Oliva <oliva@adacore.com>
1960
1961 * doc/gnat_rm/security_hardening_features.rst (Control Flow
1962 Redundancy): Add -fhardcfr-check-noreturn-calls=no-xthrow.
1963 * gnat_rm.texi: Regenerate.
1964
19652023-07-10 Yannick Moy <moy@adacore.com>
1966
1967 * libgnat/s-aridou.adb (Lemma_Div_Mult): New simple lemma.
1968 (Lemma_Powers_Of_2_Commutation): State post in else branch.
1969 (Lemma_Div_Pow2): Introduce local lemma and use it.
1970 (Scaled_Divide): Use cut operations in assertions, lemmas, new
1971 assertions. Introduce local lemma and use it.
1972
19732023-07-10 Alexandre Oliva <oliva@adacore.com>
1974
1975 * doc/gnat_rm/security_hardening_features.rst (Register
1976 Scrubbing): Document leafy mode.
1977 * gnat_rm.texi: Regenerate.
1978
738808bd
GA
19792023-07-06 Claire Dross <dross@adacore.com>
1980
1981 * gcc-interface/Make-lang.in: Add object files of specification
1982 files.
1983
19842023-07-06 Claire Dross <dross@adacore.com>
1985
1986 * libgnat/s-vs_int.ads: Instance of Value_I_Spec for Integer.
1987 * libgnat/s-vs_lli.ads: Instance of Value_I_Spec for
1988 Long_Long_Integer.
1989 * libgnat/s-vsllli.ads: Instance of Value_I_Spec for
1990 Long_Long_Long_Integer.
1991 * libgnat/s-vs_uns.ads: Instance of Value_U_Spec for Unsigned.
1992 * libgnat/s-vs_llu.ads: Instance of Value_U_Spec for
1993 Long_Long_Unsigned.
1994 * libgnat/s-vslllu.ads: Instance of Value_U_Spec for
1995 Long_Long_Long_Unsigned.
1996 * libgnat/s-imagei.ads: Take instances of Value_*_Spec as
1997 parameters.
1998 * libgnat/s-imagei.adb: Idem.
1999 * libgnat/s-imageu.ads: Idem.
2000 * libgnat/s-imageu.adb: Idem.
2001 * libgnat/s-valuei.ads: Idem.
2002 * libgnat/s-valuei.adb: Idem.
2003 * libgnat/s-valueu.ads: Idem.
2004 * libgnat/s-valueu.adb: Idem.
2005 * libgnat/s-imgint.ads: Adapt instance to new ghost parameters.
2006 * libgnat/s-imglli.ads: Adapt instance to new ghost parameters.
2007 * libgnat/s-imgllli.ads: Adapt instance to new ghost parameters.
2008 * libgnat/s-imglllu.ads: Adapt instance to new ghost parameters.
2009 * libgnat/s-imgllu.ads: Adapt instance to new ghost parameters.
2010 * libgnat/s-imguns.ads: Adapt instance to new ghost parameters.
2011 * libgnat/s-valint.ads: Adapt instance to new ghost parameters.
2012 * libgnat/s-vallli.ads: Adapt instance to new ghost parameters.
2013 * libgnat/s-valllli.ads: Adapt instance to new ghost parameters.
2014 * libgnat/s-vallllu.ads: Adapt instance to new ghost parameters.
2015 * libgnat/s-valllu.ads: Adapt instance to new ghost parameters.
2016 * libgnat/s-valuns.ads: Adapt instance to new ghost parameters.
2017 * libgnat/s-vaispe.ads: Take instance of Value_U_Spec as parameter
2018 and remove unused declaration.
2019 * libgnat/s-vaispe.adb: Idem.
2020 * libgnat/s-vauspe.ads: Remove unused declaration.
2021 * libgnat/s-valspe.ads: Factor out the specification part of
2022 Val_Util.
2023 * libgnat/s-valspe.adb: Idem.
2024 * libgnat/s-valuti.ads: Move specification to Val_Spec.
2025 * libgnat/s-valuti.adb: Idem.
2026 * libgnat/s-valboo.ads: Use Val_Spec.
2027 * libgnat/s-valboo.adb: Idem.
2028 * libgnat/s-imgboo.adb: Idem.
2029 * libgnat/s-imagef.adb: Adapt instances to new ghost parameters.
2030 * Makefile.rtl: List new files.
2031
20322023-07-06 Viljar Indus <indus@adacore.com>
2033
2034 * sem_attr.adb (analyze_attribute.check_array_type): Replace valid
2035 indexes with their staticly evaluated values.
2036
20372023-07-06 Viljar Indus <indus@adacore.com>
2038
2039 * doc/gnat_ugn/the_gnat_compilation_model.rst: Reference "Binding
2040 with Non-Ada Main Programs" from "Creating a Stand-alone Library
2041 to be used in a non-Ada context".
2042 * gnat_ugn.texi: Regenerate.
2043
20442023-07-06 Viljar Indus <indus@adacore.com>
2045
2046 * sem_util.adb (Is_Fully_Initialized_Type): Avoid recalculating
2047 the underlying type twice.
2048
20492023-07-06 Viljar Indus <indus@adacore.com>
2050
2051 * exp_util.adb (Find_Optional_Prim_Op): Stop deriving primitive
2052 operation if there is no underlying type to derive it from.
2053
20542023-07-06 Yannick Moy <moy@adacore.com>
2055
2056 * errout.ads: Add explain code.
2057 * sem_prag.adb (Check_Library_Level_Entity): Refine error message
2058 and add explain code.
2059
20602023-07-06 Steve Baird <baird@adacore.com>
2061
2062 * exp_ch7.adb (Make_Final_Call): Add assertion that if no
2063 finalization call is generated, then the type of the object being
2064 finalized does not require finalization.
2065 * freeze.adb (Freeze_Entity): If freezing an already-frozen
2066 subtype, do not assume that nothing needs to be done. In the case
2067 of a frozen subtype of a non-frozen type or subtype (which is
2068 possible), freeze the non-frozen entity.
2069
6d966f9f
GA
20702023-07-04 Eric Botcazou <ebotcazou@adacore.com>
2071
2072 * exp_ch5.adb (Expand_Assign_Array): Adjust comment above the
2073 calls to Possible_Bit_Aligned_Component on the LHS and RHS. Do not
2074 call Is_Possibly_Unaligned_Slice in the slice case.
2075 * exp_util.ads (Component_May_Be_Bit_Aligned): Add For_Slice
2076 boolean parameter.
2077 (Possible_Bit_Aligned_Component): Likewise.
2078 * exp_util.adb (Component_May_Be_Bit_Aligned): Do not return False
2079 for the slice of a small record or bit-packed array component.
2080 (Possible_Bit_Aligned_Component): Pass For_Slice in recursive
2081 calls, except in the slice case where True is passed, as well as
2082 in call to Component_May_Be_Bit_Aligned.
2083
20842023-07-04 Eric Botcazou <ebotcazou@adacore.com>
2085
2086 * exp_ch4.ads (Expand_Unchecked_Union_Equality): Only take a
2087 single parameter.
2088 * exp_ch4.adb (Expand_Unchecked_Union_Equality): Add guard against
2089 repeated invocation on the same node.
2090 * exp_ch6.adb (Expand_Call): Only pass a single actual parameter
2091 in the call to Expand_Unchecked_Union_Equality.
2092
20932023-07-04 Viljar Indus <indus@adacore.com>
2094
2095 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
2096 add No_Use_Of_Attribute & No_Use_Of_Pragma restrictions.
2097 * gnat_rm.texi: Regenerate.
2098 * gnat_ugn.texi: Regenerate.
2099
21002023-07-04 Yannick Moy <moy@adacore.com>
2101
2102 * sem_disp.adb (Inherited_Subprograms): Add parameter to filter
2103 out results.
2104 * sem_disp.ads: Likewise.
2105
092f54cb
GA
21062023-07-03 Eric Botcazou <ebotcazou@adacore.com>
2107
2108 * exp_ch3.ads (Build_Variant_Record_Equality): Add Spec_Id as second
2109 parameter.
2110 * exp_ch3.adb (Build_Variant_Record_Equality): For unchecked union
2111 types, build the additional parameters as extra formal parameters.
2112 (Expand_Freeze_Record_Type.Build_Variant_Record_Equality): Pass
2113 Empty as Spec_Id in call to Build_Variant_Record_Equality.
2114 * exp_ch4.ads (Expand_Unchecked_Union_Equality): New procedure.
2115 * exp_ch4.adb (Expand_Composite_Equality): In the presence of a
2116 function implementing composite equality, do not special case the
2117 unchecked union types, and only convert the operands if the base
2118 types are not the same like in Build_Equality_Call.
2119 (Build_Equality_Call): Do not special case the unchecked union types
2120 and relocate the operands only once.
2121 (Expand_N_Op_Eq): Do not special case the unchecked union types.
2122 (Expand_Unchecked_Union_Equality): New procedure implementing the
2123 specific expansion of calls to the predefined equality function.
2124 * exp_ch6.adb (Is_Unchecked_Union_Equality): New predicate.
2125 (Expand_Call): Call Is_Unchecked_Union_Equality to determine whether
2126 to call Expand_Unchecked_Union_Equality or Expand_Call_Helper.
2127 * exp_ch8.adb (Build_Body_For_Renaming): Set Has_Delayed_Freeze flag
2128 earlier on Id and pass Id in call to Build_Variant_Record_Equality.
2129
21302023-07-03 Eric Botcazou <ebotcazou@adacore.com>
2131
2132 * exp_ch3.adb (Build_Untagged_Equality): Rename into...
2133 (Build_Untagged_Record_Equality): ...this.
2134 (Expand_Freeze_Record_Type): Adjust to above renaming and invoke
2135 the procedure also for discriminated types without a variant part.
2136
21372023-07-03 Eric Botcazou <ebotcazou@adacore.com>
2138
2139 * sem_util.adb (Has_Inferable_Discriminants): In the case of a
2140 component with a per-object constraint, also return true if the
2141 enclosing object is not of an unchecked union type.
2142 In the default case, remove a useless call to Base_Type.
2143
14bfda60
GA
21442023-06-29 Richard Sandiford <richard.sandiford@arm.com>
2145
2146 * gcc-interface/decl.cc (gt_pch_nx): Remove overloads for Entity_Id.
2147
878a9fee
GA
21482023-06-27 Eric Botcazou <ebotcazou@adacore.com>
2149
2150 * gcc-interface/Makefile.in (LIBIBERTY): Fix condition.
2151 (TOOLS_LIBS): Add @LD_PICFLAG@.
2152
21532023-06-27 Eric Botcazou <ebotcazou@adacore.com>
2154
2155 * gcc-interface/trans.cc (Subprogram_Body_to_gnu): Add guard to the
2156 code turning the type of the RESULT_DECL into a reference type.
2157 (maybe_make_gnu_thunk): Use a more precise guard in the same case.
2158
21592023-06-27 Eric Botcazou <ebotcazou@adacore.com>
2160
2161 * gcc-interface/trans.cc (Case_Statement_to_gnu): Rename boolean
2162 constant and use From_Conditional_Expression flag for its value.
2163
21642023-06-27 Eric Botcazou <ebotcazou@adacore.com>
2165
2166 * debug.adb (d.L): Remove documentation.
2167 * exp_ch4.adb (Expand_N_Case_Expression): In the not-by-copy case,
2168 do not wrap the case statement in an Expression_With_Actions node.
2169 (Expand_N_If_Expression): Do not test
2170 Back_End_Handles_Limited_Types
2171 * gnat1drv.adb (Adjust_Global_Switches): Do not set it.
2172 * opt.ads (Back_End_Handles_Limited_Types): Delete.
2173
21742023-06-27 Eric Botcazou <ebotcazou@adacore.com>
2175
2176 * sem_ch12.adb (Check_Generic_Actuals): Check the component type
2177 of constants and variables of an array type.
2178 (Copy_Generic_Node): Fix bogus handling of iterator
2179 specifications.
2180
21812023-06-27 Claire Dross <dross@adacore.com>
2182
2183 * libgnat/a-textio.ads (Get_Line): Use Relaxed_Initialization on
2184 the Item parameter of Get_Line.
2185
21862023-06-27 Eric Botcazou <ebotcazou@adacore.com>
2187
2188 * exp_ch4.adb (Expand_N_Quantified_Expression): Revert the latest
2189 change as it is subsumed by the machinery in Sem_Ch5.
2190 * sem_ch5.adb (Prepare_Iterator_Loop): Also wrap the loop
2191 statement in a block in the name contains a function call that
2192 returns on the secondary stack.
2193
21942023-06-27 Eric Botcazou <ebotcazou@adacore.com>
2195
2196 * sem_ch12.adb (Scope_Within_Body_Or_Same): New predicate.
2197 (Check_Actual_Type): Take into account packages nested in bodies
2198 to compute the enclosing scope by means of
2199 Scope_Within_Body_Or_Same.
2200
22012023-06-27 Eric Botcazou <ebotcazou@adacore.com>
2202
2203 * sem_ch12.adb (Check_Private_View): Also check the type of
2204 visible discriminants in record and concurrent types.
2205
22062023-06-27 Viljar Indus <indus@adacore.com>
2207
2208 * sprint.adb (Print_Node_Actual): Print homogeneous N_Aggregate
2209 nodes with brackets.
2210
22112023-06-27 Viljar Indus <indus@adacore.com>
2212
2213 * exp_aggr.adb (Expand_N_Aggregate): Ensure that container
2214 aggregate expressions do not get expanded as records but instead
2215 as container aggregates.
2216
bfc6d29f
GA
22172023-06-20 Eric Botcazou <ebotcazou@adacore.com>
2218
2219 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Pass
2220 the NULL_TREE explicitly and test imported_p in lieu of
2221 Is_Imported. <E_Function>: Remove public_flag local variable and
2222 make extern_flag local variable a constant.
2223
22242023-06-20 Yannick Moy <moy@adacore.com>
2225
2226 * sem_res.adb (Resolve_Call): Fix change that replaced test for
2227 quantified expressions by the test for potentially unevaluated
2228 contexts. Both should be performed.
2229
22302023-06-20 Eric Botcazou <ebotcazou@adacore.com>
2231
2232 * exp_ch7.adb (Convert_View): Detect more cases of mismatches for
2233 private types and use Implementation_Base_Type as main criterion.
2234 * gen_il-fields.ads (Opt_Field_Enum): Add
2235 Has_Secondary_Private_View
2236 * gen_il-gen-gen_nodes.adb (N_Expanded_Name): Likewise.
2237 (N_Direct_Name): Likewise.
2238 (N_Op): Likewise.
2239 * sem_ch12.ads (Check_Private_View): Document the usage of second
2240 flag Has_Secondary_Private_View.
2241 * sem_ch12.adb (Get_Associated_Entity): New function to retrieve
2242 the ultimate associated entity, if any.
2243 (Check_Private_View): Implement Has_Secondary_Private_View
2244 support.
2245 (Copy_Generic_Node): Remove specific treatment for Component_Type
2246 of an array type and Designated_Type of an access type. Add
2247 specific treatment for comparison and equality operators, as well
2248 as iterator and loop parameter specifications.
2249 (Instantiate_Type): Implement Has_Secondary_Private_View support.
2250 (Requires_Delayed_Save): Call Get_Associated_Entity.
2251 (Set_Global_Type): Implement Has_Secondary_Private_View support.
2252 * sem_ch6.adb (Conforming_Types): Remove bypass for private views
2253 in instances.
2254 * sem_type.adb (Covers): Return true if Is_Subtype_Of does so.
2255 Remove bypass for private views in instances.
2256 (Specific_Type): Likewise.
2257 * sem_util.adb (Wrong_Type): Likewise.
2258 * sinfo.ads (Has_Secondary_Private_View): Document new flag.
2259
22602023-06-20 Ronan Desplanques <desplanques@adacore.com>
2261
2262 * libgnarl/s-mudido.ads: Remove outdated comment.
2263
22642023-06-20 Eric Botcazou <ebotcazou@adacore.com>
2265
2266 * doc/gnat_ugn/gnat_and_program_execution.rst (Overflows in GNAT)
2267 <Default Settings>: Remove obsolete paragraph about -gnato.
2268 <Implementation Notes>: Replace CHECKED with STRICT.
2269 * gnat_ugn.texi: Regenerate.
2270
22712023-06-20 Yannick Moy <moy@adacore.com>
2272
2273 * sem_util.adb (Check_Result_And_Post_State): Do not warn in cases
2274 where the warning could be spurious.
2275
22762023-06-20 Yannick Moy <moy@adacore.com>
2277
2278 * err_vars.ads (Error_Msg_Code): New variable for error codes.
2279 * errout.adb (Error_Msg_Internal): Display continuation message
2280 when an error code was present.
2281 (Set_Msg_Text): Handle character sequence [] for error codes.
2282 * errout.ads: Document new insertion sequence [].
2283 (Error_Msg_Code): New renaming.
2284 * erroutc.adb (Prescan_Message): Detect presence of error code.
2285 (Set_Msg_Insertion_Code): Handle new insertion sequence [].
2286 * erroutc.ads (Has_Error_Code): New variable for prescan.
2287 (Set_Msg_Insertion_Code): Handle new insertion sequence [].
2288 * contracts.adb (Check_Type_Or_Object_External_Properties):
2289 Replace reference to SPARK RM section by an error code.
2290 * sem_elab.adb (SPARK_Processor): Same.
2291 * sem_prag.adb (Check_Missing_Part_Of): Same.
2292 * sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Same.
2293
22942023-06-20 Piotr Trojanek <trojanek@adacore.com>
2295
2296 * sem_res.adb (Resolve_Entity_Name): Handle Range like First and Last.
2297
22982023-06-20 Jose Ruiz <ruiz@adacore.com>
2299
2300 * doc/gnat_ugn/the_gnat_compilation_model.rst
2301 (Partition-Wide Settings): add this subsection to document
2302 configuration settings made by the Ada run time.
2303 * gnat_ugn.texi: Regenerate.
2304
23052023-06-20 Piotr Trojanek <trojanek@adacore.com>
2306
2307 * sem_res.adb (Resolve_Entity_Name): Ignore implicit loop scopes
2308 introduced by quantified expressions.
2309
23102023-06-20 Bob Duff <duff@adacore.com>
2311
2312 * sem_ch3.adb (Analyze_Object_Declaration): Remove predicate-check
2313 generation if there is an address clause. These are unnecessary,
2314 and cause gigi to crash.
2315 * exp_util.ads (Following_Address_Clause): Remove obsolete "???"
2316 comments. The suggested changes were done long ago.
2317
23182023-06-20 Eric Botcazou <ebotcazou@adacore.com>
2319
2320 * einfo.ads (Has_Private_Ancestor): Fix inaccuracy in description.
2321 * sem_ch12.adb (Check_Actual_Type): Do not switch the view of the
2322 type if it has a private ancestor.
2323
23242023-06-20 Daniel King <dmking@adacore.com>
2325
2326 * libgnat/i-cheri.ads: Add CHERI intrinsics and helper functions.
2327 * libgnat/i-cheri.adb: Likewise
2328
23292023-06-20 Eric Botcazou <ebotcazou@adacore.com>
2330
2331 * exp_ch7.adb (Convert_View): Remove Ind parameter and adjust.
2332 * sem_ch12.adb (Check_Generic_Actuals): Check the type of both in
2333 and in out actual objects, as well as the type of formal parameters
2334 of actual subprograms. Extend the condition under which the views
2335 are swapped to nested generic constructs.
2336 (Save_References_In_Identifier): Call Set_Global_Type on a global
2337 identifier rewritten as an explicit dereference, either directly
2338 or after having first been rewritten as a function call.
2339 (Save_References_In_Operator): Set N2 unconditionally and reuse it.
2340 * sem_ch3.adb (Build_Derived_Record_Type): Add missing comment.
2341 * sem_res.adb (Resolve_Implicit_Dereference): Remove special bypass
2342 for private views in instances.
2343
23442023-06-20 Eric Botcazou <ebotcazou@adacore.com>
2345
2346 * exp_aggr.adb (Convert_To_Assignments): Tweak comment.
2347 (Expand_Array_Aggregate): Do not delay the expansion if the parent
2348 node is a container aggregate.
2349
23502023-06-20 Ghjuvan Lacambre <lacambre@adacore.com>
2351
2352 * errout.adb (Output_Messages): Fix loop termination condition.
2353
23542023-06-20 Eric Botcazou <ebotcazou@adacore.com>
2355
2356 * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler
2357 Switches): Document -gnateH.
2358 * opt.ads (Reverse_Bit_Order_Threshold): New variable.
2359 * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Use its value
2360 if it is nonnegative instead of System_Max_Integer_Size.
2361 * switch-c.adb (Scan_Front_End_Switches): Deal with -gnateH.
2362 * usage.adb (Usage): Print -gnateH.
2363 * gnat_ugn.texi: Regenerate.
2364
23652023-06-20 Yannick Moy <moy@adacore.com>
2366
2367 * libgnat/s-aridou.adb (Scaled_Divide): Add assertions.
2368 * libgnat/s-valuti.adb: Add Loop_Variant.
2369 * libgnat/s-valuti.ads: Add Exceptional_Cases on No_Return
2370 procedure.
2371
23722023-06-20 Marc Poulhiès <poulhies@adacore.com>
2373
2374 * sem_ch3.adb (Build_Derived_Record_Type): Use full view as
2375 Parent_Base if needed.
2376
23772023-06-20 Ghjuvan Lacambre <lacambre@adacore.com>
2378
2379 * lib-load.adb (Load_Unit): Pass Error_Node to calls to Error_Msg.
2380
23812023-06-20 Claire Dross <dross@adacore.com>
2382
2383 * libgnat/a-strfix.ads: Replace Might_Not_Return annotations by
2384 Exceptional_Cases and Always_Terminates aspects.
2385 * libgnat/a-tideio.ads: Idem.
2386 * libgnat/a-tienio.ads: Idem.
2387 * libgnat/a-tifiio.ads: Idem.
2388 * libgnat/a-tiflio.ads: Idem.
2389 * libgnat/a-tiinio.ads: Idem.
2390 * libgnat/a-timoio.ads: Idem.
2391 * libgnat/a-textio.ads: Idem. Also mark functions Name, Col, Line,
2392 and Page as out of SPARK as they might raise Layout_Error.
2393 * libgnarl/a-reatim.ads: Replace Always_Return annotations by
2394 Always_Terminates aspects.
2395 * libgnat/a-chahan.ads: Idem.
2396 * libgnat/a-nbnbig.ads: Idem.
2397 * libgnat/a-nbnbin.ads: Idem.
2398 * libgnat/a-nbnbre.ads: Idem.
2399 * libgnat/a-ngelfu.ads: Idem.
2400 * libgnat/a-nlelfu.ads: Idem.
2401 * libgnat/a-nllefu.ads: Idem.
2402 * libgnat/a-nselfu.ads: Idem.
2403 * libgnat/a-nuelfu.ads: Idem.
2404 * libgnat/a-strbou.ads: Idem.
2405 * libgnat/a-strmap.ads: Idem.
2406 * libgnat/a-strsea.ads: Idem.
2407 * libgnat/a-strsup.ads: Idem.
2408 * libgnat/a-strunb.ads: Idem.
2409 * libgnat/a-strunb__shared.ads: Idem.
2410 * libgnat/g-souinf.ads: Idem.
2411 * libgnat/i-c.ads: Idem.
2412 * libgnat/interfac.ads: Idem.
2413 * libgnat/interfac__2020.ads: Idem.
2414 * libgnat/s-aridou.adb: Idem.
2415 * libgnat/s-arit32.adb: Idem.
2416 * libgnat/s-atacco.ads: Idem.
2417 * libgnat/s-spcuop.ads: Idem.
2418 * libgnat/s-stoele.ads: Idem.
2419 * libgnat/s-vaispe.ads: Idem.
2420 * libgnat/s-vauspe.ads: Idem.
2421 * libgnat/i-cstrin.ads: Add a precondition instead of a
2422 Might_Not_Return annotation.
2423
24242023-06-20 Javier Miranda <miranda@adacore.com>
2425
2426 * sem_ch4.adb
2427 (Try_Selected_Component_In_Instance): New subprogram; factorizes
2428 existing code.
2429 (Find_Component_In_Instance) Moved inside the new subprogram.
2430 (Analyze_Selected_Component): Invoke the new subprogram before
2431 trying the Object.Operation notation.
2432
24332023-06-20 Ronan Desplanques <desplanques@adacore.com>
2434
2435 * libgnat/a-calfor.adb (Time_Of): Fix handling of special case.
2436
7ff79341
GA
24372023-06-15 Marek Polacek <polacek@redhat.com>
2438
2439 * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove NO_PIE_CFLAGS. Add
2440 PICFLAG. Use PICFLAG when building ada/b_gnat1.o and ada/b_gnatb.o.
2441 * gcc-interface/Makefile.in: Use pic/libiberty.a if PICFLAG is set.
2442 Remove NO_PIE_FLAG.
2443
24442023-06-15 Marc Poulhiès <poulhies@adacore.com>
2445
2446 * vxworks7-cert-rtp-base-link.spec: Removed.
2447 * vxworks7-cert-rtp-base-link__ppc64.spec: Removed.
2448 * vxworks7-cert-rtp-base-link__x86.spec: Removed.
2449 * vxworks7-cert-rtp-base-link__x86_64.spec: Removed.
2450 * vxworks7-cert-rtp-link.spec: Removed.
2451 * vxworks7-cert-rtp-link__ppcXX.spec: Removed.
2452
24532023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2454
2455 * gcc-interface/utils2.cc (build_binary_op) <MODIFY_EXPR>: Do not
2456 remove a VIEW_CONVERT_EXPR on the LHS if it is also on the RHS.
2457
24582023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2459
2460 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Restrict
2461 the special handling of temporaries created for return values and
2462 subject to a renaming to the top level.
2463
24642023-06-15 Ronan Desplanques <desplanques@adacore.com>
2465
2466 * doc/gnat_ugn/about_this_guide.rst: Fix typo. Uniformize punctuation.
2467 * doc/gnat_ugn/the_gnat_compilation_model.rst: Uniformize punctuation.
2468 Fix capitalization. Fix indentation of code block. Fix RST formatting
2469 syntax errors.
2470 * gnat_ugn.texi: Regenerate.
2471
24722023-06-15 Yannick Moy <moy@adacore.com>
2473
2474 * sem_attr.adb (Analyze_Attribute): Reject case of Loop_Entry
2475 inside the prefix of Loop_Entry, as per SPARK RM 5.5.3.1(4,8).
2476
24772023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2478
2479 * exp_ch3.adb (Make_Allocator_For_Return): Rewrite the logic that
2480 determines the type used for the allocation and add assertions.
2481 * exp_util.adb (Has_Tag_Of_Type): Also return true for extension
2482 aggregates.
2483
24842023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2485
2486 * sinfo.ads (Iterator_Filter): Document field.
2487 * sem_ch5.adb (Analyze_Iterator_Specification): Move comment around.
2488 (Analyze_Loop_Parameter_Specification): Only preanalyze the iterator
2489 filter, if any.
2490 * exp_ch5.adb (Expand_N_Loop_Statement): Analyze the new list built
2491 when an iterator filter is present.
2492
24932023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2494
2495 * exp_util.adb (Find_Hook_Context): Revert latest change.
2496
24972023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2498
2499 * exp_ch3.adb (Make_Allocator_For_Return): Deal again specifically
2500 with an aggregate returned through an object of a class-wide type.
2501
25022023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2503
2504 * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Do not insert
2505 an always empty list. Remove unused parameter Isc.
2506 (Expand_Iterator_Loop): Adjust call to above procedure.
2507
25082023-06-15 Ronan Desplanques <desplanques@adacore.com>
2509
2510 * targparm.adb: Allow pragma Style_Checks in some forms.
2511 * targparm.ads: Document new pragma permission.
2512
25132023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2514
2515 * exp_util.ads (Within_Case_Or_If_Expression): Adjust description.
2516 * exp_util.adb (Find_Hook_Context): Stop the search for the topmost
2517 conditional expression, if within one, at contexts where temporaries
2518 may be contained.
2519 (Within_Case_Or_If_Expression): Return false upon first encoutering
2520 contexts where temporaries may be contained.
2521
25222023-06-15 Johannes Kliemann <kliemann@adacore.com>
2523
2524 * libgnarl/s-osinte__qnx.adb: Adjust priority conversion function.
2525 * libgnat/system-qnx-arm.ads: Adjust priority range and default
2526 priority.
2527
25282023-06-15 Ronan Desplanques <desplanques@adacore.com>
2529
2530 * targparm.ads: Remove references to front-end-based exceptions. Fix
2531 thinko.
2532
25332023-06-15 Piotr Trojanek <trojanek@adacore.com>
2534
2535 * contracts.adb (Add_Contract_Item): Add pragma Always_Terminates to
2536 package contract.
2537 * sem_prag.adb (Analyze_Pragma): Accept pragma Always_Terminates on
2538 packages and generic packages, but only when it has no arguments.
2539
25402023-06-15 Piotr Trojanek <trojanek@adacore.com>
2541
2542 * sem_prag.adb (Analyze_Pragma): Accept pragma Always_Terminates when
2543 it applies to an entry.
2544
25452023-06-15 Piotr Trojanek <trojanek@adacore.com>
2546
2547 * sem_prag.adb (Analyze_Pragma): Reject pragma Always_Terminates when
2548 it applies to a function or generic function.
2549
25502023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2551
2552 * sem_ch4.adb (Analyze_Call): Adjust the test to detect the presence
2553 of an incomplete view of a type on a function call.
2554
25552023-06-15 Ronan Desplanques <desplanques@adacore.com>
2556
2557 * ttypes.ads: Remove reference to Ttypef in comment. Fix typo in
2558 comment.
2559
25602023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2561
2562 * get_targ.ads (Get_Max_Unaligned_Field): Delete.
2563 * ada_get_targ.adb (Get_Max_Unaligned_Field): Likewise.
2564 * get_targ.adb (Get_Max_Unaligned_Field): Likewise.
2565 * set_targ.ads (Max_Unaligned_Field): Adjust comment.
2566 * set_targ.adb: Set Max_Unaligned_Field to 1 during elaboration.
2567 * ttypes.ads (Max_Unaligned_Field): Delete.
2568
25692023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2570
2571 * sem_type.adb (Disambiguate): Fix pasto in the implementation of
2572 the RM 8.4(10) clause for operators.
2573
25742023-06-15 Piotr Trojanek <trojanek@adacore.com>
2575
2576 * aspects.adb
2577 (Base_Aspect): Fix layout.
2578 * aspects.ads
2579 (Aspect_Argument): Expression for Always_Terminates is optional.
2580 * sem_prag.adb
2581 (Analyze_Always_Terminates_In_Decl_Part): Only analyze expression when
2582 pragma argument is present.
2583 (Analyze_Pragma): Argument for Always_Terminates is optional; fix
2584 whitespace for Async_Readers.
2585
25862023-06-15 Javier Miranda <miranda@adacore.com>
2587
2588 * sem_util.adb
2589 (Is_CPP_Constructor_Call): Add missing support for calls to
2590 functions returning a private type.
2591
25922023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2593
2594 * exp_util.ads (Build_Transient_Object_Statements): Remove obsolete
2595 references to array and record aggregates in documentation.
2596
25972023-06-15 Eric Botcazou <ebotcazou@adacore.com>
2598
2599 * sem_ch13.adb (Analyze_Aspect_Specifications): Add missing items
2600 in the list of aspects handled by means of Insert_Pragma.
2601 <Aspect_Linker_Section>: Remove obsolete code. Do not delay the
2602 processing of the aspect if the entity is already frozen.
2603
26042023-06-15 Piotr Trojanek <trojanek@adacore.com>
2605
2606 * sem_aggr.adb
2607 (Resolve_Array_Aggregate): Simplify comment.
2608 (Resolve_Iterated_Component_Association): Tune comment; change variable
2609 to constant.
2610
532fb120
GA
26112023-06-13 Piotr Trojanek <trojanek@adacore.com>
2612
2613 * sem_aggr.adb (Resolve_Iterated_Component_Association): Simply resolve
2614 the expression.
2615
26162023-06-13 Bob Duff <duff@adacore.com>
2617
2618 * exp_ch4.adb
2619 (Expand_N_Quantified_Expression): Detect the secondary-stack
2620 case, and find the innermost scope where we should mark/release,
2621 and Set_Uses_Sec_Stack on that. Skip intermediate blocks and loops
2622 that are part of expansion.
2623
26242023-06-13 Piotr Trojanek <trojanek@adacore.com>
2625
2626 * sem_util.adb (Is_Repeatedly_Evaluated): Recognize iterated component
2627 association as repeatedly evaluated.
2628
26292023-06-13 Piotr Trojanek <trojanek@adacore.com>
2630
2631 * sem_util.adb (Is_Potentially_Unevaluated): Recognize iterated
2632 component association as potentially unevaluated.
2633
26342023-06-13 Piotr Trojanek <trojanek@adacore.com>
2635
2636 * sem_res.adb (Resolve_Call): Replace early call to
2637 In_Quantified_Expression with a call to Is_Potentially_Unevaluated that
2638 was only done when Full_Analysis is true.
2639
26402023-06-13 Piotr Trojanek <trojanek@adacore.com>
2641
2642 * aspects.ads (Aspect_Id): Add new aspect.
2643 (Implementation_Defined_Aspect): New aspect is
2644 implementation-defined.
2645 (Aspect_Argument): New aspect has an expression argument.
2646 (Is_Representation_Aspect): New aspect is not a representation
2647 aspect.
2648 (Aspect_Names): Link new aspect identifier with a name.
2649 (Aspect_Delay): New aspect is never delayed.
2650 * contracts.adb (Expand_Subprogram_Contract): Mention new aspect
2651 in comment.
2652 (Add_Contract_Item): Attach pragma corresponding to the new aspect
2653 to contract items.
2654 (Analyze_Entry_Or_Subprogram_Contract): Analyze pragma
2655 corresponding to the new aspect that appears with subprogram spec.
2656 (Analyze_Subprogram_Body_Stub_Contract): Expand pragma
2657 corresponding to the new aspect.
2658 * contracts.ads
2659 (Add_Contract_Item, Analyze_Entry_Or_Subprogram_Contract)
2660 (Analyze_Entry_Or_Subprogram_Body_Contract)
2661 (Analyze_Subprogram_Body_Stub_Contract): Mention new aspect in
2662 comment.
2663 * einfo-utils.adb (Get_Pragma): Return pragma attached to
2664 contract.
2665 * einfo-utils.ads (Get_Pragma): Mention new contract in comment.
2666 * exp_prag.adb (Expand_Pragma_Always_Terminates): Placeholder for
2667 possibly expanding new aspect.
2668 * exp_prag.ads (Expand_Pragma_Always_Terminates): Dedicated
2669 routine for expansion of the new aspect.
2670 * inline.adb (Remove_Aspects_And_Pragmas): Remove aspect from
2671 inlined bodies.
2672 * par-prag.adb (Prag): Postpone checking of the pragma until
2673 analysis.
2674 * sem_ch12.adb: Mention new aspect in explanation of handling
2675 contracts on generic units.
2676 * sem_ch13.adb (Analyze_Aspect_Specifications): Convert new aspect
2677 into a corresponding pragma.
2678 (Check_Aspect_At_Freeze_Point): Don't expect new aspect.
2679 * sem_prag.adb (Analyze_Always_Terminates_In_Decl_Part): Analyze
2680 pragma corresponding to the new aspect.
2681 (Analyze_Pragma): Handle pragma corresponding to the new aspect.
2682 (Is_Non_Significant_Pragma_Reference): Handle references appearing
2683 within new aspect.
2684 * sem_prag.ads (Aspect_Specifying_Pragma): New aspect can be
2685 emulated with a pragma.
2686 (Assertion_Expression_Pragma): New aspect has an assertion
2687 expression.
2688 (Pragma_Significant_To_Subprograms): New aspect is significant to
2689 subprograms.
2690 (Analyze_Always_Terminates_In_Decl_Part): Add spec for routine
2691 that analyses new aspect.
2692 (Find_Related_Declaration_Or_Body): Mention new aspect in comment.
2693 * sem_util.adb (Is_Subprogram_Contract_Annotation): New aspect is
2694 a subprogram contract annotation.
2695 * sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new
2696 aspect in comment.
2697 * sinfo.ads (Is_Generic_Contract_Pragma): New pragma is a generic
2698 contract.
2699 (Contract): Explain attaching new pragma to subprogram contract.
2700 * snames.ads-tmpl (Name_Always_Terminates): New name for the new
2701 contract.
2702 (Pragma_Always_Terminates): New pragma identifier.
2703
27042023-06-13 Piotr Trojanek <trojanek@adacore.com>
2705
2706 * sem_elab.adb (Check_Overriding_Primitive): Prevent Corresponding_Body
2707 to be called with entity of an abstract subprogram.
2708
27092023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2710
2711 * sem_ch12.adb (Save_References_In_Identifier): In the case where
2712 the identifier has been turned into a function call by analysis,
2713 call Set_Global_Type on the entity if it is global.
2714
27152023-06-13 Marc Poulhiès <poulhies@adacore.com>
2716
2717 * sem_aggr.adb (Resolve_Iterated_Component_Association): Call
2718 Preanalyze_And_Resolve instead of Resolve_Aggr_Expr except for
2719 aggregate.
2720 Co-authored-by: Ed Schonberg <schonberg@adacore.com>
2721
27222023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2723
2724 * contracts.adb (Contract_Error): New exception.
2725 (Add_Contract_Item): Raise Contract_Error instead of Program_Error.
2726 (Add_Generic_Contract_Pragma): Deal with Contract_Error.
2727
27282023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2729
2730 * sem_attr.adb (Eval_Attribute): Add more exceptions to the early
2731 return for a prefix which is a nonfrozen generic actual type.
2732 * sem_ch12.adb (Copy_Generic_Node): Also check private views in the
2733 case of an entity name or operator analyzed as a function call.
2734 (Set_Global_Type): Make it a child of Save_Global_References.
2735 (Save_References_In_Operator): In the case where the operator has
2736 been turned into a function call, call Set_Global_Type on the entity
2737 if it is global.
2738
27392023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2740
2741 * contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): For a
2742 subprogram body that has no contracts and does not come from source,
2743 make sure that contracts on its corresponding spec are analyzed, if
2744 any, before expanding them.
2745
27462023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2747
2748 * gen_il-fields.ads (Opt_Field_Enum): Add No_Finalize_Actions and
2749 remove No_Side_Effect_Removal.
2750 * gen_il-gen-gen_nodes.adb (N_Function_Call): Remove semantic flag
2751 No_Side_Effect_Removal
2752 (N_Assignment_Statement): Add semantic flag No_Finalize_Actions.
2753 * sinfo.ads (No_Ctrl_Actions): Adjust comment.
2754 (No_Finalize_Actions): New flag on assignment statements.
2755 (No_Side_Effect_Removal): Delete.
2756 * exp_aggr.adb (Build_Record_Aggr_Code): Remove obsolete comment and
2757 Ancestor_Is_Expression variable. In the case of an extension, do
2758 not generate a call to Adjust manually, call Set_No_Finalize_Actions
2759 instead. Do not set the tags, replace call to Make_Unsuppress_Block
2760 by Make_Suppress_Block and remove useless assertions.
2761 In the general case, call Initialize_Component.
2762 (Initialize_Controlled_Component): Delete.
2763 (Initialize_Simple_Component): Delete.
2764 (Initialize_Component): Do the low-level processing, but do not
2765 generate a call to Adjust manually, call Set_No_Finalize_Actions.
2766 (Process_Transient_Component): Delete.
2767 (Process_Transient_Component_Completion): Likewise.
2768 * exp_ch5.adb (Expand_Assign_Array): Deal with No_Finalize_Actions.
2769 (Expand_Assign_Array_Loop): Likewise.
2770 (Expand_N_Assignment_Statement): Likewise.
2771 (Make_Tag_Ctrl_Assignment): Likewise.
2772 * exp_util.adb (Remove_Side_Effects): Do not test the
2773 No_Side_Effect_Removal flag.
2774 * sem_prag.adb (Process_Suppress_Unsuppress): Give the warning in
2775 SPARK mode only for pragma Suppress.
2776 * tbuild.ads (Make_Suppress_Block): New declaration.
2777 (Make_Unsuppress_Block): Adjust comment.
2778 * tbuild.adb (Make_Suppress_Block): New procedure.
2779 (Make_Unsuppress_Block): Unsuppress instead of suppressing.
2780
27812023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2782
2783 * sem_ch5.adb (Analyze_Assignment): Turn Rhs into a constant and
2784 remove calls to the following subprograms.
2785 (Transform_BIP_Assignment): Delete.
2786 (Should_Transform_BIP_Assignment): Likewise.
2787
27882023-06-13 Piotr Trojanek <trojanek@adacore.com>
2789
2790 * sem_util.ads (Is_Inherited_Operation_For_Type): Remove spec.
2791 * sem_util.adb (Is_Inherited_Operation_For_Type): Remove body.
2792
27932023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2794
2795 * exp_aggr.adb (Build_Record_Aggr_Code): Add new variable Ancestor_Q
2796 to store the result of Unqualify on Ancestor. Remove the dead call
2797 to Generate_Finalization_Actions in the case of another aggregate as
2798 ancestor part. Remove the redundant setting of Assignment_OK. Use
2799 Init_Typ in lieu of Etype (Ancestor) more consistently.
2800
28012023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2802
2803 * exp_aggr.adb (Build_Record_Aggr_Code): In the case of an extension
2804 aggregate of a limited type whose ancestor part is an aggregate, do
2805 not skip the final code assigning the tag of the extension.
2806
28072023-06-13 Yannick Moy <moy@adacore.com>
2808
2809 * ghost.adb (Check_Ghost_Context): Allow absence of Ghost_Id
2810 for attribute. Update error message to mention Ghost_Predicate.
2811 (Is_Ghost_Attribute_Reference): New query.
2812 * ghost.ads (Is_Ghost_Attribute_Reference): New query.
2813 * sem_attr.adb (Resolve_Attribute): Check ghost context for ghost
2814 attributes.
2815
28162023-06-13 Daniel King <dmking@adacore.com>
2817
2818 * libgnat/s-stoele.ads: Add No_Elaboration_Code_All pragma.
2819
28202023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2821
2822 * exp_util.ads (Make_Tag_Assignment_From_Type): Declare.
2823 * exp_util.adb (Make_Tag_Assignment_From_Type): New function.
2824 * exp_aggr.adb (Build_Record_Aggr_Code): Call the above function.
2825 (Initialize_Simple_Component): Likewise.
2826 * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Likewise.
2827 (Build_Record_Init_Proc.Build_Init_Procedure ): Likewise.
2828 (Make_Tag_Assignment): Likewise. Rename local variable and call
2829 Unqualify to go through qualified expressions.
2830 * exp_ch4.adb (Expand_Allocator_Expression): Likewise.
2831
28322023-06-13 Yannick Moy <moy@adacore.com>
2833
2834 * libgnat/a-strsup.ads: Change predicate aspect.
2835 * sem_ch13.adb (Add_Predicate): Fix for first predicate.
2836
28372023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2838
2839 * exp_aggr.adb (Initialize_Component): Perform immediate expansion
2840 of the initialization expression if it is a conditional expression
2841 and the component type is controlled.
2842
28432023-06-13 Eric Botcazou <ebotcazou@adacore.com>
2844
2845 * exp_aggr.adb (Initialize_Component): New procedure factored out
2846 from the processing of array and record aggregates.
2847 (Initialize_Controlled_Component): Likewise.
2848 (Initialize_Simple_Component): Likewise.
2849 (Build_Array_Aggr_Code.Gen_Assign): Remove In_Loop parameter.
2850 Call Initialize_Component to initialize the component.
2851 (Initialize_Array_Component): Delete.
2852 (Initialize_Ctrl_Array_Component): Likewise.
2853 (Build_Array_Aggr_Code): Adjust calls to Gen_Assign.
2854 (Build_Record_Aggr_Code): Call Initialize_Simple_Component or
2855 Initialize_Component to initialize the component.
2856 (Initialize_Ctrl_Record_Component): Delete.
2857 (Initialize_Record_Component): Likewise.
2858
28592023-06-13 Piotr Trojanek <trojanek@adacore.com>
2860
2861 * exp_ch11.adb (Expand_N_Raise_Statement): Expansion of raise statements
2862 never happens in GNATprove mode.
2863
28642023-06-13 Piotr Trojanek <trojanek@adacore.com>
2865
2866 * exp_ch11.adb (Find_Local_Handler): Replace guard against other
2867 constructs appearing in the list of exception handlers with iteration
2868 using First_Non_Pragma/Next_Non_Pragma.
2869
28702023-06-13 Piotr Trojanek <trojanek@adacore.com>
2871
2872 * exp_ch11.ads (Find_Local_Handler): Fix typo in comment.
2873 * exp_ch11.adb (Find_Local_Handler): Remove redundant check for the
2874 Exception_Handler list being present; use membership test to eliminate
2875 local object LCN; fold nested IF statements. Remove useless ELSIF
2876 condition.
2877
28782023-06-13 Piotr Trojanek <trojanek@adacore.com>
2879
2880 * sem_util.adb (Check_Function_Writable_Actuals): Tune style; use
2881 subtype name to detect membership test nodes.
2882
28832023-06-13 Piotr Trojanek <trojanek@adacore.com>
2884
2885 * exp_disp.adb (Make_Disp_Asynchronous_Select_Spec): Use a single call
2886 to New_List.
2887
28882023-06-13 Yannick Moy <moy@adacore.com>
2889
2890 * doc/gnat_rm/implementation_defined_aspects.rst: Document new
2891 aspect.
2892 * doc/gnat_rm/implementation_defined_pragmas.rst: Whitespace.
2893 * aspects.adb (Init_Canonical_Aspect): Set it to Predicate.
2894 * aspects.ads: Set global constants for new aspect.
2895 * einfo.ads: Describe new flag related to new aspect.
2896 * exp_ch6.adb (Can_Fold_Predicate_Call): Do not fold new aspect.
2897 * exp_util.adb (Make_Predicate_Check): Add comment.
2898 * gen_il-fields.ads: Add new flag.
2899 * gen_il-gen-gen_entities.adb: Add new flag.
2900 * ghost.adb (Is_OK_Ghost_Context): Ghost predicate is an OK
2901 ghost context.
2902 (Mark_Ghost_Pragma): Add overloading with ghost mode parameter.
2903 * ghost.ads (Mark_Ghost_Pragma): Add overloading with ghpst mode
2904 parameter.
2905 (Name_To_Ghost_Mode): Make function public.
2906 * sem_aggr.adb: Issue error for violation of valid use.
2907 * sem_case.adb: Issue error for violation of valid use.
2908 * sem_ch13.adb: Adapt for new aspect.
2909 * sem_ch3.adb (Analyze_Full_Type_Declaration): Remove dead code
2910 which was trying to propagate Has_Predicates flag in the wrong
2911 direction (from derived to parent type).
2912 (Analyze_Number_Declaration): Issue error for violation of valid
2913 use.
2914 (Build_Derived_Type): Cleanup inheritance of predicate flags from
2915 parent to derived type.
2916 (Build_Predicate_Function): Only add a predicate check when it
2917 is not ignored as Ghost code.
2918 * sem_ch4.adb (Analyze_Membership_Op): Issue an error for use of
2919 a subtype with a ghost predicate as name in a membership test.
2920 * sem_ch5.adb (Check_Predicate_Use): Issue error for violation of
2921 valid use.
2922 * sem_eval.adb: Adapt code for Dynamic_Predicate to account for
2923 Ghost_Predicate too.
2924 * sem_prag.adb (Analyze_Pragma): Make pragma ghost or not.
2925 * sem_util.adb (Bad_Predicated_Subtype_Use): Adapt to new aspect.
2926 (Inherit_Predicate_Flags): Add inheritance of flag. Add parameter
2927 to apply to derived types.
2928 * sem_util.ads (Inherit_Predicate_Flags): Change signature.
2929 * snames.ads-tmpl: Add new aspect name.
2930 * gnat_rm.texi: Regenerate.
2931
29322023-06-13 Piotr Trojanek <trojanek@adacore.com>
2933
2934 * exp_ch3.adb (Make_Controlling_Function_Wrappers): Remove early
2935 decoration.
2936
df2762ac
GA
29372023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2938
2939 * gcc-interface/trans.cc (get_storage_model_access): Also strip any
2940 type conversion in the node when unwinding the components.
2941
29422023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2943
2944 * gcc-interface/trans.cc (node_is_component): Remove parentheses.
2945 (node_is_type_conversion): New predicate.
2946 (get_atomic_access): Use it.
2947 (get_storage_model_access): Likewise and look into the parent to
2948 find a component if it returns true.
2949 (present_in_lhs_or_actual_p): Likewise.
2950
29512023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2952
2953 * gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Check that
2954 the storage model has Copy_From before instantiating loads for it.
2955 <Attr_Length>: Likewise.
2956 <Attr_Bit_Position>: Likewise.
2957 (gnat_to_gnu) <N_Indexed_Component>: Likewise.
2958 <N_Slice>: Likewise.
2959
29602023-05-30 Marc Poulhiès <poulhies@adacore.com>
2961
2962 * gcc-interface/trans.cc (Attribute_to_gnu): Also strip conversion
2963 in case of DECL.
2964
29652023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2966
2967 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a
2968 local variable for the GNAT index type.
2969 <E_Array_Subtype>: Likewise. Call Is_Null_Range on the bounds and
2970 force the zero on TYPE_SIZE and TYPE_SIZE_UNIT if it returns true.
2971
29722023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2973
2974 * gcc-interface/trans.cc (gnat_to_gnu) <N_Op_Mod>: Test the
2975 precision of the operation rather than that of the result type.
2976
29772023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2978
2979 * gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Replace
2980 integer_zero_node with null_pointer_node for pointer types.
2981 * gcc-interface/trans.cc (gnat_gimplify_expr) <NULL_EXPR>: Likewise.
2982 * gcc-interface/utils.cc (maybe_pad_type): Do not attempt to make a
2983 packable type from a fat pointer type.
2984 * gcc-interface/utils2.cc (build_atomic_load): Use a local variable.
2985 (build_atomic_store): Likewise.
2986
29872023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2988
2989 * gcc-interface/misc.cc (internal_error_function): Be prepared for
2990 an input_location set to UNKNOWN_LOCATION.
2991
29922023-05-30 Eric Botcazou <ebotcazou@adacore.com>
2993
2994 * gcc-interface/trans.cc (Attribute_to_gnu) <Attr_Size>: Tweak.
2995 (gnat_to_gnu) <N_Assignment_Statement>: Declare a local variable.
2996 For a target with a storage model, use the Actual_Designated_Subtype
2997 to compute the size if it is present.
2998
29992023-05-30 Eric Botcazou <ebotcazou@adacore.com>
3000
3001 * gcc-interface/trans.cc (Call_to_gnu): Remove code implementing the
3002 by-copy semantics for actuals with nonnative storage models.
3003 (gnat_to_gnu) <N_Assignment_Statement>: Remove code instantiating a
3004 temporary for assignments between nonnative storage models.
3005
30062023-05-30 Eric Botcazou <ebotcazou@adacore.com>
3007
3008 * gcc-interface/decl.cc (range_cannot_be_superflat): Return true
3009 immediately if Cannot_Be_Superflat is set.
3010 * gcc-interface/misc.cc (gnat_post_options): Do not override the
3011 -Wstringop-overflow setting.
3012
30132023-05-30 Eric Botcazou <ebotcazou@adacore.com>
3014
3015 * gcc-interface/Make-lang.in (ADA_CFLAGS): Move up.
3016 (ALL_ADAFLAGS): Add $(NO_PIE_CFLAGS).
3017 (ada/mdll.o): Remove.
3018 (ada/mdll-fil.o): Likewise.
3019 (ada/mdll-utl.o): Likewise.
3020
30212023-05-30 Marc Poulhiès <poulhies@adacore.com>
3022
3023 * gcc-interface/trans.cc (get_storage_model_access): Don't require
3024 storage model access for dereference used as lvalue or renamings.
3025
30262023-05-30 Eric Botcazou <ebotcazou@adacore.com>
3027
3028 * exp_aggr.adb (Build_Array_Aggr_Code): Move the declaration of Typ
3029 to the beginning.
3030 (Initialize_Array_Component): Test the unqualified version of the
3031 expression for the nested array case.
3032 (Initialize_Ctrl_Array_Component): Do not duplicate the expression
3033 here. Do the pattern matching of the unqualified version of it.
3034 (Gen_Assign): Call Unqualify to compute Expr_Q and use Expr_Q in
3035 subsequent pattern matching.
3036 (Initialize_Ctrl_Record_Component): Do the pattern matching of the
3037 unqualified version of the aggregate.
3038 (Build_Record_Aggr_Code): Call Unqualify.
3039 (Convert_Aggr_In_Assignment): Likewise.
3040 (Convert_Aggr_In_Object_Decl): Likewise.
3041 (Component_OK_For_Backend): Likewise.
3042 (Is_Delayed_Aggregate): Likewise.
3043
30442023-05-30 Eric Botcazou <ebotcazou@adacore.com>
3045
3046 * exp_aggr.adb (Build_Array_Aggr_Code.Get_Assoc_Expr): Duplicate the
3047 expression here instead of...
3048 (Build_Array_Aggr_Code): ...here.
3049
30502023-05-30 Eric Botcazou <ebotcazou@adacore.com>
3051
3052 * freeze.adb (Check_Large_Modular_Array): Fix head comment, use
3053 Standard_Long_Long_Integer_Size directly and generate a reference
3054 just before the raise statement if the Etype of the object is an
3055 itype declared in an open scope.
3056
30572023-05-30 Eric Botcazou <ebotcazou@adacore.com>
3058
3059 * exp_ch7.adb (Find_Enclosing_Transient_Scope): Return the index in
3060 the scope table instead of the scope's entity.
3061 (Establish_Transient_Scope): If an enclosing scope already exists,
3062 do not set the Uses_Sec_Stack flag on it if the node to be wrapped
3063 is a return statement which requires secondary stack management.
3064
30652023-05-30 Joel Brobecker <brobecker@adacore.com>
3066
3067 * Makefile.rtl: Use libgnat/s-tsmona__linux.adb on
3068 aarch64-linux. Link libgnat with -ldl, as the use of
3069 s-tsmona__linux.adb requires it.
3070
30712023-05-30 Piotr Trojanek <trojanek@adacore.com>
3072
3073 * exp_ch3.adb
3074 (Build_Access_Subprogram_Wrapper_Body): Build wrapper body if requested
3075 by routine that builds wrapper spec.
3076 * sem_ch3.adb
3077 (Analyze_Full_Type_Declaration): Only build wrapper when expander is
3078 active.
3079 (Build_Access_Subprogram_Wrapper):
3080 Remove special-case for GNATprove.
3081
30822023-05-30 Ronan Desplanques <desplanques@adacore.com>
3083
3084 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix minor issues.
3085 * doc/gnat_ugn/the_gnat_compilation_model.rst: Fix minor issues.
3086 * gnat_ugn.texi: Regenerate.
3087
30882023-05-30 Johannes Kliemann <kliemann@adacore.com>
3089
3090 * libgnat/s-parame.adb: Check that Default_Stack_Size >=
3091 Minimum_Stack_size.
3092 * libgnat/s-parame__rtems.adb: Ditto.
3093 * libgnat/s-parame__vxworks.adb: Check that Default_Stack_Size >=
3094 Minimum_Stack_size and use the proper Minimum_Stack_Size if
3095 Stack_Check_Limits is enabled.
3096
30972023-05-30 Eric Botcazou <ebotcazou@adacore.com>
3098
3099 * sem_res.adb (Resolve_Call): Restrict previous change to calls that
3100 return on the same stack as the enclosing function. Tidy up.
3101
31022023-05-30 Eric Botcazou <ebotcazou@adacore.com>
3103
3104 * libgnat/a-cidlli.adb (Put_Image): Simplify.
3105 * libgnat/a-coinve.adb (Put_Image): Likewise.
3106
31072023-05-30 Eric Botcazou <ebotcazou@adacore.com>
3108
3109 * exp_util.adb (Build_DIC_Procedure_Body.Add_Own_DIC): When inside
3110 a generic unit, preanalyze the expression directly.
3111 (Build_Invariant_Procedure_Body.Add_Own_Invariants): Likewise.
3112
31132023-05-30 Cedric Landet <landet@adacore.com>
3114
3115 * init.c: Replace FIXME by ???
3116
b4c15a14
GA
31172023-05-29 Cedric Landet <landet@adacore.com>
3118
3119 * s-oscons-tmplt.c: move the definition of sigset out of the
3120 HAVE_SOCKETS bloc.
3121
31222023-05-29 Cedric Landet <landet@adacore.com>
3123
3124 * Makefile.rtl: Move g-spogwa$(objext) from GNATRTL_NONTASKING_OBJS
3125 to GNATRTL_SOCKETS_OBJS
3126
31272023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3128
3129 * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec in
3130 both cases to copy the spec of the subprogram.
3131
31322023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3133
3134 * exp_ch7.adb (Establish_Transient_Scope.Find_Transient_Context):
3135 Bail out for a simple return statement only if the transient scope
3136 and the function both require secondary stack management, or else
3137 if the function is a thunk.
3138 * sem_res.adb (Resolve_Call): Do not create a transient scope when
3139 the call is the expression of a simple return statement.
3140
31412023-05-29 Patrick Bernardi <bernardi@adacore.com>
3142
3143 * libgnat/a-excach.adb (Call_Chain): Replace
3144 Code_Address_For_AAA/ZZZ functions with AAA/ZZZ'Code_Address.
3145 * libgnat/a-except.adb (Code_Address_For_AAA/ZZZ): Delete.
3146 (AAA/ZZZ): New null procedures.
3147 * libgnat/g-debpoo.adb
3148 (Code_Address_For_Allocate_End): Delete.
3149 (Code_Address_For_Deallocate_End): Delete.
3150 (Code_Address_For_Dereference_End): Delete.
3151 (Allocate): Remove label and use Code_Address attribute to
3152 determine subprogram addresses.
3153 (Dellocate): Likewise.
3154 (Dereference): Likewise.
3155 (Allocate_End): Convert to null procedure.
3156 (Dellocate_End): Likewise.
3157 (Dereference_End): Likewise.
3158
31592023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3160
3161 * exp_ch6.adb (Expand_Simple_Function_Return): Call Insert_Actions
3162 consistently when rewriting the expression.
3163
31642023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3165
3166 * exp_util.adb (Is_Finalizable_Transient.Is_Indexed_Container):
3167 New predicate to detect a temporary created to hold the result of
3168 a constant indexing on a container.
3169 (Is_Finalizable_Transient.Is_Iterated_Container): Adjust a couple
3170 of obsolete comments.
3171 (Is_Finalizable_Transient): Return False if Is_Indexed_Container
3172 returns True on the object.
3173
31742023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3175
3176 * sem_res.adb (Has_Applicable_User_Defined_Literal): Make it clear
3177 that the predicate also checks the node itself.
3178 (Try_User_Defined_Literal): Move current implementation to...
3179 Deal only with literals, named numbers and conditional expressions
3180 whose dependent expressions are literals or named numbers.
3181 (Try_User_Defined_Literal_For_Operator): ...this. Remove multiple
3182 return False statements and put a single one at the end.
3183 (Resolve): Call Try_User_Defined_Literal instead of directly
3184 Has_Applicable_User_Defined_Literal for all nodes. Call
3185 Try_User_Defined_Literal_For_Operator for operator nodes.
3186
31872023-05-29 Piotr Trojanek <trojanek@adacore.com>
3188
3189 * sem_res.adb (Invoked_With_Different_Arguments): Use Get_Called_Entity,
3190 which properly deals with calls via an access-to-subprogram; fix
3191 inconsistent use of a Call object declared in enclosing subprogram.
3192
31932023-05-29 Piotr Trojanek <trojanek@adacore.com>
3194
3195 * contracts.adb
3196 (Add_Pre_Post_Condition): Attach pre/post aspects to E_Subprogram_Type
3197 entity.
3198 (Analyze_Entry_Or_Subprogram_Contract): Adapt to use full type
3199 declaration for a contract attached to E_Subprogram_Type entity.
3200 * sem_prag.adb
3201 (Analyze_Pre_Post_Condition): Add pre/post aspects to the designed type.
3202
32032023-05-29 Piotr Trojanek <trojanek@adacore.com>
3204
3205 * sem_util.adb (Check_Function_Writable_Actuals): Remove guard against
3206 a membership test with no alternatives; simplify with a membership test.
3207
32082023-05-29 Piotr Trojanek <trojanek@adacore.com>
3209
3210 * doc/gnat_ugn/gnat_and_program_execution.rst
3211 (Some Useful Memory Pools): Remove extra whitespace from examples.
3212 * sem_aggr.adb (Make_String_Into_Aggregate): Remove extra whitespace.
3213 * gnat_ugn.texi: Regenerate.
3214
32152023-05-29 Piotr Trojanek <trojanek@adacore.com>
3216
3217 * exp_aggr.adb (Convert_Aggr_In_Allocator): Replace Get_TSS_Name
3218 with a high-level Is_TSS.
3219 * sem_ch6.adb (Check_Conformance): Replace DECLARE block and
3220 nested IF with a call to Get_TSS_Name and a membership test.
3221 (Has_Reliable_Extra_Formals): Refactor repeated calls to
3222 Get_TSS_Name.
3223 * sem_disp.adb (Check_Dispatching_Operation): Replace repeated
3224 calls to Get_TSS_Name with a membership test.
3225
32262023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3227
3228 * exp_ch5.adb (Expand_N_Case_Statement): Do not remove the statement
3229 if it is the node to be wrapped by a transient scope.
3230
32312023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3232
3233 * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Do not defer
3234 anything to the back-end when the main unit is generic.
3235
32362023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3237
3238 * sem_res.adb (Try_User_Defined_Literal): Restrict previous change
3239 to non-leaf nodes.
3240
32412023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3242
3243 * sem_res.adb (Try_User_Defined_Literal): For arithmetic operators,
3244 also accept operands whose type is covered by the resolution type.
3245
32462023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3247
3248 * exp_aggr.adb (Initialize_Array_Component): Fix condition detecting
3249 the nested case that requires an adjustment.
3250
32512023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3252
3253 * exp_ch4.adb (Expand_N_In): Deal specifically with a null operand.
3254
32552023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3256
3257 * exp_ch6.adb (Expand_Simple_Function_Return): Deal with a rewriting
3258 of the simple return during the adjustment of its expression.
3259
32602023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3261
3262 * exp_ch4.adb (Expand_N_Case_Expression): Distribute simple return
3263 statements enclosing the conditional expression into the dependent
3264 expressions in almost all cases.
3265 (Expand_N_If_Expression): Likewise.
3266 (Process_Transient_In_Expression): Adjust to the above distribution.
3267 * exp_ch6.adb (Expand_Ctrl_Function_Call): Deal with calls in the
3268 dependent expressions of a conditional expression.
3269 * sem_ch6.adb (Analyze_Function_Return): Deal with the rewriting of
3270 a simple return statement during the resolution of its expression.
3271
32722023-05-29 Piotr Trojanek <trojanek@adacore.com>
3273
3274 * sem_res.adb (Resolve_Entity_Name): Refine rules for Exceptional_Cases.
3275
32762023-05-29 Marc Poulhiès <poulhies@adacore.com>
3277
3278 * exp_aggr.adb (Convert_To_Assignments): Do not mark node for
3279 delayed expansion if parent type has the Aggregate aspect.
3280 * sem_util.adb (Is_Container_Aggregate): Move...
3281 * sem_util.ads (Is_Container_Aggregate): ... here and make it
3282 public.
3283
32842023-05-29 Piotr Trojanek <trojanek@adacore.com>
3285
3286 * sem_res.adb (Resolve_Entity_Name): Relax rules for Exceptional_Cases.
3287
32882023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3289
3290 * sem_ch4.ads (Unresolved_Operator): New procedure.
3291 * sem_ch4.adb (Has_Possible_Literal_Aspects): Rename into...
3292 (Has_Possible_User_Defined_Literal): ...this. Tidy up.
3293 (Operator_Check): Accept again unresolved operators if they have a
3294 possible user-defined literal as operand. Factor out the handling
3295 of the general error message into...
3296 (Unresolved_Operator): ...this new procedure.
3297 * sem_res.adb (Resolve): Be prepared for unresolved operators on
3298 entry in Ada 2022 or later. If they are still unresolved on exit,
3299 call Unresolved_Operator to give the error message.
3300 (Try_User_Defined_Literal): Tidy up.
3301
33022023-05-29 Steve Baird <baird@adacore.com>
3303
3304 * exp_ch3.adb
3305 (Expand_N_Object_Declaration.Default_Initialize_Object): Add test for
3306 specified Default_Component_Value aspect when deciding whether
3307 either Initialize_Scalars or Normalize_Scalars impacts default
3308 initialization of an array object.
3309
33102023-05-29 Javier Miranda <miranda@adacore.com>
3311
3312 * sem_aggr.adb
3313 (Resolve_Record_Aggregate): For aggregates of derived tagged
3314 record types with discriminants, when collecting components
3315 from ancestors, pass to subprogram Gather_Components the
3316 parent type. Required to report errors on wrong aggregate
3317 components.
3318
33192023-05-29 Piotr Trojanek <trojanek@adacore.com>
3320
3321 * sem_util.adb (Check_Result_And_Post_State): Replace low-level
3322 navigation with a high-level Unique_Entity.
3323
33242023-05-29 Piotr Trojanek <trojanek@adacore.com>
3325
3326 * sem_util.adb (Check_Result_And_Post_State): Properly handle entry
3327 bodies.
3328
33292023-05-29 Piotr Trojanek <trojanek@adacore.com>
3330
3331 * contracts.adb (Fix_Parent): Fir part both for lists and nodes.
3332
33332023-05-29 Arnaud Charlet <charlet@adacore.com>
3334
3335 * sem_ch7.adb: Refine handling of inlining for CCG
3336
33372023-05-29 Eric Botcazou <ebotcazou@adacore.com>
3338
3339 * sem_ch12.adb (Copy_Generic_Node): Test the original node kind
3340 for the sake of consistency. For identifiers and other entity
3341 names and operators, accept an expanded name as associated node.
3342 Replace "or" with "or else" in condtion and fix its formatting.
3343
33442023-05-29 Piotr Trojanek <trojanek@adacore.com>
3345
3346 * sem_util.adb (Check_Result_And_Post_State): Tune message.
3347
33482023-05-29 Piotr Trojanek <trojanek@adacore.com>
3349
3350 * contracts.adb (Remove_Formals): Remove.
3351 (Preanalyze_Condition): Replace Pop_Scope with End_Scope.
3352 * sem_ch13.adb (Build_Discrete_Static_Predicate): Replace
3353 Pop_Scope with End_Scope; enclose Install_Formals within
3354 Push_Scope/End_Scope.
3355
33562023-05-29 Piotr Trojanek <trojanek@adacore.com>
3357
3358 * sem_prag.adb (Analyze_Pre_Post_Condition): Tune error message.
3359
33602023-05-29 Javier Miranda <miranda@adacore.com>
3361
3362 * scans.ads (Inside_Interpolated_String_Expression): New variable.
3363 * par-ch2.adb (P_Interpolated_String_Literal): Set/clear new
3364 variable when parsing interpolated string expressions.
3365 * scng.adb (Set_String): Skip processing operator symbols when we
3366 arescanning an interpolated string literal.
3367
33682023-05-29 Johannes Kliemann <kliemann@adacore.com>
3369
3370 * Makefile.rtl (QNX): Use s-parame__qnx.adb for s-parame.adb.
3371 * libgnat/s-parame__qnx.adb: Add QNX specific version of
3372 System.Parameters.
3373
33742023-05-29 Yannick Moy <moy@adacore.com>
3375
3376 * libgnat/a-ngelfu.ads: Restore SPARK_Mode from context.
3377
33782023-05-29 Marc Poulhiès <poulhies@adacore.com>
3379
3380 * contracts.adb (Restore_Original_Selected_Component): Adjust assertion.
3381
33822023-05-29 Piotr Trojanek <trojanek@adacore.com>
3383
3384 * contracts.adb
3385 (Add_Pre_Post_Condition): Adapt to handle pre/post of an
3386 access-to-subprogram type.
3387 (Analyze_Type_Contract): Analyze pre/post of an
3388 access-to-subprogram.
3389 * contracts.ads
3390 (Analyze_Type_Contract): Adapt comment.
3391 * sem_ch3.adb
3392 (Build_Access_Subprogram_Wrapper): Copy pre/post aspects to
3393 wrapper spec and keep it on the type.
3394 * sem_prag.adb
3395 (Analyze_Pre_Post_Condition): Expect pre/post aspects on
3396 access-to-subprogram and complain if they appear without -gnat2022
3397 switch.
3398 (Analyze_Pre_Post_Condition_In_Decl_Part): Adapt to handle
3399 pre/post on an access-to-subprogram type entity.
3400 * sem_attr.adb (Analyze_Attribute_Old_Result): Likewise.
3401 (Result): Likewise.
3402
6e6bb373
GA
34032023-05-26 Bob Duff <duff@adacore.com>
3404
3405 * sem_ch3.adb
3406 (Build_Derived_Record_Type): Temporarily set the state of the
3407 Derived_Type to "self-hidden" while processing constraints
3408 and discriminants of a record extension.
3409
34102023-05-26 Bob Duff <duff@adacore.com>
3411
3412 * einfo.ads: Add comma.
3413 * contracts.adb: Fix typos.
3414 * exp_attr.adb: Likewise.
3415 * exp_ch5.adb: Likewise.
3416 * exp_ch6.adb: Likewise.
3417 * lib-xref.adb: Likewise.
3418
34192023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3420
3421 * debug.adb (d.N): Document new usage.
3422 * exp_ch4.adb (Expand_N_Type_Conversion): Copy the Float_Truncate
3423 flag when rewriting a floating-point to fixed-point conversion as
3424 a floating-point to integer conversion.
3425 * exp_fixd.adb: Add with and use clauses for Debug.
3426 (Expand_Convert_Fixed_To_Fixed): Generate a truncation in all cases
3427 except if the result is explicitly rounded.
3428 (Expand_Convert_Integer_To_Fixed): Likewise.
3429 (Expand_Convert_Float_To_Fixed): Generate a truncation for all kind
3430 of fixed-point types, except if the result is explicitly rounded, or
3431 -gnatd.N is specified and the type is an ordinary fixed-point type.
3432 * sinfo.ads (Float_Truncate): Document usage for floating-point to
3433 fixed-point conversions.
3434
34352023-05-26 Javier Miranda <miranda@adacore.com>
3436
3437 * exp_ch4.adb
3438 (Expand_N_Allocator): If an allocator with constraints is called
3439 in the return statement of a function returning a general access
3440 type, then propagate to the itype the master of the general
3441 access type (since it is the master associated with the
3442 returned object).
3443
34442023-05-26 Yannick Moy <moy@adacore.com>
3445
3446 * sem_aggr.adb (Resolve_Record_Aggregate): Add dummy initialization and
3447 assertion that clarifies when we reassigned to a useful value.
3448
34492023-05-26 Yannick Moy <moy@adacore.com>
3450
3451 * doc/gnat_rm/gnat_language_extensions.rst: Be more explicit on
3452 pattern matching limitation.
3453 * gnat_rm.texi: Regenerate.
3454 * gnat_ugn.texi: Regenerate.
3455
34562023-05-26 Yannick Moy <moy@adacore.com>
3457
3458 * libgnat/a-calend.ads: Mark with SPARK_Mode=>Off the functions which may
3459 raise Time_Error.
3460 * libgnat/a-ngelfu.ads: Mark with SPARK_Mode=>Off the functions which may
3461 lead to an overflow (which is not the case of Tan with one parameter for
3462 example, or Arctanh or Arcoth, despite their mathematical range covering
3463 the reals).
3464 * libgnat/a-textio.ads: Remove Always_Return annotation from functions, as
3465 this is now compulsory for functions to always return in SPARK.
3466 * libgnat/i-cstrin.ads: Add Might_Not_Return annotation to Update procedure
3467 which may not return.
3468
34692023-05-26 Bob Duff <duff@adacore.com>
3470
3471 * exp_put_image.adb (Build_Image_Call): Treat 'Img the same as
3472 'Image.
3473 * exp_imgv.adb (Expand_Image_Attribute): If Discard_Names, expand
3474 to 'Image instead of 'Img.
3475 * snames.ads-tmpl, par-ch4.adb, sem_attr.adb, sem_attr.ads:
3476 Cleanups: Rename Attribute_Class_Array to be Attribute_Set. Remove
3477 unnecessary qualifications. DRY: Don't repeat "True".
3478
34792023-05-26 Piotr Trojanek <trojanek@adacore.com>
3480
3481 * sem_prag.adb (Record_Possible_Body_Reference): Remove call to Present.
3482 * sem_util.adb (Find_Untagged_Type_Of): Likewise.
3483
34842023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3485
3486 * exp_aggr.adb (Initialize_Array_Component): Remove obsolete code.
3487 (Expand_Array_Aggregate): In the case where a temporary is created
3488 and the parent is an assignment statement with No_Ctrl_Actions set,
3489 set Is_Ignored_Transient on the temporary.
3490
34912023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3492
3493 * sem_ch12.adb (Instantiate_Package_Body): Set the ghost mode to
3494 that of the instance only after loading the generic's parent.
3495 (Instantiate_Subprogram_Body): Likewise.
3496
34972023-05-26 Piotr Trojanek <trojanek@adacore.com>
3498
3499 * exp_ch4.adb (Expand_Set_Membership): Simplify by using Evolve_Or_Else.
3500
35012023-05-26 Piotr Trojanek <trojanek@adacore.com>
3502
3503 * exp_ch4.adb (Is_OK_Object_Reference): Replace loop with a call to
3504 Unqual_Conv; consequently, change object from variable to constant;
3505 replace an IF statement with an AND THEN expression.
3506
35072023-05-26 Piotr Trojanek <trojanek@adacore.com>
3508
3509 * exp_ch9.adb
3510 (Build_Entry_Count_Expression): Remove loop over component declaration;
3511 consequently remove a parameter that is no longer used; adapt callers.
3512 (Make_Task_Create_Call): Refine type of a local variable.
3513
35142023-05-26 Piotr Trojanek <trojanek@adacore.com>
3515
3516 * sem_cat.adb (Check_Non_Static_Default_Expr): Detect components inside
3517 loop, not in the loop condition itself.
3518
35192023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3520
3521 * libgnat/a-cbdlli.ads (List): Move Nodes component to the end.
3522
35232023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3524
3525 * libgnat/a-crdlli.ads (List): Move Nodes component to the end.
3526
35272023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3528
3529 * sem_attr.adb (Is_Thin_Pointer_To_Unc_Array): New predicate.
3530 (Resolve_Attribute): Apply the static matching legality rule to an
3531 Unrestricted_Access attribute applied to an aliased prefix if the
3532 type is a thin pointer. Call Is_Thin_Pointer_To_Unc_Array for the
3533 aliasing legality rule as well.
3534
35352023-05-26 Piotr Trojanek <trojanek@adacore.com>
3536
3537 * sem_util.adb (Is_Null_Record_Definition): Use First_Non_Pragma and
3538 Next_Non_Pragma to ignore pragmas within component list.
3539
35402023-05-26 Piotr Trojanek <trojanek@adacore.com>
3541
3542 * sem_prag.adb (Get_Argument): Improve detection of generic units.
3543
35442023-05-26 Piotr Trojanek <trojanek@adacore.com>
3545
3546 * sem_ch4.adb (Check_Action_OK): Replace low-level test with a
3547 high-level routine.
3548 * sem_ch13.adb (Is_Predicate_Static): Likewise.
3549
35502023-05-26 Javier Miranda <miranda@adacore.com>
3551
3552 * exp_ch9.adb
3553 (Expand_N_Conditional_Entry_Call): Factorize code to avoid
3554 duplicating subtrees; required to avoid problems when the copied
3555 code has implicit labels.
3556 * sem_util.ads (New_Copy_Separate_List): Removed.
3557 (New_Copy_Separate_Tree): Removed.
3558 * sem_util.adb (New_Copy_Separate_List): Removed.
3559 (New_Copy_Separate_Tree): Removed.
3560
35612023-05-26 Piotr Trojanek <trojanek@adacore.com>
3562
3563 * sem_ch13.adb (Check_Component_List): Local variable Compl is now
3564 a constant; a nested block is no longer needed.
3565
35662023-05-26 Piotr Trojanek <trojanek@adacore.com>
3567
3568 * sem_aggr.adb
3569 (Resolve_Record_Aggregate): Remove useless assignment.
3570 * sem_aux.adb
3571 (Has_Variant_Part): Remove useless guard; this routine is only called
3572 on type entities (and now will crash in other cases).
3573 * sem_ch3.adb
3574 (Create_Constrained_Components): Only assign Assoc_List when necessary;
3575 tune whitespace.
3576 (Is_Variant_Record): Refactor repeated calls to Parent.
3577 * sem_util.adb
3578 (Gather_Components): Assert that discriminant association has just one
3579 choice in component_association; refactor repeated calls to Next.
3580 * sem_util.ads
3581 (Gather_Components): Tune whitespace in comment.
3582
35832023-05-26 Piotr Trojanek <trojanek@adacore.com>
3584
3585 * sem_ch3.adb (Check_CPP_Type_Has_No_Defaults): Iterate with
3586 First_Non_Pragma and Next_Non_Pragma.
3587 * exp_dist.adb (Append_Record_Traversal): Likewise.
3588
35892023-05-26 Javier Miranda <miranda@adacore.com>
3590
3591 * exp_ch9.adb (Build_Class_Wide_Master): Remember internal blocks
3592 that have a task master entity declaration.
3593 (Build_Master_Entity): Code cleanup.
3594 * sem_util.ads (Is_Internal_Block): New subprogram.
3595 * sem_util.adb (Is_Internal_Block): New subprogram.
3596
35972023-05-26 Piotr Trojanek <trojanek@adacore.com>
3598
3599 * sem_util.adb (Gather_Components): Remove guard for empty list of
3600 components.
3601
36022023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3603
3604 * back_end.adb (Call_Back_End): Add gigi_standard_address to the
3605 signature of the gigi procedure and alphabetize other parameters.
3606 Pass Standard_Address as actual parameter for it.
3607 * cstand.adb (Create_Standard): Do not set Is_Descendant_Of_Address
3608 on Standard_Address.
3609 * gcc-interface/gigi.h (gigi): Add a standard_address parameter and
3610 alphabetize others.
3611 * gcc-interface/trans.cc (gigi): Likewise. Record a builtin address
3612 type and save it as the type for Standard.Address.
3613
36142023-05-26 Ghjuvan Lacambre <lacambre@adacore.com>
3615
3616 * exp_disp.adb (Expand_Dispatching_Call): Handle new Controlling_Tag.
3617 * sem_scil.adb (Check_SCIL_Node): Treat N_Object_Renaming_Declaration as
3618 N_Object_Declaration.
3619
36202023-05-26 Piotr Trojanek <trojanek@adacore.com>
3621
3622 * exp_aggr.adb
3623 (Build_Constrained_Type): Remove local constants that were shadowing
3624 equivalent global constants; replace a wrapper that calls
3625 Make_Integer_Literal with a numeric literal; remove explicit
3626 Aliased_Present parameter which is equivalent to the default value.
3627 (Check_Bounds): Remove unused initial value.
3628 (Expand_Array_Aggregate): Use aggregate type from the context.
3629
36302023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3631
3632 * einfo.ads (Delay_Cleanups): Document new usage.
3633 * exp_ch7.ads (Build_Finalizer): New declaration.
3634 * exp_ch7.adb (Build_Finalizer.Process_Declarations): Do not treat
3635 library-level package instantiations specially.
3636 (Build_Finalizer): Return early for package bodies and specs that
3637 are not compilation units instead of using a more convoluted test.
3638 (Expand_N_Package_Body): Do not build a finalizer if Delay_Cleanups
3639 is set on the defining entity.
3640 (Expand_N_Package_Declaration): Likewise.
3641 * inline.ads (Pending_Body_Info): Reorder and add Fin_Scop.
3642 (Add_Pending_Instantiation): Add Fin_Scop parameter.
3643 * inline.adb (Add_Pending_Instantiation): Likewise and copy it into
3644 the Pending_Body_Info appended to Pending_Instantiations.
3645 (Add_Scope_To_Clean): Change parameter name to Scop and remove now
3646 irrelevant processing.
3647 (Cleanup_Scopes): Deal with scopes that are package specs or bodies.
3648 (Instantiate_Body): For package instantiations, deal specially with
3649 scopes that are package bodies and with scopes that are dynamic.
3650 Pass the resulting scope to Add_Scope_To_Clean directly.
3651 * sem_ch12.adb (Analyze_Package_Instantiation): In the case where a
3652 body is needed, compute the enclosing finalization scope and pass it
3653 in the call to Add_Pending_Instantiation.
3654 (Inline_Instance_Body): Adjust aggregate passed in the calls to
3655 Instantiate_Package_Body.
3656 (Load_Parent_Of_Generic): Likewise.
3657
36582023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3659
3660 * sem_util.adb (Compile_Time_Constraint_Error): Test the Ekind.
3661
36622023-05-26 Piotr Trojanek <trojanek@adacore.com>
3663
3664 * exp_aggr.adb (Build_Constrained_Type): Use List_Length to count
3665 expressions in consecutive subaggregates.
3666
36672023-05-26 Doug Rupp <rupp@adacore.com>
3668
3669 * libgnarl/s-osinte__qnx.ads (sigset_t): Modify
3670 declaration to use system.os_constants computed
3671 value. Align it.
3672
36732023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3674
3675 * exp_sel.adb: Add clauses for Sem_Util, remove them for Opt, Sinfo
3676 and Sinfo.Nodes.
3677 (Build_K): Always use 'Tag of the object.
3678 (Build_S_Assignment): Likewise.
3679
36802023-05-26 Piotr Trojanek <trojanek@adacore.com>
3681
3682 * accessibility.adb
3683 (Is_Formal_Of_Current_Function): This routine expects an entity
3684 reference and not the entity itself, so its parameter is a Node_Id
3685 and not an Entity_Id.
3686
36872023-05-26 Piotr Trojanek <trojanek@adacore.com>
3688
3689 * exp_aggr.adb
3690 (Build_Array_Aggr_Code): Change variable to constant.
3691 (Check_Same_Aggr_Bounds): Fix style; remove unused initial value.
3692
36932023-05-26 Ronan Desplanques <desplanques@adacore.com>
3694
3695 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Create extra formals
3696 in more situations.
3697
36982023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3699
3700 * checks.adb (Selected_Range_Checks): Add guards to protect calls
3701 to Expr_Value on bounds.
3702
37032023-05-26 Eric Botcazou <ebotcazou@adacore.com>
3704
3705 * sem_eval.ads (Is_Null_Range): Remove requirements of compile-time
3706 known bounds and add WARNING line.
3707 (Not_Null_Range): Remove requirements of compile-time known bounds.
3708 * sem_eval.adb (Is_Null_Range): Fall back to Compile_Time_Compare.
3709 (Not_Null_Range): Likewise.
3710 * fe.h (Is_Null_Range): New predicate.
3711
47c4245b
GA
37122023-05-25 Javier Miranda <miranda@adacore.com>
3713
3714 * sem_aggr.adb
3715 (Warn_On_Null_Component_Association): New subprogram.
3716 (Empty_Range): Adding missing support for iterated component
3717 association node.
3718 (Resolve_Array_Aggregate): Report warning on iterated component
3719 association that may initialize some component of an array of
3720 null-excluding access type components with a null value.
3721 * exp_ch4.adb
3722 (Expand_N_Expression_With_Actions): Add missing type check since
3723 the subtype of the EWA node and the subtype of the expression
3724 may differ.
3725
37262023-05-25 Piotr Trojanek <trojanek@adacore.com>
3727
3728 * sem_util.adb (Determining_Expressions): Fix style; fix layout and
3729 ordering of pragma names; expect pragma Exceptional_Cases.
3730
37312023-05-25 Piotr Trojanek <trojanek@adacore.com>
3732
3733 * einfo-utils.adb (Write_Entity_Info): Use procedural Next_Index.
3734 * sem_aggr.adb (Collect_Aggr_Bounds): Reuse local constant.
3735 (Resolve_Null_Array_Aggregate): Use procedural Next_Index.
3736
37372023-05-25 Javier Miranda <miranda@adacore.com>
3738
3739 * exp_aggr.adb (Build_Record_Aggr_Code): Protect access to
3740 aggregate components when the aggregate is empty.
3741
37422023-05-25 Johannes Kliemann <kliemann@adacore.com>
3743
3744 * libgnat/system-vxworks7-ppc-kernel.ads: Enable
3745 Support_Atomic_Primitives.
3746 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
3747
37482023-05-25 Eric Botcazou <ebotcazou@adacore.com>
3749
3750 * sem_ch3.adb (Find_Type_Of_Object): Copy the object definition when
3751 building the subtype declaration in the case of a spec expression.
3752
37532023-05-25 Tom Tromey <tromey@adacore.com>
3754
3755 * Make-generated.in (ada/stamp-snames): Check result of
3756 gnatmake.
3757
37582023-05-25 Eric Botcazou <ebotcazou@adacore.com>
3759
3760 * cstand.adb (Create_Standard): Set the Is_Descendant_Of_Address
3761 flag on Standard_Address.
3762 * freeze.adb (Freeze_Entity): Copy the modulus of System.Address
3763 onto Standard_Address.
3764
37652023-05-25 Eric Botcazou <ebotcazou@adacore.com>
3766
3767 * libgnat/system-aix.ads (Address): Likewise.
3768 * libgnat/system-darwin-arm.ads (Address): Likewise.
3769 * libgnat/system-darwin-ppc.ads (Address): Likewise.
3770 * libgnat/system-darwin-x86.ads (Address): Likewise.
3771 * libgnat/system-djgpp.ads (Address): Likewise.
3772 * libgnat/system-dragonfly-x86_64.ads (Address): Likewise.
3773 * libgnat/system-freebsd.ads (Address): Likewise.
3774 * libgnat/system-hpux-ia64.ads (Address): Likewise.
3775 * libgnat/system-hpux.ads (Address): Likewise.
3776 * libgnat/system-linux-alpha.ads (Address): Likewise.
3777 * libgnat/system-linux-arm.ads (Address): Likewise.
3778 * libgnat/system-linux-hppa.ads (Address): Likewise.
3779 * libgnat/system-linux-ia64.ads (Address): Likewise.
3780 * libgnat/system-linux-m68k.ads (Address): Likewise.
3781 * libgnat/system-linux-mips.ads (Address): Likewise.
3782 * libgnat/system-linux-ppc.ads (Address): Likewise.
3783 * libgnat/system-linux-riscv.ads (Address): Likewise.
3784 * libgnat/system-linux-s390.ads (Address): Likewise.
3785 * libgnat/system-linux-sh4.ads (Address): Likewise.
3786 * libgnat/system-linux-sparc.ads (Address): Likewise.
3787 * libgnat/system-linux-x86.ads (Address): Likewise.
3788 * libgnat/system-lynxos178-ppc.ads (Address): Likewise.
3789 * libgnat/system-lynxos178-x86.ads (Address): Likewise.
3790 * libgnat/system-mingw.ads (Address): Likewise.
3791 * libgnat/system-qnx-arm.ads (Address): Likewise.
3792 * libgnat/system-rtems.ads (Address): Likewise.
3793 * libgnat/system-solaris-sparc.ads (Address): Likewise.
3794 * libgnat/system-solaris-x86.ads (Address): Likewise.
3795 * libgnat/system-vxworks-ppc-kernel.ads (Address): Likewise.
3796 * libgnat/system-vxworks-ppc-rtp-smp.ads (Address): Likewise.
3797 * libgnat/system-vxworks-ppc-rtp.ads (Address): Likewise.
3798 * libgnat/system-vxworks7-aarch64-rtp-smp.ads (Address): Likewise.
3799 * libgnat/system-vxworks7-aarch64.ads (Address): Likewise.
3800 * libgnat/system-vxworks7-arm-rtp-smp.ads (Address): Likewise.
3801 * libgnat/system-vxworks7-arm.ads (Address): Likewise.
3802 * libgnat/system-vxworks7-ppc-kernel.ads (Address): Likewise.
3803 * libgnat/system-vxworks7-ppc-rtp-smp.ads (Address): Likewise.
3804 * libgnat/system-vxworks7-ppc64-kernel.ads (Address): Likewise.
3805 * libgnat/system-vxworks7-ppc64-rtp-smp.ads (Address): Likewise.
3806 * libgnat/system-vxworks7-x86-kernel.ads (Address): Likewise.
3807 * libgnat/system-vxworks7-x86-rtp-smp.ads (Address): Likewise.
3808 * libgnat/system-vxworks7-x86_64-kernel.ads (Address): Likewise.
3809 * libgnat/system-vxworks7-x86_64-rtp-smp.ads (Address): Likewise.
3810
38112023-05-25 Marc Poulhiès <poulhies@adacore.com>
3812
3813 * sem_ch13.adb (Check_Aspect_At_Freeze_Point): fix format string,
3814 use existing local Ident.
3815
38162023-05-25 Bob Duff <duff@adacore.com>
3817
3818 * atree.adb (Check_Vanishing_Fields): Fix bug in the "blah type
3819 only" cases. Remove the special cases for E_Void. Misc cleanup.
3820 (Mutate_Nkind): Disallow mutating to the same kind.
3821 (Mutate_Ekind): Disallow mutating to E_Void.
3822 (From E_Void is still OK -- entities start out as E_Void by
3823 default.) Fix bug in statistics gathering -- was setting the wrong
3824 count. Enable Check_Vanishing_Fields for entities.
3825 * sem_ch8.adb (Is_Self_Hidden): New function.
3826 (Find_Direct_Name): Call Is_Self_Hidden to use the new
3827 Is_Not_Self_Hidden flag to determine whether a declaration is
3828 hidden from all visibility by itself. This replaces the old method
3829 of checking E_Void.
3830 (Find_Expanded_Name): Likewise.
3831 (Find_Selected_Component): Likewise.
3832 * sem_util.adb (Enter_Name): Remove setting of Ekind to E_Void.
3833 * sem_ch3.adb: Set the Is_Not_Self_Hidden flag in appropriate
3834 places. Comment fixes.
3835 (Inherit_Component): Remove setting of Ekind to E_Void.
3836 * sem_ch9.adb
3837 (Analyze_Protected_Type_Declaration): Update comment. Skip Itypes,
3838 which should not be turned into components.
3839 * atree.ads (Mutate_Nkind): Document error case.
3840 (Mutate_Ekind): Remove comments apologizing for E_Void mutations.
3841 Document error cases.
3842
38432023-05-25 Eric Botcazou <ebotcazou@adacore.com>
3844
3845 * libgnat/a-ststio.adb (Set_Mode): Test System.Memory_Size.
3846 * libgnat/g-debuti.ads (Address_64): Likewise.
3847 * libgnat/i-c.ads: Add with clause for System.
3848 (ptrdiff_t): Define based on the size of memory space.
3849 (size_t): Likewise.
3850 * libgnat/s-crtl.ads (size_t): Likewise.
3851 (ssize_t): Likewise.
3852 * libgnat/s-memory.ads (size_t): Likewise.
3853 * libgnat/s-parame.ads (Size_Type): Likewise.
3854 * libgnat/s-parame__hpux.ads (Size_Type): Likewise.
3855 * libgnat/s-parame__posix2008.ads (Size_Type): Likewise.
3856 * libgnat/s-parame__vxworks.ads (Size_Type): Likewise.
3857 * libgnat/s-putima.adb (Signed_Address): Likewise.
3858 (Unsigned_Address): Likewise.
3859 * libgnat/s-stoele.ads (Storage_Offset): Likewise.
3860
38612023-05-25 Piotr Trojanek <trojanek@adacore.com>
3862
3863 * sem_util.adb (Visit_Node): Decrement EWA_Level with the same condition
3864 as when it was incremented.
3865
38662023-05-25 Piotr Trojanek <trojanek@adacore.com>
3867
3868 * sem_util.ads (New_Copy_Tree): Remove Scopes_In_EWA_OK from spec;
3869 adapt comment.
3870 * sem_util.adb (New_Copy_Tree): Remove Scopes_In_EWA_OK from body;
3871 adapt code.
3872
38732023-05-25 Piotr Trojanek <trojanek@adacore.com>
3874
3875 * sem_util.adb (Update_New_Entities): Remove redundant check for entity
3876 map being present.
3877
38782023-05-25 Piotr Trojanek <trojanek@adacore.com>
3879
3880 * atree.adb (Copy_List): Call Copy_Separate_Tree for both entities and
3881 other nodes.
3882
38832023-05-25 Steve Baird <baird@adacore.com>
3884
3885 * exp_attr.adb
3886 (Cached_Streaming_Ops): A new package, providing maps to save
3887 previously-generated Read/Write/Input/Output procedures.
3888 (Expand_N_Attribute_Reference): When a new subprogram is generated
3889 for a Read/Write/Input/Output attribute reference, record that
3890 type/subp pair in the appropriate Cached_Streaming_Ops map.
3891 (Find_Stream_Subprogram): Check the appropriate
3892 Cached_Streaming_Ops map to see if an appropriate subprogram has
3893 already been generated. If so, then return it. The appropriateness
3894 test includes a call to a new nested subprogram,
3895 In_Available_Context.
3896 * exp_strm.ads, exp_strm.adb: Do not pass in a Loc parameter (or a
3897 source-location-bearing Nod parameter) to the 16 procedures
3898 provided for building streaming-related subprograms. Use the
3899 source location of the type instead.
3900 * exp_dist.adb, exp_ch3.adb: Adapt to Exp_Strm spec changes. For
3901 these calls the source location of the type was already being
3902 used.
3903
39042023-05-25 Marc Poulhiès <poulhies@adacore.com>
3905
3906 * sem_ch6.adb (Analyze_Function_Return): Add missing
3907 Is_Access_Type check before accessing the Designated_Type field.
3908
39092023-05-25 Piotr Trojanek <trojanek@adacore.com>
3910
3911 * sem_ch6.adb (Analyze_Return_Type): Remove unused initial value.
3912
39132023-05-25 Marc Poulhiès <poulhies@adacore.com>
3914
3915 * sem_ch13.adb (Analyze_One_Aspect): Call Record_Rep_Item.
3916 (Check_Aspect_At_Freeze_Point): Check the aspect is specified on
3917 non-array type only...
3918 (Analyze_One_Aspect): ... instead of doing it too early here.
3919 * sem_aggr.adb (Resolve_Container_Aggregate): Do nothing in case
3920 the parameters failed to resolve.
3921
39222023-05-25 Piotr Trojanek <trojanek@adacore.com>
3923
3924 * sem_util.adb (Check_Internal_Protected_Use): Add standard protection
3925 against search going too far.
3926
39272023-05-25 Piotr Trojanek <trojanek@adacore.com>
3928
3929 * contracts.adb
3930 (Add_Pre_Post_Condition): Mention new aspects in the comment.
3931 * contracts.ads
3932 (Add_Contract_Item): Likewise.
3933 (Analyze_Subprogram_Body_Stub_Contract): Likewise.
3934 * sem_prag.adb
3935 (Contract_Freeze_Error): Likewise.
3936 (Ensure_Aggregate_Form): Likewise.
3937 * sem_prag.ads
3938 (Find_Related_Declaration_Or_Body): Likewise.
3939 * sinfo.ads
3940 (Is_Generic_Contract_Pragma): Likewise.
3941
39422023-05-25 Piotr Trojanek <trojanek@adacore.com>
3943
3944 * aspects.ads
3945 (Implementation_Defined_Aspect): Recently added aspects are
3946 implementation-defined, just like Contract_Cases.
3947 * sem_prag.ads
3948 (Aspect_Specifying_Pragma): Recently added aspects have corresponding
3949 pragmas, just like Contract_Cases.
3950 (Pragma_Significant_To_Subprograms): Recently added aspects are
3951 significant to subprograms, just like Contract_Cases.
3952
39532023-05-25 Piotr Trojanek <trojanek@adacore.com>
3954
3955 * sem_res.adb (Resolve_Entity_Name): Tune handling of formal parameters
3956 in contract Exceptional_Cases.
3957
39582023-05-25 Piotr Trojanek <trojanek@adacore.com>
3959
3960 * par-ch7.adb (P_Package): Remove redundant guard from call to
3961 Move_Aspects.
3962 * par-ch9.adb (P_Task): Likewise.
3963 * sem_ch6.adb (Analyze_Expression_Function, Is_Inline_Pragma): Likewise.
3964
39652023-05-25 Eric Botcazou <ebotcazou@adacore.com>
3966
3967 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Use Get_Actual_Subtype
3968 to retrieve the actual subtype for all actuals and do it in only one
3969 place for all unconstrained composite formal types.
3970
39712023-05-25 Piotr Trojanek <trojanek@adacore.com>
3972
3973 * sem_prag.adb (Analyze_Pragma): Fix references to Exceptional_Cases in
3974 code copied from handling of Subprogram_Variant.
3975
39762023-05-25 Ronan Desplanques <desplanques@adacore.com>
3977
3978 * sem_ch3.adb (Replace_Type): Add more documentation.
3979
39802023-05-25 Ronan Desplanques <desplanques@adacore.com>
3981
3982 * sem_ch3.adb (Replace_Type): Use existing constant wherever
3983 possible.
3984
39852023-05-25 Ronan Desplanques <desplanques@adacore.com>
3986
3987 * sem_ch3.adb (Replace_Type): Reduce span of variable.
3988
39892023-05-25 Bob Duff <duff@adacore.com>
3990
3991 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Set the flag
3992 for protected types.
3993 (Analyze_Single_Protected_Declaration): Likewise, for singleton
3994 protected objects.
3995 (Analyze_Task_Type_Declaration): Set the flag for task types.
3996 (Analyze_Single_Task_Declaration): Likewise, for singleton task
3997 objects.
3998 * sem_ch10.adb (Decorate_Type): Set the flag for types treated as
3999 incomplete.
4000 (Build_Shadow_Entity): Set the flag for shadow entities.
4001 (Decorate_State): Set the flag for an abstract state.
4002 (Build_Limited_Views): Set the flag for limited view of package.
4003 * sem_attr.adb (Check_Not_Incomplete_Type): Disable the check when
4004 this is a current instance.
4005
40062023-05-25 Ronan Desplanques <desplanques@adacore.com>
4007
4008 * freeze.adb (Build_DTW_Body): Add appropriate type conversions for
4009 controlling access parameters.
4010 * sem_util.adb (Build_Overriding_Spec): Fix designated types in
4011 controlling access parameters.
4012
40132023-05-25 Bob Duff <duff@adacore.com>
4014
4015 * gen_il-gen-gen_entities.adb (E_Label): Add
4016 Entry_Cancel_Parameter. This is necessary because
4017 Analyze_Implicit_Label_Declaration set the Ekind to E_Label.
4018 Without this change, this field would fail the vanishing-fields
4019 check in Atree (which is currently commented out).
4020 * einfo.ads (Entry_Cancel_Parameter): Document for E_Label.
4021 * sem_eval.adb (Why_Not_Static): Protect against previous errors
4022 (no need to explain why something is not static if it's already
4023 illegal for other reasons).
4024 * sem_util.ads (Enter_Name): Fix misleading comment.
4025
40262023-05-25 Eric Botcazou <ebotcazou@adacore.com>
4027
4028 * einfo.ads (Scope_Depth): Fix circular definition.
4029 (Scope_Depth_Value): Fix value for library units.
4030
40312023-05-25 Piotr Trojanek <trojanek@adacore.com>
4032
4033 * sem_ch11.adb (Analyze_Raise_Expression): Tune warning condition.
4034 * libgnat/g-dirope.ads (Open): Remove a potentially inaccurate comment.
4035 * libgnat/g-dirope.adb (Open): Remove a potentially useless assignment;
4036 the Dir output parameter should be assigned a null value anyway by the
4037 preceding call to Free.
4038
40392023-05-25 Piotr Trojanek <trojanek@adacore.com>
4040
4041 * sem_res.adb (Resolve_Entity_Name): Allow aliased parameters; tune
4042 error message.
4043
40442023-05-25 Marc Poulhiès <poulhies@adacore.com>
4045
4046 * sem_ch13.adb (Analyze_One_Aspect): Mark Aggregate aspect as
4047 needing delayed resolution and reject the aspect on non-array
4048 type.
4049
40502023-05-25 Bob Duff <duff@adacore.com>
4051
4052 * sinfo-utils.adb: Update comment to refer to
4053 New_Node_Debugging_Output.
4054
40552023-05-25 Marc Poulhiès <poulhies@adacore.com>
4056
4057 * rtsfind.adb (Load_RTU.Restore_SPARK_Context): New.
4058 (Load_RTU): Use Restore_SPARK_Context on all exit paths.
4059 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Initialize local
4060 variable to Empty.
4061
40622023-05-25 Piotr Trojanek <trojanek@adacore.com>
4063
4064 * sem_attr.adb
4065 (Analyze_Attribute_Old_Result): Allow uses of 'Old and 'Result within
4066 the new aspect.
4067 * sem_res.adb
4068 (Within_Exceptional_Cases_Consequence): New utility routine.
4069 (Resolve_Entity_Name): Restrict use of formal parameters within the
4070 new aspect.
4071
03c7c418
GA
40722023-05-23 Piotr Trojanek <trojanek@adacore.com>
4073
4074 * aspects.ads
4075 (Aspect_Id): Add aspect identifier.
4076 (Aspect_Argument): New aspect accepts an expression.
4077 (Is_Representation_Aspect): New aspect is not a representation
4078 aspect.
4079 (Aspect_Names): Associate name with the new aspect identifier.
4080 (Aspect_Delay): New aspect is never delayed.
4081 * contracts.adb
4082 (Add_Contract_Item): Store new aspect among contract items.
4083 (Analyze_Entry_Or_Subprogram_Contract): Likewise.
4084 (Analyze_Subprogram_Body_Stub_Contract): Likewise.
4085 (Process_Contract_Cases): Expand new aspect, if present.
4086 * contracts.ads
4087 (Analyze_Entry_Or_Subprogram_Body_Contract): Mention new aspect in
4088 spec.
4089 (Analyze_Entry_Or_Subprogram_Contract): Likewise.
4090 * einfo-utils.adb
4091 (Get_Pragma): Allow new aspect to be picked by the backend.
4092 * einfo-utils.ads
4093 (Get_Pragma): Mention new aspect in spec.
4094 * exp_prag.adb
4095 (Expand_Pragma_Exceptional_Cases): Dummy expansion routine.
4096 * exp_prag.ads
4097 (Expand_Pragma_Exceptional_Cases): Add spec for expansion routine.
4098 * inline.adb
4099 (Remove_Aspects_And_Pragmas): Remove aspect from bodies to inline.
4100 * par-prag.adb
4101 (Par.Prag): Accept pragma in the parser, so it will be checked
4102 later.
4103 * sem_ch12.adb
4104 (Implementation of Generic Contracts): Mention new aspect in
4105 comment.
4106 * sem_ch13.adb
4107 (Analyze_Aspect_Specifications): Transform new aspect info a
4108 corresponding pragma.
4109 * sem_prag.adb
4110 (Analyze_Exceptional_Cases_In_Decl_Part): Analyze aspect
4111 expression; heavily inspired by the existing code for analysis of
4112 Subprogram_Variant and exception handlers.
4113 (Analyze_Pragma): Analyze pragma corresponding to the new aspect.
4114 (Is_Non_Significant_Pragma_Reference): Add new pragma to the
4115 table.
4116 * sem_prag.ads
4117 (Assertion_Expression_Pragma): New pragma acts as an assertion
4118 expression, even though it is not currently expanded.
4119 (Analyze_Exceptional_Cases_In_Decl_Part): Add spec.
4120 * sem_util.adb
4121 (Is_Subprogram_Contract_Annotation): Mark new annotation is a
4122 subprogram contract, so the subprogram with it won't be inlined.
4123 * sem_util.ads
4124 (Is_Subprogram_Contract_Annotation): Mention new aspect in
4125 comment.
4126 * sinfo.ads
4127 (Contract_Test_Cases): Mention new aspect in comment.
4128 * snames.ads-tmpl: Add entries for the new name and pragma.
4129
41302023-05-23 Eric Botcazou <ebotcazou@adacore.com>
4131
4132 * sem_ch13.adb (Build_Predicate_Functions): If the current scope
4133 is not that of the type, push this scope and pop it at the end.
4134 * sem_util.ads (Current_Scope_No_Loops_No_Blocks): Delete.
4135 * sem_util.adb (Current_Scope_No_Loops_No_Blocks): Likewise.
4136 (Set_Public_Status): Call again Current_Scope.
4137
41382023-05-23 Gary Dismukes <dismukes@adacore.com>
4139
4140 * exp_ch6.adb (Might_Have_Tasks): Remove unneeded Etype call from
4141 call to Is_Limited_Record, since that flag is now properly
4142 inherited by class-wide types.
4143 * sem_ch3.adb (Analyze_Private_Extension_Declaration): Remove call
4144 to Make_Class_Wide_Type, which is done too early, and will later
4145 be done in Build_Derived_Record_Type after flags such as
4146 Is_Limited_Record and Is_Controlled_Active have been set on the
4147 derived type.
4148
41492023-05-23 Patrick Bernardi <bernardi@adacore.com>
4150
4151 * libgnat/s-stchop.adb (Stack_Check): Remove redundant parentheses.
4152
41532023-05-23 Piotr Trojanek <trojanek@adacore.com>
4154
4155 * freeze.adb (Freeze_Record_Type): Add tag for redundant pragma Pack.
4156 * sem_aggr.adb (Resolve_Record_Aggregate): Add tag for redundant OTHERS
4157 choice.
4158 * sem_ch8.adb (Use_One_Type): Add tag for redundant USE clauses.
4159
41602023-05-23 Piotr Trojanek <trojanek@adacore.com>
4161
4162 * sem_ch11.adb
4163 (Check_Duplication): Fix inconsistent iteration.
4164 (Others_Present): Iterate over handlers using First_Non_Pragma and
4165 Next_Non_Pragma just like in Check_Duplication.
4166
41672023-05-23 Eric Botcazou <ebotcazou@adacore.com>
4168
4169 * einfo.ads (Delay_Subprogram_Descriptors): Delete.
4170 * gen_il-fields.ads (Opt_Field_Enum): Remove
4171 Delay_Subprogram_Descriptors.
4172 * gen_il-gen-gen_entities.adb (Gen_Entities): Likewise.
4173 * gen_il-gen-gen_nodes.adb (N_Entry_Body): Add Corresponding_Spec.
4174 * sinfo.ads (Corresponding_Spec): Document new use.
4175 (N_Entry_Body): Likewise.
4176 * exp_ch6.adb (Expand_Protected_Object_Reference): Be prepared for
4177 protected subprograms that have been expanded.
4178 * exp_ch7.adb (Expand_Cleanup_Actions): Remove unreachable code.
4179 * exp_ch9.adb (Build_Protected_Entry): Add a local variable for the
4180 new block and propagate Uses_Sec_Stack from the corresponding spec.
4181 (Expand_N_Protected_Body) <N_Subprogram_Body>: Unconditionally reset
4182 the scopes of top-level entities in the new body.
4183 * inline.adb (Cleanup_Scopes): Do not adjust the scope on the fly.
4184 * sem_ch9.adb (Analyze_Entry_Body): Set Corresponding_Spec.
4185 * sem_ch12.adb (Analyze_Package_Instantiation): Remove obsolete code
4186 setting Delay_Subprogram_Descriptors and tidy up.
4187 * sem_util.adb (Scope_Within): Deal with protected subprograms that
4188 have been expanded.
4189 (Scope_Within_Or_Same): Likewise.
4190
41912023-05-23 Eric Botcazou <ebotcazou@adacore.com>
4192
4193 * libgnarl/s-taskin.ads (Atomic_Address): Delete.
4194 (Attribute_Array): Add pragma Atomic_Components.
4195 (Ada_Task_Control_Block): Adjust default value of Attributes.
4196 * libgnarl/s-tasini.adb (Finalize_Attributes): Adjust type of local
4197 variable.
4198 * libgnarl/s-tataat.ads (Deallocator): Adjust type of parameter.
4199 (To_Attribute): Adjust source type.
4200 * libgnarl/a-tasatt.adb: Add clauses for System.Storage_Elements.
4201 (New_Attribute): Adjust return type.
4202 (Deallocate): Adjust type of parameter.
4203 (To_Real_Attribute): Adjust source type.
4204 (To_Address): Add target type.
4205 (To_Attribute): Adjust source type.
4206 (Fast_Path): Adjust tested type.
4207 (Finalize): Compare with Null_Address.
4208 (Reference): Likewise.
4209 (Reinitialize): Likewise.
4210 (Set_Value): Likewise. Add conversion to Integer_Address.
4211 (Value): Likewise.
4212
42132023-05-23 Raphael Amiard <amiard@adacore.com>
4214
4215 * scng.adb (Scan): Replace occurrences of All_Extensions_Allowed
4216 by Core_Extensions_Allowed.
4217
42182023-05-23 Claire Dross <dross@adacore.com>
4219
4220 * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Use new helpers.
4221 * libgnat/s-vauspe.ads (Raw_Unsigned_Starts_As_Based_Ghost,
4222 Raw_Unsigned_Is_Based_Ghost): New ghost helper functions.
4223 (Is_Raw_Unsigned_Format_Ghost, Scan_Split_No_Overflow_Ghost,
4224 Scan_Split_Value_Ghost, Raw_Unsigned_Last_Ghost): Use new
4225 helpers.
4226
42272023-05-23 Arnaud Charlet <charlet@adacore.com>
4228
4229 * par-ch5.adb, style.ads, styleg.adb, styleg.ads
4230 (Check_Xtra_Parens): Remove extra parameter Enable.
4231 (Check_Xtra_Parens_Precedence): New.
4232 (P_Case_Statement): Add -gnatyx style check.
4233 * sem_ch4.adb: Replace calls to Check_Xtra_Parens by
4234 Check_Xtra_Parens_Precedence.
4235 * stylesw.ads, stylesw.adb, usage.adb: Add support for
4236 -gnatyz.
4237 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
4238 Update -gnatyxzg doc.
4239 * sem_prag.adb, libgnat/s-regpat.adb,
4240 libgnarl/s-interr__hwint.adb, libgnarl/s-interr__vxworks.adb:
4241 Remove extra parens.
4242 * par-ch3.adb (P_Discrete_Range): Do not emit a style check if
4243 the expression is not a simple expression.
4244 * gnat_ugn.texi: Regenerate.
4245
42462023-05-23 Eric Botcazou <ebotcazou@adacore.com>
4247
4248 * libgnat/s-dwalin.adb (Enable_Cache): Use the subtract operator of
4249 System.Storage_Elements to compute the offset.
4250 (Symbolic_Address): Likewise.
4251
42522023-05-23 Eric Botcazou <ebotcazou@adacore.com>
4253
4254 * sem_res.adb (Resolve_Intrinsic_Operator): Always perform the same
4255 resolution for the special mod operator of System.Storage_Elements.
4256
42572023-05-23 Raphael Amiard <amiard@adacore.com>
4258
4259 * doc/gnat_rm.rst, doc/gnat_rm/gnat_language_extensions.rst,
4260 doc/gnat_rm/implementation_defined_pragmas.rst:
4261 * gnat_rm.texi: Regenerate.
4262
42632023-05-23 Eric Botcazou <ebotcazou@adacore.com>
4264
4265 * exp_ch4.adb (Expand_N_Op_Mod): Adjust the detection of the special
4266 operator of System.Storage_Elements. Do not rewrite it into a rem.
4267 * sem_res.adb (Resolve_Intrinsic_Operator): Use the base type of the
4268 left operand for the special mod operator of System.Storage_Elements
4269
42702023-05-23 Vadim Godunko <godunko@adacore.com>
4271
4272 * libgnat/a-coinho__shared.adb (Constant_Reference): Remove call
4273 of Detach
4274 (Query_Element): Likewise.
4275
42762023-05-23 Ronan Desplanques <desplanques@adacore.com>
4277
4278 * sem_disp.adb: Fix reference to Ada issue in comment.
4279
42802023-05-23 Eric Botcazou <ebotcazou@adacore.com>
4281
4282 * exp_disp.adb (Expand_Dispatching_Call): In the abstract interface
4283 class-wide case, use 'Tag of the object as the controlling tag.
4284 (Expand_Interface_Thunk): Perform address arithmetic using operators
4285 of System.Storage_Elements.
4286
42872023-05-23 Eric Botcazou <ebotcazou@adacore.com>
4288
4289 * libgnat/i-cpoint.adb: Add clauses for System.Storage_Elements.
4290 (Addr): Delete.
4291 (Offset): New subtype of Storage_Offset.
4292 (To_Offset): New instance of Unchecked_Conversion.
4293 (To_Pointer): Adjust.
4294 (To_Addr): Likewise.
4295 (To_Ptrdiff): Likewise.
4296 ("+"): Call To_Offset on the offset.
4297 ("-"): Likewise.
4298 * libgnat/s-bituti.adb: Add clauses for System.Storage_Elements.
4299 (Val_Bytes): Change type to Storage_Count.
4300 (Get_Val_2): Add qualification to second operand of mod operator.
4301 (Set_Val_2): Likewise.
4302 (Copy_Bitfield): Likewise. Change type of Src_Adjust & Dest_Adjust.
4303 * libgnat/s-stratt.ads (Thin_Pointer): Change to subtype of Address.
4304 * libgnat/s-statxd.adb (I_AD): Adjust.
4305 (I_AS): Likewise.
4306 (W_AS): Likewise.
4307
43082023-05-23 Steve Baird <baird@adacore.com>
4309
4310 * sem_util.adb
4311 (Is_Variable): Correctly return False for a selected component
4312 name of the form Some_Object.Some_Discriminant, even if
4313 Some_Object is a variable. We don't want to allow such a name as
4314 an actual parameter in a call if the corresponding formal
4315 parameter's mode is not "in".
4316
43172023-05-23 Yannick Moy <moy@adacore.com>
4318
4319 * sem_util.adb (Check_Node): Add default init on local Id.
4320
43212023-05-23 Yannick Moy <moy@adacore.com>
4322
4323 * libgnat/i-c.adb (To_Ada): Add loop invariant.
4324
43252023-05-23 Eric Botcazou <ebotcazou@adacore.com>
4326
4327 * exp_ch4.adb (Expand_N_Op_Mod): Deal with the special mod
4328 operator of System.Storage_Elements.
4329 * exp_intr.adb (Expand_To_Integer): New procedure.
4330 (Expand_Intrinsic_Call): Call Expand_To_Integer appropriately.
4331 (Expand_To_Address): Deal with an argument with modular type.
4332 * sem_ch3.adb (Derive_Subprogram): Also set convention Intrinsic
4333 on a derived intrinsic subprogram.
4334 * sem_res.adb (Resolve_Arithmetic_Op): Deal with intrinsic
4335 operators not coming from source exactly as those coming from
4336 source and also generate a reference in both cases.
4337 (Resolve_Op_Expon): Likewise.
4338 (Resolve_Intrinsic_Operator): Call Implementation_Base_Type to get
4339 a nonprivate base type.
4340 * snames.ads-tmpl (Name_To_Integer): New intrinsic name.
4341 * libgnat/s-stoele.ads: Replace pragma Convention with pragma
4342 Import throughout and remove pragma Inline_Always and
4343 Pure_Function.
4344 * libgnat/s-stoele.adb: Replace entire contents with pragma
4345 No_Body.
4346 * libgnat/s-atacco.adb: Adjust comment about pragma No_Body.
4347
43482023-05-23 Javier Miranda <miranda@adacore.com>
4349
4350 * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove
4351 call to preanalyze class-wide conditions since here it is too
4352 early; they must be preanalyzed when full views of private types
4353 have been analyzed.
4354 * sem_ch7.adb (Analyze_Package_Specification): Preanalyze
4355 class-wide conditions of dispatching primitives defined in nested
4356 packages.
4357
43582023-05-23 Piotr Trojanek <trojanek@adacore.com>
4359
4360 * errout.adb (Last_Sloc): Refactor a heavily repeated "S := S + 1"
4361 statement into a subprogram; replace assertions with defensive code;
4362 fix few more off-by-one errors.
4363
43642023-05-23 Ronan Desplanques <desplanques@adacore.com>
4365
4366 * einfo.ads: Mention full name of LSP.
4367
43682023-05-23 Piotr Trojanek <trojanek@adacore.com>
4369
4370 * errout.adb (Last_Sloc): Rewrite skipping past numeric literals.
4371
43722023-05-23 Eric Botcazou <ebotcazou@adacore.com>
4373
4374 * sem_ch13.adb (Build_Predicate_Function_Declaration): Adjust the
4375 commentary to the current implementation.
4376 * sem_util.ads (Current_Scope_No_Loops): Move around.
4377 (Current_Scope_No_Loops_No_Blocks): New declaration.
4378 (Add_Block_Identifier): Fix formatting.
4379 * sem_util.adb (Add_Block_Identifier): Likewise.
4380 (Current_Scope_No_Loops_No_Blocks): New function.
4381 (Set_Public_Status): Call Current_Scope_No_Loops_No_Blocks instead
4382 of Current_Scope to get the current scope.
4383
43842023-05-23 Eric Botcazou <ebotcazou@adacore.com>
4385
4386 * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Do not
4387 manually generate a predicate check. Call Unqualify before doing
4388 pattern matching on the expression.
4389 * sem_ch3.adb (Analyze_Object_Declaration): Also freeze the actual
4390 subtype when it is built in the definite case.
4391
43922023-05-23 Piotr Trojanek <trojanek@adacore.com>
4393
4394 * libgnarl/s-interr.adb
4395 (Registered_Handler): Remove default expression.
4396 (Registered_Handlers): Switch to singly-linked list.
4397 (Bind_Interrupt_To_Entry): Sync whitespace with other unit variants.
4398 (Is_Registered): Use singly-linked list.
4399 (Register_Interrupt_Handler): Use singly-linked list and initialized
4400 allocator; sync assertion with other unit variants.
4401 * libgnarl/s-interr__sigaction.adb: Likewise.
4402 * libgnarl/s-interr__vxworks.adb: Likewise.
4403 * libgnarl/s-interr__hwint.adb: Likewise.
4404 (Is_Registered): Remove repeated declaration.
4405
44062023-05-23 Piotr Trojanek <trojanek@adacore.com>
4407
4408 * pprint.adb (Expression_Image): Restore some of the old pretty-printing
4409 for CodePeer.
4410
44112023-05-23 Piotr Trojanek <trojanek@adacore.com>
4412
4413 * errout.adb (First_And_Last_Nodes): Ignore accessibility parameters.
4414
44152023-05-23 Piotr Trojanek <trojanek@adacore.com>
4416
4417 * exp_ch4.adb (Expand_N_Op_Ne): Simply don't add extra parens.
4418
44192023-05-23 Piotr Trojanek <trojanek@adacore.com>
4420
4421 * pprint.adb (Expression_Image): Move Count_Parentheses and
4422 Fix_Parentheses routines from GNATprove and apply them before
4423 returning the slice of a source code buffer.
4424
44252023-05-23 Piotr Trojanek <trojanek@adacore.com>
4426
4427 * errout.adb
4428 (Paren_Required): New subsidiary routine for better handling of
4429 parentheses in First_Node/Last_Node.
4430 (First_Sloc, Last_Sloc): Use Get_Source_File_Index to correctly
4431 handle generic instances and inlined subprograms; tune handling of
4432 parentheses; improve handling of literals.
4433 * pprint.adb (Expression_Image): Simplify using
4434 First_Sloc/Last_Sloc.
4435 * sem_ch6.adb (Analyze_Expression_Function): Remove parenthesis
4436 when relocating expression from expression function to simple
4437 return statement.
4438
44392023-05-23 Piotr Trojanek <trojanek@adacore.com>
4440
4441 * exp_prag.adb (Expand_Pragma_Check): Suppress warning for checks of
4442 subprogram variants.
4443
44442023-05-23 Eric Botcazou <ebotcazou@adacore.com>
4445
4446 * frontend.adb (Frontend): Merge two conditional blocks and adjust.
4447
44482023-05-23 Piotr Trojanek <trojanek@adacore.com>
4449
4450 * libgnat/s-mmap.adb (Mapped_Region_Record): Fix typo in comment.
4451
44522023-05-23 Ronan Desplanques <desplanques@adacore.com>
4453
4454 * sem_ch7.adb: Remove duplicate comment.
4455
44562023-05-23 Javier Miranda <miranda@adacore.com>
4457
4458 * sem_ch10.adb
4459 (Analyze_Required_Limited_With_Units): New subprogram.
4460 (Depends_On_Limited_Views): New subprogram.
4461 (Has_Limited_With_Clauses): New subprogram.
4462 (Analyze_Compilation_Unit): Call the new subprogram that performs
4463 the full analysis of required limited-with units.
4464
c5300bf3
GA
44652023-05-22 Ronan Desplanques <desplanques@adacore.com>
4466
4467 * cstand.adb: Use more idiomatic procedure.
4468
44692023-05-22 Piotr Trojanek <trojanek@adacore.com>
4470
4471 * errout.adb (First_Loc): Avoid repeated calls.
4472 (Last_Loc): Likewise.
4473
44742023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4475
4476 * inline.adb (Cleanup_Scopes): Do not propagate the Uses_Sec_Stack
4477 flag from original to rewritten protected subprograms here...
4478 * exp_ch9.adb (Expand_N_Protected_Body) <N_Subprogram_Body>:
4479 ...but here instead. Add local variables and remove a useless
4480 test.
4481
44822023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4483
4484 * exp_ch7.adb (Expand_N_Package_Body): Call Defining_Entity to get
4485 the entity of the body.
4486
44872023-05-22 Piotr Trojanek <trojanek@adacore.com>
4488
4489 * exp_attr.adb (Expand_Loop_Entry_Attribute): Use location of the
4490 attribute reference, not of the loop statement.
4491
44922023-05-22 Ronan Desplanques <desplanques@adacore.com>
4493
4494 * par-ch3.adb: Add missing word in comment.
4495
44962023-05-22 Justin Squirek <squirek@adacore.com>
4497
4498 * checks.adb (Install_Null_Excluding_Check): Avoid non-null
4499 optimizations when assertions are enabled.
4500
45012023-05-22 Marc Poulhiès <poulhies@adacore.com>
4502
4503 * exp_aggr.adb (Process_Transient_Component): Reset Analyzed flag
4504 for the copy of the initialization expression.
4505 * sem_attr.adb (Validate_Non_Static_Attribute_Function_Call): Skip
4506 error emission during Pre_Analyze.
4507
45082023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4509
4510 * exp_ch7.adb (Process_Package_Body): New procedure taken from...
4511 (Build_Finalizer.Process_Declarations): ...here. Call the above
4512 procedure to deal with both package bodies and package body stubs.
4513
45142023-05-22 Ronan Desplanques <desplanques@adacore.com>
4515
4516 * atree.ads: Remove outdated part of comment.
4517
45182023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4519
4520 * exp_ch7.adb (Build_Finalizer): Reverse the test comparing the
4521 instantiation and declaration nodes of a package instance, and
4522 therefore bail out only when they are equal. Adjust comments.
4523 (Expand_N_Package_Declaration): Do not clear the Finalizer field.
4524 * lib-writ.adb: Add with and use clauses for Sem_Util.
4525 (Write_Unit_Information): Look at unit nodes to find finalizers.
4526 * sem_ch12.adb (Analyze_Package_Instantiation): Beef up the comment
4527 about the rewriting of the instantiation node into a declaration.
4528
45292023-05-22 Bob Duff <duff@adacore.com>
4530
4531 * cstand.adb (Is_Past_Self_Hiding_Point): Rename to be
4532 Is_Not_Self_Hidden.
4533 * einfo.ads: Likewise.
4534 * exp_aggr.adb: Likewise.
4535 * gen_il-fields.ads: Likewise.
4536 * gen_il-gen-gen_entities.adb: Likewise.
4537 * sem.adb: Likewise.
4538 * sem_aggr.adb: Likewise.
4539 * sem_ch11.adb: Likewise.
4540 * sem_ch12.adb: Likewise.
4541 * sem_ch5.adb: Likewise.
4542 * sem_ch6.adb: Likewise.
4543 * sem_ch7.adb: Likewise.
4544 * sem_prag.adb: Likewise.
4545
45462023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4547
4548 * exp_ch3.adb (Make_Controlling_Function_Wrappers): Create the body
4549 as the expanded body of an expression function.
4550
45512023-05-22 Piotr Trojanek <trojanek@adacore.com>
4552
4553 * pprint.adb (Expression_Image): Handle several previously unsupported
4554 constructs.
4555
45562023-05-22 Piotr Trojanek <trojanek@adacore.com>
4557
4558 * sem_res.adb (Resolve_Entity_Name): Combine two IF statements that
4559 execute code only for references that come from source.
4560
45612023-05-22 Bob Duff <duff@adacore.com>
4562
4563 * einfo.ads (Is_Past_Self_Hiding_Point): Document.
4564 * gen_il-fields.ads (Is_Past_Self_Hiding_Point): Add to list of
4565 fields.
4566 * gen_il-gen-gen_entities.adb (Is_Past_Self_Hiding_Point): Declare
4567 in all entities.
4568 * exp_aggr.adb: Set Is_Past_Self_Hiding_Point as appropriate.
4569 * sem.adb: Likewise.
4570 * sem_aggr.adb: Likewise.
4571 * sem_ch11.adb: Likewise.
4572 * sem_ch12.adb: Likewise.
4573 * sem_ch5.adb: Likewise.
4574 * sem_ch7.adb: Likewise.
4575 * sem_prag.adb: Likewise.
4576 * sem_ch6.adb: Likewise.
4577 (Set_Formal_Mode): Minor cleanup: Move from spec.
4578 * sem_ch6.ads:
4579 (Set_Formal_Mode): Minor cleanup: Move to body.
4580 * cstand.adb: Call Set_Is_Past_Self_Hiding_Point on all entities
4581 as soon as they are created.
4582 * comperr.adb (Compiler_Abort): Minor cleanup -- use 'in' instead
4583 of 'or else'.
4584 * debug.adb: Minor comment cleanups.
4585
45862023-05-22 Steve Baird <baird@adacore.com>
4587
4588 * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok):
4589 Accept an executable pragma occuring in a declare expression as
4590 per AI22-0045. This means Assert and Inspection_Point pragmas as
4591 well as any implementation-defined pragmas that the implementation
4592 chooses to categorize as executable. Currently Assume and Debug
4593 are the only such pragmas.
4594
45952023-05-22 Piotr Trojanek <trojanek@adacore.com>
4596
4597 * sem_prag.adb
4598 (Check_Postcondition_Use_In_Inlined_Subprogram): Mention
4599 Subprogram_Variant in the comment.
4600 (Analyze_Subprogram_Variant_In_Decl_Part): Warn when contract is
4601 ignored because of pragma Inline_Always and frontend inlining.
4602
46032023-05-22 Piotr Trojanek <trojanek@adacore.com>
4604
4605 * sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram): Only
4606 emit warning when frontend inlining is enabled.
4607
46082023-05-22 Arnaud Charlet <charlet@adacore.com>
4609
4610 * par-ch3.adb, sem_ch4.adb (P_Discrete_Range, Analyze_Logical_Op,
4611 Analyze_Short_Circuit): Add calls to Check_Xtra_Parentheses.
4612 * par-ch5.adb (P_Condition): Move logic to Check_Xtra_Parentheses.
4613 * style.ads, styleg.adb, styleg.ads (Check_Xtra_Parens): Move logic
4614 related to expressions requiring parentheses here.
4615
46162023-05-22 Arnaud Charlet <charlet@adacore.com>
4617
4618 * ali-util.adb, par-endh.adb, par-prag.adb, par-ch2.adb,
4619 checks.adb, fmap.adb, libgnat/a-nbnbig.ads, libgnat/g-dynhta.adb,
4620 libgnat/s-carun8.adb, libgnat/s-strcom.adb, libgnat/a-dhfina.adb,
4621 libgnat/a-direct.adb, libgnat/a-rbtgbo.adb, libgnat/a-strsea.adb,
4622 libgnat/a-ststio.adb, libgnat/a-suenco.adb, libgnat/a-costso.adb,
4623 libgnat/a-strmap.adb, libgnat/g-alleve.adb,
4624 libgnat/g-debpoo.adb, libgnat/g-sercom__linux.adb,
4625 libgnat/s-genbig.adb, libgnat/s-mmap.adb, libgnat/s-regpat.adb,
4626 par-ch5.adb, sem_case.adb, sem_ch12.adb, sem_ch13.adb,
4627 sem_ch8.adb, sem_eval.adb, sem_prag.adb, sem_type.adb,
4628 exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb,
4629 exp_ch6.adb, exp_ch9.adb, exp_put_image.adb, freeze.adb, live.adb,
4630 sem_aggr.adb, sem_cat.adb, sem_ch10.adb, sem_ch3.adb, sem_ch6.adb,
4631 sem_ch9.adb, sem_disp.adb, sem_elab.adb, sem_res.adb,
4632 sem_util.adb, sinput.adb, uintp.adb, bcheck.adb, binde.adb,
4633 binderr.adb, einfo-utils.adb, clean.adb, sem_ch4.adb, gnatls.adb,
4634 gprep.adb, sem_ch11.adb: Remove extra parentheses.
4635
46362023-05-22 Arnaud Charlet <charlet@adacore.com>
4637
4638 * sem_aggr.adb (Get_Value): Use ?? instead of ?.
4639
46402023-05-22 Piotr Trojanek <trojanek@adacore.com>
4641
4642 * exp_aggr.adb (Aggregate_Size): Remove redundant calls to
4643 Present.
4644 * exp_ch5.adb (Expand_N_If_Statement): Likewise.
4645 * sem_prag.adb (Analyze_Pragma): Likewise.
4646 * sem_warn.adb (Find_Var): Likewise.
4647
46482023-05-22 Claire Dross <dross@adacore.com>
4649
4650 * sem_util.adb (Find_Actual): On calls through dereferences,
4651 return the corresponding formal in the designated subprogram
4652 profile.
4653
46542023-05-22 Piotr Trojanek <trojanek@adacore.com>
4655
4656 * sem_util.ads (Is_Actual_Tagged_Parameter): Remove spec.
4657 * sem_util.adb (Is_Actual_Tagged_Parameter): Remove body.
4658
46592023-05-22 Joffrey Huguet <huguet@adacore.com>
4660
4661 * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads
4662 (To_Unbounded_String): Add postcondition. Add aspect SPARK_Mode
4663 Off on the version that takes a Natural as parameter.
4664 (To_String): Complete postcondition.
4665 (Set_Unbounded_String): Add postcondition.
4666 (Element): Likewise.
4667 ("="): Likewise.
4668
46692023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4670
4671 * exp_ch3.adb (Freeze_Type): Do not associate the Finalize_Address
4672 routine for a class-wide type if restriction No_Dispatching_Calls
4673 is in effect.
4674
46752023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4676
4677 * libgnat/s-genbig.ads (From_Bignum): New overloaded declarations.
4678 * libgnat/s-genbig.adb (LLLI): New subtype.
4679 (LLLI_Is_128): New boolean constant.
4680 (From_Bignum): Change the return type of the signed implementation
4681 to Long_Long_Long_Integer and add support for the case where its
4682 size is 128 bits. Add a wrapper around it for Long_Long_Integer.
4683 Add an unsigned implementation returning Unsigned_128 and a wrapper
4684 around it for Unsigned_64.
4685 (To_Bignum): Test LLLI_Is_128 instead of its size.
4686 (To_String.Image): Add qualification to calls to From_Bignum.
4687 * libgnat/a-nbnbin.adb (To_Big_Integer): Likewise.
4688 (Signed_Conversions.From_Big_Integer): Likewise.
4689 (Unsigned_Conversions): Likewise.
4690
46912023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4692
4693 * freeze.adb (Wrap_Imported_Subprogram): Use Copy_Subprogram_Spec
4694 to copy the spec from the subprogram to the generated subprogram
4695 body.
4696 (Freeze_Entity): Do not wrap imported subprograms inside generics.
4697
46982023-05-22 Steve Baird <baird@adacore.com>
4699
4700 * sem_ch4.adb (Analyze_Expression_With_Actions.Check_Action_Ok):
4701 If Comes_From_Source (A) is False, then look at Original_Node (A)
4702 instead of A. In particular, if an (illegal) expression function
4703 is transformed into a "vanilla" function, we don't want to allow
4704 it just because Comes_From_Source is now False.
4705
47062023-05-22 Steve Baird <baird@adacore.com>
4707
4708 * sem_prag.adb (Analyze_Pragma): In Check_No_Return, call
4709 Error_Msg_Ada_2022_Feature in the case of a function. Remove code
4710 outside of Check_No_Return that was querying Ada_Version.
4711
47122023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4713
4714 * exp_ch4.adb (Expand_N_Expression_With_Actions.Process_Action): Do
4715 not look into nested blocks.
4716
47172023-05-22 Eric Botcazou <ebotcazou@adacore.com>
4718
4719 * sem_ch3.adb (Find_Type_Of_Object): In a spec expression, also set
4720 the Scope of the type, and call Constrain_Array for array subtypes.
4721
47222023-05-22 Piotr Trojanek <trojanek@adacore.com>
4723
4724 * pprint.adb (Expression_Image): Reduce scope of local variables; inline
4725 local uncommented constant From_Source; concatenate string with a single
4726 character, as it is likely to execute faster; add missing cases to
4727 traversal for the rightmost node and assertion to demonstrate that the
4728 ??? comment is no longer relevant.
4729
47302023-05-22 Piotr Trojanek <trojanek@adacore.com>
4731
4732 * pprint.adb (Expr_Name): Qualify CASE expression with N_Subexpr; add
4733 missing alternative for N_Raise_Storage_Error; remove dead alternatives;
4734 explicitly list unsupported alternatives.
4735
47362023-05-22 Piotr Trojanek <trojanek@adacore.com>
4737
4738 * pprint.adb (Expr_Name): Exclude DEL from printable range.
4739
47402023-05-22 Piotr Trojanek <trojanek@adacore.com>
4741
4742 * sem_util.ads (New_Copy_Tree): Update comment.
4743 * sem_util.adb (New_Copy_Tree): Update Controlling_Argument, very
4744 much like we update the First/Next_Named_Association.
4745
47462023-05-22 Bob Duff <duff@adacore.com>
4747
4748 * fe.h: Remove Ada_With_Extensions and add commentary.
4749 * opt.ads: Rearrange code and add commentary.
4750
47512023-05-22 Bob Duff <duff@adacore.com>
4752
4753 * sem_util.adb (Process_Type): Stop the recursion.
4754 * exp_aggr.adb (Build_Record_Aggr_Code): Add assertion.
4755
b2776076
GA
47562023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
4757
4758 * gcc-interface/decl.cc (gnat_to_gnu_entity): Use _P defines
4759 from tree.h.
4760 (constructor_address_p): Ditto.
4761 (elaborate_expression_1): Ditto.
4762 * gcc-interface/trans.cc (Identifier_to_gnu): Ditto.
4763 (is_nrv_p): Ditto.
4764 (Subprogram_Body_to_gnu): Ditto.
4765 (gnat_to_gnu): Ditto.
4766 (gnat_to_gnu_external): Ditto.
4767 (add_decl_expr): Ditto.
4768 (gnat_gimplify_expr): Ditto.
4769 * gcc-interface/utils.cc (create_var_decl): Ditto.
4770 * gcc-interface/utils2.cc (get_base_type): Ditto.
4771 (build_binary_op): Ditto.
4772 (build_unary_op): Ditto.
4773 (gnat_protect_expr): Ditto.
4774 (gnat_invariant_expr): Ditto.
4775
0d566057
GA
47762023-05-16 Steve Baird <baird@adacore.com>
4777
4778 * usage.adb: Generate output text describing the -gnatw_s switch
4779 (and the corresponding -gnatw_S switch).
4780
47812023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4782
4783 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Reduce>:
4784 Use the canonical accumulator type as the type of the accumulator
4785 in the prefixed case.
4786
47872023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4788
4789 * exp_aggr.adb (Expand_Array_Aggregate): Do not set Warnings_Off on
4790 the temporary created when in-place expansion is not possible.
4791
47922023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4793
4794 * freeze.adb (Freeze_Expression): When the freezing is to be done
4795 outside the current scope, skip any scope that is an internal loop.
4796
47972023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4798
4799 * exp_imgv.adb (Rewrite_Object_Image): If the prefix is a component
4800 that depends on a discriminant, create an actual subtype for it.
4801
48022023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4803
4804 * sem_ch13.adb: Add with and use clauses for Expander.
4805 (Resolve_Aspect_Expressions) <Aspect_Predicate>: Emulate a
4806 bona-fide preanalysis setup before calling
4807 Resolve_Aspect_Expression.
4808
48092023-05-16 Yannick Moy <moy@adacore.com>
4810
4811 * libgnat/s-aridou.adb (Lemma_Div_Pow2): Add assertion.
4812 * libgnat/s-arit32.adb (Lemma_Abs_Div_Commutation): Simplify.
4813 * libgnat/s-expmod.adb (Lemma_Exp_Mod): Add assertions.
4814 (Lemma_Euclidean_Mod): Add body to lemma.
4815 (Lemma_Mult_Mod): Add assertion.
4816 * libgnat/s-valueu.adb (Scan_Raw_Unsigned): Modify assertion.
4817 * libgnat/s-vauspe.ads (Raw_Unsigned_Last_Ghost): Add
4818 postcondition.
4819 * libgnat/s-widthi.adb: Use more precise types.
4820
48212023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4822
4823 * sem_res.adb (Has_Applicable_User_Defined_Literal): Apply the
4824 same processing for derived untagged types as for tagged types.
4825 * sem_util.ads (Corresponding_Primitive_Op): Adjust description.
4826 * sem_util.adb (Corresponding_Primitive_Op): Handle untagged
4827 types.
4828
48292023-05-16 Javier Miranda <miranda@adacore.com>
4830
4831 * sem_attr.adb
4832 (Analyze_Attribute_Old_Result): When preanalyzing a class-wide
4833 condition, search in the scopes stack for the subprogram that has
4834 the condition. This is required because returning the current
4835 scope causes reporting spurious errors when the occurrence of the
4836 attribute is found, for example, in a quantified expression.
4837
48382023-05-16 Javier Miranda <miranda@adacore.com>
4839
4840 * exp_ch6.adb
4841 (Needs_BIP_Alloc_Form): Return False for functions with foreign
4842 convention since we never use build-in-place for such functions.
4843
48442023-05-16 Piotr Trojanek <trojanek@adacore.com>
4845
4846 * sem_util.adb (Aggregate_Constraint_Checks): Don't exit early
4847 when preanalysing in GNATprove mode. Now the condition is
4848 consistent with other similar conditions in other code.
4849
48502023-05-16 Ghjuvan Lacambre <lacambre@adacore.com>
4851
4852 * usage.adb (Usage): Document -gnatyD.
4853
48542023-05-16 Marc Poulhiès <poulhies@adacore.com>
4855
4856 * libgnat/s-tsmona__linux.adb (link_map, r_debug_type): Add
4857 'aliased' on all components.
4858
48592023-05-16 Johannes Kliemann <kliemann@adacore.com>
4860
4861 * libgnat/system-linux-ppc.ads: Add Support_Atomic_Primitives.
4862 * libgnat/s-atopri__32.ads: Add 32 bit version of s-atopri.ads.
4863 * Makefile.rtl: Use s-atopro__32.ads for ppc-linux.
4864
48652023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4866
4867 * sem_util.adb (Get_Actual_Subtype): For an explicit dereference,
4868 return the Actual_Designated_Subtype if it is present.
4869 (Get_Actual_Subtype_If_Available): Likewise.
4870
48712023-05-16 Arnaud Charlet <charlet@adacore.com>
4872
4873 * errout.ads: Update comment.
4874 * errout.adb (Skip_Msg_Insertion_Warning): Update to take e.g.
4875 -gnatyM into account.
4876 * erroutc.adb (Get_Warning_Option, Get_Warning_Tag)
4877 (Prescan_Message): Add support for Style tags.
4878 * par-ch5.adb, par-ch6.adb, par-ch7.adb, par-endh.adb,
4879 par-util.adb, style.adb, styleg.adb: Set tag on all style
4880 messages.
4881
48822023-05-16 Tom Tromey <tromey@adacore.com>
4883
4884 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
4885 (Switches_for_gnatbind): Fix typo.
4886 * libgnat/g-spipat.ads: Fix typo.
4887 * gnat_ugn.texi: Regenerate.
4888
48892023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4890
4891 * exp_aggr.adb (Build_Assignment_With_Temporary): Adjust comment
4892 and fix type of second parameter. Create the temporary on the
4893 secondary stack by calling Build_Temporary_On_Secondary_Stack.
4894 (Convert_Array_Aggr_In_Allocator): Adjust formatting.
4895 (Expand_Array_Aggregate): Likewise.
4896 * exp_ch4.adb (Expand_N_Allocator): Set Actual_Designated_Subtype
4897 on the dereference in the initialization for all composite types.
4898 * exp_ch5.adb (Expand_N_Assignment_Statement): Create a temporary
4899 on the host for an assignment between nonnative storage models.
4900 Suppress more checks when Suppress_Assignment_Checks is set.
4901 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Deal with actuals
4902 that are dereferences with an Actual_Designated_Subtype. Add
4903 support for nonnative storage models.
4904 (Expand_Actuals): Create a copy if the actual is a dereference
4905 with a nonnative storage model.
4906 * exp_util.ads (Build_Temporary_On_Secondary_Stack): Declare.
4907 * exp_util.adb (Build_Temporary_On_Secondary_Stack): New function.
4908 * sem_ch5.adb (Analyze_Assignment.Set_Assignment_Type): Do not
4909 build an actual subtype for dereferences with an
4910 Actual_Designated_Subtype
4911 * sinfo.ads (Actual_Designated_Subtype): Adjust documentation.
4912 (Suppress_Assignment_Checks): Likewise.
4913
49142023-05-16 Piotr Trojanek <trojanek@adacore.com>
4915
4916 * exp_spark.adb (SPARK_Freeze_Type): Copy whole handling of DIC
4917 and Type_Invariant from Freeze_Type.
4918
49192023-05-16 Richard Kenner <kenner@adacore.com>
4920
4921 * sem_util.adb (Subprogram_Name): If what's passed is already an
4922 entity, use that for the name.
4923
49242023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4925
4926 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
4927 (No_Dependence): Give examples of new No_Dependence restrictions.
4928 * gnat_rm.texi: Regenerate.
4929
49302023-05-16 Arnaud Charlet <charlet@adacore.com>
4931
4932 * snames.ads-tmpl (Name_ASCII): New.
4933 * style.adb (Check_Identifier): Fix handling of ASCII.
4934
49352023-05-16 Eric Botcazou <ebotcazou@adacore.com>
4936
4937 * gen_il-fields.ads (Opt_Field_Enum): Add Cannot_Be_Superflat.
4938 * gen_il-gen-gen_nodes.adb (N_Range): Add Cannot_Be_Superflat as
4939 semantical flag and change Includes_Infinities to semantical.
4940 * sinfo.ads (Cannot_Be_Superflat): Document it for N_Range.
4941 * exp_ch4.adb (Expand_Concatenate): Set Cannot_Be_Superflat on the
4942 range of the result if the result cannot be null.
4943
49442023-05-16 Richard Kenner <kenner@adacore.com>
4945
4946 * gen_il-gen-gen_nodes.adb (Present_Expr): Type is now Uint.
4947
49482023-05-16 Yannick Moy <moy@adacore.com>
4949
4950 * libgnat/s-aridou.adb (Big3, Is_Mult_Decomposition)
4951 (Is_Scaled_Mult_Decomposition): Add annotation for inlining.
4952 (Double_Divide, Scaled_Divide): Simplify and remove ghost code.
4953 (Prove_Multiplication): Add calls to lemmas to make proof go
4954 through.
4955 * libgnat/s-aridou.ads (Big, In_Double_Int_Range): Add annotation
4956 for inlining.
4957
49582023-05-16 Yannick Moy <moy@adacore.com>
4959
4960 * libgnat/a-strsup.adb: Add intermediate assertions.
4961
49622023-05-16 Arnaud Charlet <charlet@adacore.com>
4963
4964 * gnat1drv.adb: Ensure all dependencies are recorded even when not
4965 generating code.
4966
49672023-05-16 Yannick Moy <moy@adacore.com>
4968
4969 * libgnat/a-strsup.adb: Set assertion policy for Loop_Variant.
4970
49712023-05-16 Marc Poulhiès <poulhies@adacore.com>
4972
4973 * sem_ch12.adb (Instantiate_Package_Body): Simplify if/then/else.
4974 (Instantiate_Subprogram_Body): Likewise.
4975
49762023-05-16 Yannick Moy <moy@adacore.com>
4977
4978 * libgnat/s-aridou.adb:
4979 (Big3): Remove override made useless.
4980 (Lemma_Quot_Rem): Add new lemma and justify it, as no prover
4981 manages to prove it.
4982 (Lemma_Div_Pow2): Use new lemma Lemma_Quot_Rem.
4983 (Prove_Scaled_Mult_Decomposition_Regroup3): Retype for
4984 simplification.
4985 (Scaled_Divide): Remove useless assertions.Decompose some
4986 assertions with cut operations. Use Assert_And_Cut for second
4987 half. Add assertions.
4988
3427b51b
GA
49892023-05-15 Marc Poulhiès <poulhies@adacore.com>
4990
4991 * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment.
4992
49932023-05-15 Yannick Moy <moy@adacore.com>
4994
4995 * libgnat/a-strbou.ads: Add justifications for Mapping.
4996 * libgnat/a-strfix.adb: Same.
4997 * libgnat/a-strfix.ads: Same.
4998 * libgnat/a-strsea.adb: Same.
4999 * libgnat/a-strsea.ads: Same.
5000 * libgnat/a-strsup.adb: Same and add loop variants.
5001 * libgnat/a-strsup.ads: Same and add specification of termination.
5002
50032023-05-15 Yannick Moy <moy@adacore.com>
5004
5005 * libgnat/a-strsup.adb (Super_Slice): Reorder component assignment
5006 to avoid failing predicate check related to initialization.
5007 * libgnat/s-expmod.adb (Exp_Modular): Add intermediate assertion.
5008
50092023-05-15 Yannick Moy <moy@adacore.com>
5010
5011 * libgnat/i-c.adb: Add loop variants. Remove useless
5012 initialization.
5013
50142023-05-15 Bob Duff <duff@adacore.com>
5015
5016 * einfo-utils.ads: Remove comment.
5017
50182023-05-15 Bob Duff <duff@adacore.com>
5019
5020 * einfo-utils.ads, einfo-utils.adb: Get rid of the Proc_Next_...
5021 procedures. Use Inline aspect instead of pragma Inline.
5022 Is_Discrete_Or_Fixed_Point_Type did not have pragma Inline, but
5023 now has the aspect; this was probably an oversight
5024 (which illustrates why aspects are better).
5025
50262023-05-15 Ronan Desplanques <desplanques@adacore.com>
5027
5028 * doc/gnat_ugn/gnat_utility_programs.rst: Fix formatting
5029 inconsistency.
5030
50312023-05-15 Bob Duff <duff@adacore.com>
5032
5033 * einfo-utils.adb:
5034 (Proc_Next_Component_Or_Discriminant): Call
5035 Next_Component_Or_Discriminant.
5036
50372023-05-15 Bob Duff <duff@adacore.com>
5038
5039 * einfo.ads:
5040 (First_Entity): Update comment explaining why this exists on all
5041 [sub]types, as opposed to just the ones with associated entities.
5042
50432023-05-15 Bob Duff <duff@adacore.com>
5044
5045 * atree.adb
5046 (Check_Vanishing_Fields): Disable the check for "root/base type
5047 only" fields. This is a bug fix -- if we're checking some subtype
5048 S, we don't want to reach over to the root or base type and
5049 Reinit_Field_To_Zero of that, thus modifying the field for lots of
5050 subtypes other than S. Disable in the to/from E_Void cases. Misc
5051 cleanup.
5052 * gen_il-gen-gen_entities.adb: Define First_Entity, Last_Entity,
5053 and Stored_Constraint for all type entities, because there are too
5054 many cases where Reinit_Field_To_Zero would otherwise be needed.
5055 In any case, it seems cleaner to have First_Entity and Last_Entity
5056 defined in the same entity kinds.
5057 * einfo.ads:
5058 (First_Entity, Last_Entity, Stored_Constraint): Update comments to
5059 reflect gen_il-gen-gen_entities.adb changes.
5060 (Lit_Hash): Add missing "[root type only]" comment.
5061 * exp_ch5.adb: Add Reinit_Field_To_Zero calls for vanishing
5062 fields.
5063 * sem_ch10.adb: Likewise.
5064 * sem_ch6.adb: Likewise.
5065 * sem_ch7.adb: Likewise.
5066 * sem_ch8.adb: Likewise.
5067 * sem_ch3.adb: Likewise. Also remove now-unnecessary
5068 Reinit_Field_To_Zero calls.
5069
50702023-05-15 Eric Botcazou <ebotcazou@adacore.com>
5071
5072 * sem_ch7.adb (Hide_Public_Entities): Use the same condition for
5073 subprogram bodies without specification as for those with one.
5074
50752023-05-15 Piotr Trojanek <trojanek@adacore.com>
5076
5077 * sem_util.adb (New_Copy_Tree): Remove redundant calls to Present.
5078
50792023-05-15 Ronan Desplanques <desplanques@adacore.com>
5080
5081 * sem_ch8.adb (End_Scope): Simplify lookup of predecessor in
5082 homonym chain.
5083
50842023-05-15 Piotr Trojanek <trojanek@adacore.com>
5085
5086 * sem_aggr.adb (Resolve_Aggregate): Accept aggregates with OTHERS
5087 appearing inside unchecked conversions.
5088
50892023-05-15 Steve Baird <baird@adacore.com>
5090
5091 * warnsw.ads: Add a new element,
5092 Warn_On_Ineffective_Predicate_Test, to the Opt_Warnings_Enum
5093 enumeration type.
5094 * warnsw.adb: Bind "-gnatw_s" to the new
5095 Warn_On_Ineffective_Predicate_Test switch. Add the new switch to
5096 the set of switches enabled by -gnata .
5097 * sem_ch13.adb
5098 (Build_Discrete_Static_Predicate): Declare new local procedure,
5099 Warn_If_Test_Ineffective, which conditionally generates new
5100 warning. Call this new procedure when building a new element of an
5101 RList.
5102 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
5103 Document the -gnatw_s switch (and the corresponding -gnatw_S
5104 switch).
5105 * gnat_ugn.texi: Regenerate.
5106
51072023-05-15 Yannick Moy <moy@adacore.com>
5108
5109 * sem_attr.adb: Update comment referring to rule number.
5110
51112023-05-15 Ronan Desplanques <desplanques@adacore.com>
5112
5113 * sem_attr.adb: sem_attr.adb (Analyze_Access_Attribute): Tighten
5114 validity check for task types.
5115
51162023-05-15 Ronan Desplanques <desplanques@adacore.com>
5117
5118 * doc/gnat_rm/implementation_defined_characteristics.rst: Fix
5119 minor documentation formatting issue.
5120 * gnat_rm.texi: Regenerate.
5121 * gnat_ugn.texi: Regenerate.
5122
51232023-05-15 Bob Duff <duff@adacore.com>
5124
5125 * exp_ch4.adb
5126 (Expand_N_Op_Expon): Remove the too-big check. Simplify. Signed
5127 and modular cases are combined, etc. Remove code with comment "We
5128 only handle cases where the right type is a[sic] integer", because
5129 the right operand must always be an integer at this point.
5130
51312023-05-15 Bob Duff <duff@adacore.com>
5132
5133 * sem_attr.adb
5134 (Analyze_Attribute): Add a call to Check_Error_Detected.
5135
51362023-05-15 Yannick Moy <moy@adacore.com>
5137
5138 * par-prag.adb (First_Arg_Is_Matching_Tool_Name): Fix access to
5139 expression in pragma association.
5140
51412023-05-15 Eric Botcazou <ebotcazou@adacore.com>
5142
5143 * repinfo.ads (JSON output format): Document special case of
5144 Present member of a Variant object.
5145 * repinfo.adb (List_Structural_Record_Layout): Change the type of
5146 Ext_Level parameter to Integer. Restrict the first recursion with
5147 increasing levels to the fixed part and implement a second
5148 recursion with decreasing levels for the variant part. Deal with
5149 an extension of a type with unknown discriminants.
5150
51512023-05-15 Claire Dross <dross@adacore.com>
5152
5153 * libgnat/s-valueu.adb: Use cut operations inside assertion to
5154 restore proofs
5155 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-spark and
5156 s-spcuop dependencies.
5157
51582023-05-15 Yannick Moy <moy@adacore.com>
5159
5160 * sem_prag.adb (Check_Grouping): Allow Annotate pragmas between
5161 loop pragmas.
5162
51632023-05-15 Javier Miranda <miranda@adacore.com>
5164
5165 * doc/gnat_rm/implementation_defined_pragmas.rst
5166 (Extensions_Allowed): Document string interpolation.
5167 * gnat_rm.texi: Regenerate.
5168 * gnat_ugn.texi: Regenerate.
5169
51702023-05-15 Joel Brobecker <brobecker@adacore.com>
5171
5172 * doc/gnat_ugn/platform_specific_information.rst
5173 (_PIE_Enabled_By_Default_On_Linux): New section.
5174 * gnat-style.texi: Regenerate.
5175 * gnat_ugn.texi: Regenerate.
5176
51772023-05-15 Javier Miranda <miranda@adacore.com>
5178
5179 * exp_disp.adb
5180 (Has_Dispatching_Constructor_Call): New subprogram.
5181 (Expand_Interface_Conversion): No need to perform dynamic
5182 interface conversion when the operand and the target type are
5183 interface types and the target interface type is an ancestor of
5184 the operand type. The unique exception to this rule is when the
5185 operand has a dispatching constructor call (as documented in the
5186 sources).
5187
51882023-05-15 Piotr Trojanek <trojanek@adacore.com>
5189
5190 * sem_attr.adb (Analyze_Attribute): Reject attribute Initialized
5191 on unchecked unions; fix grammar in comment.
5192
51932023-05-15 Ronan Desplanques <desplanques@adacore.com>
5194
5195 * sem_ch13.adb (Validate_Unchecked_Conversion): Fix behavior on
5196 System.Address to access to subprogram subtype conversion.
5197
51982023-05-15 Piotr Trojanek <trojanek@adacore.com>
5199
5200 * atree.ads
5201 (Is_Syntactic_Node): Refactored from New_Copy_Tree.
5202 * atree.adb
5203 (Is_Syntactic_Node): Likewise.
5204 (Copy_Separate_Tree): Use Is_Syntactic_Node.
5205 * sem_util.adb
5206 (Has_More_Ids): Move to Atree.
5207 (Is_Syntactic_Node): Likewise.
5208
d5cd3ead
GA
52092023-04-18 Jin Ma <jinma@linux.alibaba.com>
5210
758d916c 5211 * gcc-interface/utils.cc (unchecked_convert): Fix typo.
d5cd3ead 5212
56b288f5
GA
52132023-04-17 Martin Liska <mliska@suse.cz>
5214
5215 * gnatvsn.ads: Bump Library_Version to 14.
5216
55085c7e
GA
52172023-04-15 Eric Botcazou <ebotcazou@adacore.com>
5218
5219 PR bootstrap/109510
5220 * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Do not reset
5221 align to zero in any case. Set TYPE_USER_ALIGN on the type only if
5222 it is an aggregate type, or else a type whose default alignment is
5223 specifically capped on selected platforms.
5224
1aee19f9
GA
52252023-04-14 Eric Botcazou <ebotcazou@adacore.com>
5226
5227 PR bootstrap/109510
5228 * gcc-interface/decl.cc (gnat_to_gnu_entity) <types>: Reset align
5229 to zero if its value is equal to TYPE_ALIGN and the type is scalar.
5230 Set TYPE_USER_ALIGN on the type only if align is positive.
5231
3dd4ada4
GA
52322023-03-06 Javier Miranda <miranda@adacore.com>
5233
5234 PR ada/108858
5235 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): For functions with
5236 separate spec, if their return type was visible through a limited-
5237 with context clause, their extra formals were not added when the
5238 spec was analyzed. Now the full view must be available, and the
5239 extra formals can be created and Returns_By_Ref computed.
5240
52412023-03-06 Eric Botcazou <ebotcazou@adacore.com>
5242
5243 PR ada/108909
5244 PR ada/108983
5245 * Make-generated.in: Do not use GNATMAKE.
5246 * gcc-interface/Makefile.in: Ditto.
5247
2cd665b1
GA
52482023-02-26 Peter Foley <pefoley2@pefoley.com>
5249
5250 PR ada/108909
5251 * Make-generated.in: Use GNATMAKE.
5252 * gcc-interface/Makefile.in: Ditto.
5253
05467d08
GA
52542023-02-14 Eric Botcazou <ebotcazou@adacore.com>
5255
5256 * gcc-interface/trans.cc (gnat_gimplify_expr): Add missing guard.
5257
52582023-02-14 Dongsheng Song <dongsheng.song@gmail.com>
5259
5260 * adaint.c [Linux]: Include <features.h>.
5261 (__gnat_get_executable_load_address) [Linux]: Enable only for
5262 glibc and uClibc.
5263
f457a62e
GA
52642023-01-16 Marc Poulhiès <poulhies@adacore.com>
5265
5266 * gcc-interface/Make-lang.in: Update copyright years.
5267 * gcc-interface/Makefile.in: Likewise.
5268 * gcc-interface/ada-builtin-types.def: Likewise.
5269 * gcc-interface/ada-builtins.def: Likewise.
5270 * gcc-interface/ada-tree.def: Likewise.
5271 * gcc-interface/ada-tree.h: Likewise.
5272 * gcc-interface/ada.h: Likewise.
5273 * gcc-interface/config-lang.in: Likewise.
5274 * gcc-interface/cuintp.cc: Likewise.
5275 * gcc-interface/decl.cc: Likewise.
5276 * gcc-interface/gadaint.h: Likewise.
5277 * gcc-interface/gigi.h: Likewise.
5278 * gcc-interface/lang-specs.h: Likewise.
5279 * gcc-interface/lang.opt: Likewise.
5280 * gcc-interface/misc.cc: Likewise.
5281 * gcc-interface/system.ads: Likewise.
5282 * gcc-interface/targtyps.cc: Likewise.
5283 * gcc-interface/trans.cc: Likewise.
5284 * gcc-interface/utils.cc: Likewise.
5285 * gcc-interface/utils2.cc: Likewise.
5286
52872023-01-16 Eric Botcazou <ebotcazou@adacore.com>
5288
5289 * exp_ch3.adb (Make_Allocator_For_Return): Fix typo in comment.
5290
52912023-01-16 Eric Botcazou <ebotcazou@adacore.com>
5292
5293 * exp_ch3.adb (Make_Allocator_For_Return): Convert the expression
5294 to the return object's type in the constrained array case as well.
5295
52962023-01-16 Eric Botcazou <ebotcazou@adacore.com>
5297
5298 * exp_ch3.adb (Expand_N_Object_Declaration): For a class-wide non-
5299 interface stand-alone object initialized by a function call, call
5300 Remove_Side_Effects on the expression to capture the result.
5301
53022023-01-16 Eric Botcazou <ebotcazou@adacore.com>
5303
5304 * exp_util.ads (Has_Tag_Of_Type): Declare.
5305 * exp_util.adb (Has_Tag_Of_Type): Move to package level. Recurse on
5306 qualified expressions.
5307 * exp_ch3.adb (Expand_N_Object_Declaration): Use a static reference
5308 to the interface tag in more cases for class-wide interface objects.
5309
53102023-01-16 Eric Botcazou <ebotcazou@adacore.com>
5311
5312 * exp_util.adb (Make_CW_Equivalent_Type.Has_Tag_Of_Type): Fix pasto.
5313
53142023-01-16 Eric Botcazou <ebotcazou@adacore.com>
5315
5316 * exp_util.adb (Is_Temporary_For_Interface_Object): Delete.
5317 (Is_Finalizable_Transient.Is_Aliased): Deal with the specific case
5318 of temporaries generated for interface objects.
5319
53202023-01-16 Eric Botcazou <ebotcazou@adacore.com>
5321
5322 * exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a back-
5323 and-forth displacement of the object's address when using a renaming
5324 for an interface object with an expression of the same type.
5325 * exp_ch4.adb (Expand_Allocator_Expression): Do not remove the side
5326 effects of the expression up front for the simple allocators. Do not
5327 call the Adjust primitive if the expression is a function call.
5328 * exp_ch6.adb (Expand_Ctrl_Function_Call): Do not expand the call
5329 unnecessarily for a special return object.
5330 (Expand_Simple_Function_Return): Restore the displacement of the
5331 return object's address in the case where the expression is the call
5332 to a function whose result type is a type that needs finalization.
5333 * exp_util.adb (Expand_Subtype_From_Expr): Do not remove the side
5334 effects of the expression before calling Make_Subtype_From_Expr.
5335 (Make_CW_Equivalent_Type): If the expression has the tag of its type
5336 and this type has a uniform size, use 'Object_Size of this type in
5337 lieu of 'Size of the expression to compute the expression's size.
5338
53392023-01-16 Eric Botcazou <ebotcazou@adacore.com>
5340
5341 * exp_ch3.adb (Make_Allocator_For_Return): Put back an interface
5342 conversion for expressions with non-interface class-wide type.
5343
53442023-01-16 Eric Botcazou <ebotcazou@adacore.com>
5345
5346 * exp_ch3.adb (Expand_N_Object_Declaration): Also optimize aliased
5347 objects if their nominal subtype is not an unconstrained array.
5348
53492023-01-16 Eric Botcazou <ebotcazou@adacore.com>
5350
5351 * exp_ch3.adb (Expand_N_Object_Declaration): Factor out conditions
5352 needed for an initializating expression that is a function call to
5353 be renamable into the Is_Renamable_Function_Call predicate.
5354 Use it to implement the renaming in the case of class-wide interface
5355 objects. Remove an interface conversion on all paths, separate and
5356 optimize the renaming path in the special expansion for interfaces.
5357 (Is_Renamable_Function_Call): New predicate.
5358 (Make_Allocator_For_Return): Put back an interface conversion.
5359 * exp_ch6.adb (Apply_CW_Accessibility_Check): Remove useless access
5360 checks on RE_Tag_Ptr.
5361
84723aca
GA
53622023-01-09 Arnaud Charlet <charlet@adacore.com>
5363
5364 * accessibility.adb, accessibility.ads, ada_get_targ.adb: Update copyright year.
5365 * adabkend.adb, adabkend.ads, adadecode.c, adadecode.h, adaint.c: Likewise.
5366 * adaint.h, affinity.c, ali-util.adb, ali-util.ads, ali.adb: Likewise.
5367 * ali.ads, alloc.ads, argv-lynxos178-raven-cert.c, argv.c: Likewise.
5368 * aspects.adb, aspects.ads, atree.adb, atree.ads, atree.h: Likewise.
5369 * aux-io.c, back_end.adb, back_end.ads, backend_utils.adb: Likewise.
5370 * backend_utils.ads, bcheck.adb, bcheck.ads, binde.adb, binde.ads: Likewise.
5371 * binderr.adb, binderr.ads, bindgen.adb, bindgen.ads: Likewise.
5372 * bindo-augmentors.adb, bindo-augmentors.ads, bindo-builders.adb: Likewise.
5373 * bindo-builders.ads, bindo-diagnostics.adb: Likewise.
5374 * bindo-diagnostics.ads, bindo-elaborators.adb: Likewise.
5375 * bindo-elaborators.ads, bindo-graphs.adb, bindo-graphs.ads: Likewise.
5376 * bindo-units.adb, bindo-units.ads, bindo-validators.adb: Likewise.
5377 * bindo-validators.ads, bindo-writers.adb, bindo-writers.ads: Likewise.
5378 * bindo.adb, bindo.ads, bindusg.adb, bindusg.ads, butil.adb: Likewise.
5379 * butil.ads, cal.c, casing.adb, casing.ads, checks.adb: Likewise.
5380 * checks.ads, cio.c, clean.adb, clean.ads: Likewise.
5381 * comperr.adb, comperr.ads, contracts.adb, contracts.ads: Likewise.
5382 * csets.adb, csets.ads, cstand.adb: Likewise.
5383 * cstand.ads, cstreams.c, ctrl_c.c, debug.adb, debug.ads: Likewise.
5384 * debug_a.adb, debug_a.ads, einfo-utils.adb, einfo-utils.ads: Likewise.
5385 * einfo.adb, einfo.ads, elists.adb, elists.ads, elists.h, env.c: Likewise.
5386 * env.h, err_vars.ads, errno.c, errout.adb, errout.ads: Likewise.
5387 * erroutc.adb, erroutc.ads, errutil.adb, errutil.ads: Likewise.
5388 * eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb, exp_aggr.ads: Likewise.
5389 * exp_atag.adb, exp_atag.ads, exp_attr.adb, exp_attr.ads: Likewise.
5390 * exp_cg.adb, exp_cg.ads, exp_ch10.ads, exp_ch11.adb: Likewise.
5391 * exp_ch11.ads, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb: Likewise.
5392 * exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.adb: Likewise.
5393 * exp_ch3.ads, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb, exp_ch5.ads: Likewise.
5394 * exp_ch6.adb, exp_ch6.ads, exp_ch7.adb, exp_ch7.ads, exp_ch8.adb: Likewise.
5395 * exp_ch8.ads, exp_ch9.adb, exp_ch9.ads, exp_code.adb: Likewise.
5396 * exp_code.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.adb: Likewise.
5397 * exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb: Likewise.
5398 * exp_fixd.ads, exp_imgv.adb, exp_imgv.ads, exp_intr.adb: Likewise.
5399 * exp_intr.ads, exp_pakd.adb, exp_pakd.ads, exp_prag.adb: Likewise.
5400 * exp_prag.ads, exp_put_image.adb, exp_put_image.ads, exp_sel.adb: Likewise.
5401 * exp_sel.ads, exp_smem.adb, exp_smem.ads, exp_spark.adb: Likewise.
5402 * exp_spark.ads, exp_strm.adb, exp_strm.ads, exp_tss.adb: Likewise.
5403 * exp_tss.ads, exp_unst.adb, exp_unst.ads, exp_util.adb: Likewise.
5404 * exp_util.ads, expander.adb, expander.ads, expect.c, fe.h: Likewise.
5405 * final.c, fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads: Likewise.
5406 * fname-uf.adb, fname-uf.ads, fname.adb, fname.ads, freeze.adb: Likewise.
5407 * freeze.ads, frontend.adb, frontend.ads, gen_il-fields.ads: Likewise.
5408 * gen_il-gen-gen_entities.adb, gen_il-gen-gen_nodes.adb: Likewise.
5409 * gen_il-gen.adb, gen_il-gen.ads, gen_il-internals.adb: Likewise.
5410 * gen_il-internals.ads, gen_il-main.adb, gen_il-types.ads: Likewise.
5411 * gen_il.adb, gen_il.ads, get_scos.adb, get_scos.ads: Likewise.
5412 * get_targ.adb, get_targ.ads, ghost.adb, ghost.ads, gnat1drv.adb: Likewise.
5413 * gnat1drv.ads, gnat_cuda.adb, gnat_cuda.ads: Likewise.
5414 * gnatbind.adb, gnatbind.ads, gnatchop.adb: Likewise.
5415 * gnatclean.adb, gnatcmd.adb, gnatcmd.ads, gnatdll.adb: Likewise.
5416 * gnatkr.adb, gnatkr.ads, gnatlink.adb, gnatlink.ads, gnatls.adb: Likewise.
5417 * gnatls.ads, gnatmake.adb, gnatmake.ads, gnatname.adb: Likewise.
5418 * gnatname.ads, gnatprep.adb, gnatprep.ads: Likewise.
5419 * gprep.adb, gprep.ads, gsocket.h: Likewise.
5420 * hostparm.ads: Likewise.
5421 * impunit.adb, impunit.ads, indepsw-aix.adb, indepsw-darwin.adb: Likewise.
5422 * indepsw-gnu.adb, indepsw.adb, indepsw.ads, init.c: Likewise.
5423 * initialize.c, inline.adb, inline.ads, itypes.adb, itypes.ads: Likewise.
5424 * krunch.adb, krunch.ads, layout.adb, layout.ads: Likewise.
5425 * lib-list.adb, lib-load.adb, lib-load.ads, lib-sort.adb: Likewise.
5426 * lib-util.adb, lib-util.ads, lib-writ.adb, lib-writ.ads: Likewise.
5427 * lib-xref-spark_specific.adb, lib-xref.adb, lib-xref.ads: Likewise.
5428 * lib.adb, lib.ads, libgnarl/a-astaco.adb, libgnarl/a-dispat.adb: Likewise.
5429 * libgnarl/a-dynpri.adb, libgnarl/a-etgrbu.ads: Likewise.
5430 * libgnarl/a-exetim__darwin.adb, libgnarl/a-exetim__default.ads: Likewise.
5431 * libgnarl/a-exetim__mingw.adb, libgnarl/a-exetim__mingw.ads: Likewise.
5432 * libgnarl/a-exetim__posix.adb, libgnarl/a-interr.adb: Likewise.
5433 * libgnarl/a-interr.ads, libgnarl/a-intnam.ads: Likewise.
5434 * libgnarl/a-intnam__aix.ads, libgnarl/a-intnam__darwin.ads: Likewise.
5435 * libgnarl/a-intnam__dragonfly.ads, libgnarl/a-intnam__dummy.ads: Likewise.
5436 * libgnarl/a-intnam__freebsd.ads, libgnarl/a-intnam__hpux.ads: Likewise.
5437 * libgnarl/a-intnam__linux.ads, libgnarl/a-intnam__lynxos.ads: Likewise.
5438 * libgnarl/a-intnam__mingw.ads, libgnarl/a-intnam__qnx.ads: Likewise.
5439 * libgnarl/a-intnam__rtems.ads, libgnarl/a-intnam__solaris.ads: Likewise.
5440 * libgnarl/a-intnam__vxworks.ads, libgnarl/a-reatim.adb: Likewise.
5441 * libgnarl/a-reatim.ads, libgnarl/a-retide.adb: Likewise.
5442 * libgnarl/a-retide.ads, libgnarl/a-rttiev.adb: Likewise.
5443 * libgnarl/a-rttiev.ads, libgnarl/a-synbar.adb: Likewise.
5444 * libgnarl/a-synbar.ads, libgnarl/a-synbar__posix.adb: Likewise.
5445 * libgnarl/a-synbar__posix.ads, libgnarl/a-sytaco.adb: Likewise.
5446 * libgnarl/a-sytaco.ads, libgnarl/a-tasatt.adb: Likewise.
5447 * libgnarl/a-tasatt.ads, libgnarl/a-taside.adb: Likewise.
5448 * libgnarl/a-taside.ads, libgnarl/a-tasini.adb: Likewise.
5449 * libgnarl/a-tasini.ads, libgnarl/a-taster.adb: Likewise.
5450 * libgnarl/g-boubuf.adb, libgnarl/g-boubuf.ads: Likewise.
5451 * libgnarl/g-boumai.ads, libgnarl/g-semaph.adb: Likewise.
5452 * libgnarl/g-semaph.ads, libgnarl/g-signal.adb: Likewise.
5453 * libgnarl/g-signal.ads, libgnarl/g-tastus.ads: Likewise.
5454 * libgnarl/g-thread.adb, libgnarl/g-thread.ads: Likewise.
5455 * libgnarl/i-vxinco.adb, libgnarl/i-vxinco.ads: Likewise.
5456 * libgnarl/s-inmaop.ads, libgnarl/s-inmaop__dummy.adb: Likewise.
5457 * libgnarl/s-inmaop__hwint.adb, libgnarl/s-inmaop__posix.adb: Likewise.
5458 * libgnarl/s-interr.adb, libgnarl/s-interr.ads: Likewise.
5459 * libgnarl/s-interr__dummy.adb, libgnarl/s-interr__hwint.adb: Likewise.
5460 * libgnarl/s-interr__sigaction.adb: Likewise.
5461 * libgnarl/s-interr__vxworks.adb, libgnarl/s-intman.ads: Likewise.
5462 * libgnarl/s-intman__android.adb, libgnarl/s-intman__dummy.adb: Likewise.
5463 * libgnarl/s-intman__lynxos.adb, libgnarl/s-intman__mingw.adb: Likewise.
5464 * libgnarl/s-intman__posix.adb, libgnarl/s-intman__qnx.adb: Likewise.
5465 * libgnarl/s-intman__rtems.adb, libgnarl/s-intman__rtems.ads: Likewise.
5466 * libgnarl/s-intman__solaris.adb, libgnarl/s-intman__susv3.adb: Likewise.
5467 * libgnarl/s-intman__vxworks.adb, libgnarl/s-intman__vxworks.ads: Likewise.
5468 * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads: Likewise.
5469 * libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads: Likewise.
5470 * libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads: Likewise.
5471 * libgnarl/s-linux__sparc.ads, libgnarl/s-linux__x32.ads: Likewise.
5472 * libgnarl/s-mudido.adb, libgnarl/s-mudido__affinity.adb: Likewise.
5473 * libgnarl/s-osinte__aix.adb, libgnarl/s-osinte__aix.ads: Likewise.
5474 * libgnarl/s-osinte__android.adb, libgnarl/s-osinte__android.ads: Likewise.
5475 * libgnarl/s-osinte__darwin.adb, libgnarl/s-osinte__darwin.ads: Likewise.
5476 * libgnarl/s-osinte__dragonfly.adb: Likewise.
5477 * libgnarl/s-osinte__dragonfly.ads, libgnarl/s-osinte__dummy.ads: Likewise.
5478 * libgnarl/s-osinte__freebsd.adb, libgnarl/s-osinte__freebsd.ads: Likewise.
5479 * libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__gnu.ads: Likewise.
5480 * libgnarl/s-osinte__hpux-dce.adb: Likewise.
5481 * libgnarl/s-osinte__hpux-dce.ads, libgnarl/s-osinte__hpux.ads: Likewise.
5482 * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
5483 * libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178.adb: Likewise.
5484 * libgnarl/s-osinte__lynxos178e.ads, libgnarl/s-osinte__mingw.ads: Likewise.
5485 * libgnarl/s-osinte__posix.adb, libgnarl/s-osinte__qnx.adb: Likewise.
5486 * libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.adb: Likewise.
5487 * libgnarl/s-osinte__rtems.ads, libgnarl/s-osinte__solaris.adb: Likewise.
5488 * libgnarl/s-osinte__solaris.ads, libgnarl/s-osinte__vxworks.adb: Likewise.
5489 * libgnarl/s-osinte__vxworks.ads, libgnarl/s-osinte__x32.adb: Likewise.
5490 * libgnarl/s-proinf.adb, libgnarl/s-proinf.ads: Likewise.
5491 * libgnarl/s-putaim.adb, libgnarl/s-putaim.ads: Likewise.
5492 * libgnarl/s-qnx.ads, libgnarl/s-solita.adb: Likewise.
5493 * libgnarl/s-solita.ads, libgnarl/s-stusta.adb: Likewise.
5494 * libgnarl/s-stusta.ads, libgnarl/s-taasde.adb: Likewise.
5495 * libgnarl/s-taasde.ads, libgnarl/s-tadeca.adb: Likewise.
5496 * libgnarl/s-tadeca.ads, libgnarl/s-tadert.adb: Likewise.
5497 * libgnarl/s-tadert.ads, libgnarl/s-taenca.adb: Likewise.
5498 * libgnarl/s-taenca.ads, libgnarl/s-taprob.adb: Likewise.
5499 * libgnarl/s-taprob.ads, libgnarl/s-taprop.ads: Likewise.
5500 * libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb: Likewise.
5501 * libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb: Likewise.
5502 * libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb: Likewise.
5503 * libgnarl/s-taprop__rtems.adb, libgnarl/s-taprop__solaris.adb: Likewise.
5504 * libgnarl/s-taprop__vxworks.adb, libgnarl/s-tarest.adb: Likewise.
5505 * libgnarl/s-tarest.ads, libgnarl/s-tasdeb.adb: Likewise.
5506 * libgnarl/s-tasdeb.ads, libgnarl/s-tasinf.adb: Likewise.
5507 * libgnarl/s-tasinf.ads, libgnarl/s-tasinf__linux.adb: Likewise.
5508 * libgnarl/s-tasinf__linux.ads, libgnarl/s-tasinf__mingw.adb: Likewise.
5509 * libgnarl/s-tasinf__mingw.ads, libgnarl/s-tasinf__solaris.adb: Likewise.
5510 * libgnarl/s-tasinf__solaris.ads, libgnarl/s-tasinf__vxworks.ads: Likewise.
5511 * libgnarl/s-tasini.adb, libgnarl/s-tasini.ads: Likewise.
5512 * libgnarl/s-taskin.adb, libgnarl/s-taskin.ads: Likewise.
5513 * libgnarl/s-taspri__dummy.ads, libgnarl/s-taspri__hpux-dce.ads: Likewise.
5514 * libgnarl/s-taspri__lynxos.ads, libgnarl/s-taspri__mingw.ads: Likewise.
5515 * libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
5516 * libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads: Likewise.
5517 * libgnarl/s-taspri__vxworks.ads, libgnarl/s-tasque.adb: Likewise.
5518 * libgnarl/s-tasque.ads, libgnarl/s-tasren.adb: Likewise.
5519 * libgnarl/s-tasren.ads, libgnarl/s-tasres.ads: Likewise.
5520 * libgnarl/s-tassta.adb, libgnarl/s-tassta.ads: Likewise.
5521 * libgnarl/s-tasuti.adb, libgnarl/s-tasuti.ads: Likewise.
5522 * libgnarl/s-tataat.adb, libgnarl/s-tataat.ads: Likewise.
5523 * libgnarl/s-tpinop.adb, libgnarl/s-tpinop.ads: Likewise.
5524 * libgnarl/s-tpoaal.adb, libgnarl/s-tpoben.adb: Likewise.
5525 * libgnarl/s-tpoben.ads, libgnarl/s-tpobmu.adb: Likewise.
5526 * libgnarl/s-tpobmu.ads, libgnarl/s-tpobop.adb: Likewise.
5527 * libgnarl/s-tpobop.ads, libgnarl/s-tpopmo.adb: Likewise.
5528 * libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
5529 * libgnarl/s-tpopsp__posix.adb, libgnarl/s-tpopsp__solaris.adb: Likewise.
5530 * libgnarl/s-tpopsp__tls.adb, libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
5531 * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
5532 * libgnarl/s-tpopsp__vxworks.adb, libgnarl/s-tporft.adb: Likewise.
5533 * libgnarl/s-tposen.adb, libgnarl/s-tposen.ads: Likewise.
5534 * libgnarl/s-vxwext.adb, libgnarl/s-vxwext.ads: Likewise.
5535 * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
5536 * libgnarl/s-vxwext__kernel.adb, libgnarl/s-vxwext__kernel.ads: Likewise.
5537 * libgnarl/s-vxwext__rtp-smp.adb, libgnarl/s-vxwext__rtp.adb: Likewise.
5538 * libgnarl/s-vxwext__rtp.ads, libgnarl/s-vxwork__aarch64.ads: Likewise.
5539 * libgnarl/s-vxwork__arm.ads, libgnarl/s-vxwork__ppc.ads: Likewise.
5540 * libgnarl/s-vxwork__x86.ads, libgnarl/thread.c: Likewise.
5541 * libgnat/a-assert.adb, libgnat/a-assert.ads: Likewise.
5542 * libgnat/a-btgbso.adb, libgnat/a-btgbso.ads: Likewise.
5543 * libgnat/a-calari.adb, libgnat/a-calari.ads: Likewise.
5544 * libgnat/a-calcon.adb, libgnat/a-calcon.ads: Likewise.
5545 * libgnat/a-caldel.adb, libgnat/a-caldel.ads: Likewise.
5546 * libgnat/a-calend.adb, libgnat/a-calend.ads: Likewise.
5547 * libgnat/a-calfor.adb, libgnat/a-calfor.ads: Likewise.
5548 * libgnat/a-catizo.adb, libgnat/a-cbdlli.adb: Likewise.
5549 * libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb: Likewise.
5550 * libgnat/a-cbhama.ads, libgnat/a-cbhase.adb: Likewise.
5551 * libgnat/a-cbhase.ads, libgnat/a-cbmutr.adb: Likewise.
5552 * libgnat/a-cbmutr.ads, libgnat/a-cborma.adb: Likewise.
5553 * libgnat/a-cborma.ads, libgnat/a-cborse.adb: Likewise.
5554 * libgnat/a-cborse.ads, libgnat/a-cbprqu.adb: Likewise.
5555 * libgnat/a-cbprqu.ads, libgnat/a-cbsyqu.adb: Likewise.
5556 * libgnat/a-cbsyqu.ads, libgnat/a-cdlili.adb: Likewise.
5557 * libgnat/a-cdlili.ads, libgnat/a-cfdlli.ads: Likewise.
5558 * libgnat/a-cfhama.ads, libgnat/a-cfhase.ads: Likewise.
5559 * libgnat/a-cfidll.ads, libgnat/a-cfinse.ads: Likewise.
5560 * libgnat/a-cfinve.ads, libgnat/a-cforma.ads: Likewise.
5561 * libgnat/a-cforse.ads, libgnat/a-cgaaso.adb: Likewise.
5562 * libgnat/a-cgaaso.ads, libgnat/a-cgarso.adb: Likewise.
5563 * libgnat/a-cgcaso.adb, libgnat/a-chacon.adb: Likewise.
5564 * libgnat/a-chacon.ads, libgnat/a-chahan.adb: Likewise.
5565 * libgnat/a-chahan.ads, libgnat/a-chlat9.ads: Likewise.
5566 * libgnat/a-chtgbk.adb, libgnat/a-chtgbk.ads: Likewise.
5567 * libgnat/a-chtgbo.adb, libgnat/a-chtgbo.ads: Likewise.
5568 * libgnat/a-chtgfk.adb, libgnat/a-chtgfk.ads: Likewise.
5569 * libgnat/a-chtgfo.adb, libgnat/a-chtgfo.ads: Likewise.
5570 * libgnat/a-chtgke.adb, libgnat/a-chtgke.ads: Likewise.
5571 * libgnat/a-chtgop.adb, libgnat/a-chtgop.ads: Likewise.
5572 * libgnat/a-chzla1.ads, libgnat/a-chzla9.ads: Likewise.
5573 * libgnat/a-cidlli.adb, libgnat/a-cidlli.ads: Likewise.
5574 * libgnat/a-cihama.adb, libgnat/a-cihama.ads: Likewise.
5575 * libgnat/a-cihase.adb, libgnat/a-cihase.ads: Likewise.
5576 * libgnat/a-cimutr.adb, libgnat/a-cimutr.ads: Likewise.
5577 * libgnat/a-ciorma.adb, libgnat/a-ciorma.ads: Likewise.
5578 * libgnat/a-ciormu.adb, libgnat/a-ciormu.ads: Likewise.
5579 * libgnat/a-ciorse.adb, libgnat/a-ciorse.ads: Likewise.
5580 * libgnat/a-clrefi.adb, libgnat/a-clrefi.ads: Likewise.
5581 * libgnat/a-coboho.adb, libgnat/a-coboho.ads: Likewise.
5582 * libgnat/a-cobove.adb, libgnat/a-cobove.ads: Likewise.
5583 * libgnat/a-cofove.ads, libgnat/a-cofuma.ads: Likewise.
5584 * libgnat/a-cofuse.ads, libgnat/a-cofuve.ads: Likewise.
5585 * libgnat/a-cogeso.adb, libgnat/a-cogeso.ads: Likewise.
5586 * libgnat/a-cohama.adb, libgnat/a-cohama.ads: Likewise.
5587 * libgnat/a-cohase.adb, libgnat/a-cohase.ads: Likewise.
5588 * libgnat/a-cohata.ads, libgnat/a-coinho.adb: Likewise.
5589 * libgnat/a-coinho.ads, libgnat/a-coinho__shared.adb: Likewise.
5590 * libgnat/a-coinho__shared.ads, libgnat/a-coinve.adb: Likewise.
5591 * libgnat/a-coinve.ads, libgnat/a-colien.adb: Likewise.
5592 * libgnat/a-colien.ads, libgnat/a-colire.adb: Likewise.
5593 * libgnat/a-colire.ads, libgnat/a-comlin.adb: Likewise.
5594 * libgnat/a-comlin.ads, libgnat/a-comutr.adb: Likewise.
5595 * libgnat/a-comutr.ads, libgnat/a-conhel.adb: Likewise.
5596 * libgnat/a-conhel.ads, libgnat/a-convec.adb: Likewise.
5597 * libgnat/a-convec.ads, libgnat/a-coorma.adb: Likewise.
5598 * libgnat/a-coorma.ads, libgnat/a-coormu.adb: Likewise.
5599 * libgnat/a-coormu.ads, libgnat/a-coorse.adb: Likewise.
5600 * libgnat/a-coorse.ads, libgnat/a-coprnu.adb: Likewise.
5601 * libgnat/a-coprnu.ads, libgnat/a-costso.adb: Likewise.
5602 * libgnat/a-costso.ads, libgnat/a-crbltr.ads: Likewise.
5603 * libgnat/a-crbtgk.adb, libgnat/a-crbtgk.ads: Likewise.
5604 * libgnat/a-crbtgo.adb, libgnat/a-crbtgo.ads: Likewise.
5605 * libgnat/a-crdlli.adb, libgnat/a-crdlli.ads: Likewise.
5606 * libgnat/a-csquin.ads, libgnat/a-cuprqu.adb: Likewise.
5607 * libgnat/a-cuprqu.ads, libgnat/a-cusyqu.adb: Likewise.
5608 * libgnat/a-cusyqu.ads, libgnat/a-cwila1.ads: Likewise.
5609 * libgnat/a-cwila9.ads, libgnat/a-decima.adb: Likewise.
5610 * libgnat/a-decima.ads, libgnat/a-decima__128.ads: Likewise.
5611 * libgnat/a-dhfina.adb, libgnat/a-dhfina.ads: Likewise.
5612 * libgnat/a-diocst.adb, libgnat/a-diocst.ads: Likewise.
5613 * libgnat/a-direct.adb, libgnat/a-direct.ads: Likewise.
5614 * libgnat/a-direio.adb, libgnat/a-direio.ads: Likewise.
5615 * libgnat/a-dirval.adb, libgnat/a-dirval.ads: Likewise.
5616 * libgnat/a-dirval__mingw.adb, libgnat/a-einuoc.adb: Likewise.
5617 * libgnat/a-einuoc.ads, libgnat/a-elchha.adb: Likewise.
5618 * libgnat/a-elchha.ads, libgnat/a-envvar.adb: Likewise.
5619 * libgnat/a-excach.adb, libgnat/a-except.adb: Likewise.
5620 * libgnat/a-except.ads, libgnat/a-exctra.adb: Likewise.
5621 * libgnat/a-exctra.ads, libgnat/a-exexda.adb: Likewise.
5622 * libgnat/a-exexpr.adb, libgnat/a-exextr.adb: Likewise.
5623 * libgnat/a-exstat.adb, libgnat/a-finali.adb: Likewise.
5624 * libgnat/a-finali.ads, libgnat/a-locale.adb: Likewise.
5625 * libgnat/a-locale.ads, libgnat/a-nagefl.ads: Likewise.
5626 * libgnat/a-naliop.ads, libgnat/a-naliop__nolibm.ads: Likewise.
5627 * libgnat/a-nallfl.ads, libgnat/a-nallfl__wraplf.ads: Likewise.
5628 * libgnat/a-nalofl.ads, libgnat/a-nalofl__simd.ads: Likewise.
5629 * libgnat/a-nashfl.ads, libgnat/a-nashfl__wraplf.ads: Likewise.
5630 * libgnat/a-nbnbig.adb, libgnat/a-nbnbin.adb: Likewise.
5631 * libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb: Likewise.
5632 * libgnat/a-ngcefu.adb, libgnat/a-ngcoar.adb: Likewise.
5633 * libgnat/a-ngcoty.adb, libgnat/a-ngcoty.ads: Likewise.
5634 * libgnat/a-ngelfu.adb, libgnat/a-ngelfu.ads: Likewise.
5635 * libgnat/a-ngrear.adb, libgnat/a-ngrear.ads: Likewise.
5636 * libgnat/a-nuauco.ads, libgnat/a-nuauco__x86.ads: Likewise.
5637 * libgnat/a-nuaufl.ads, libgnat/a-nuaufl__simd.ads: Likewise.
5638 * libgnat/a-nuaufl__wraplf.ads, libgnat/a-nudira.adb: Likewise.
5639 * libgnat/a-nudira.ads, libgnat/a-nuflra.adb: Likewise.
5640 * libgnat/a-nuflra.ads, libgnat/a-numaux.ads: Likewise.
5641 * libgnat/a-rbtgbk.adb, libgnat/a-rbtgbk.ads: Likewise.
5642 * libgnat/a-rbtgbo.adb, libgnat/a-rbtgbo.ads: Likewise.
5643 * libgnat/a-rbtgso.adb, libgnat/a-rbtgso.ads: Likewise.
5644 * libgnat/a-sbecin.adb, libgnat/a-sbecin.ads: Likewise.
5645 * libgnat/a-sbhcin.adb, libgnat/a-sbhcin.ads: Likewise.
5646 * libgnat/a-sblcin.adb, libgnat/a-sblcin.ads: Likewise.
5647 * libgnat/a-secain.adb, libgnat/a-secain.ads: Likewise.
5648 * libgnat/a-sequio.adb, libgnat/a-sequio.ads: Likewise.
5649 * libgnat/a-sfecin.ads, libgnat/a-sfhcin.ads: Likewise.
5650 * libgnat/a-sflcin.ads, libgnat/a-shcain.adb: Likewise.
5651 * libgnat/a-shcain.ads, libgnat/a-siocst.adb: Likewise.
5652 * libgnat/a-siocst.ads, libgnat/a-slcain.adb: Likewise.
5653 * libgnat/a-slcain.ads, libgnat/a-ssicst.adb: Likewise.
5654 * libgnat/a-ssicst.ads, libgnat/a-stboha.adb: Likewise.
5655 * libgnat/a-stbubo.adb, libgnat/a-stbubo.ads: Likewise.
5656 * libgnat/a-stbufi.adb, libgnat/a-stbufi.ads: Likewise.
5657 * libgnat/a-stbufo.adb, libgnat/a-stbufo.ads: Likewise.
5658 * libgnat/a-stbuun.adb, libgnat/a-stbuut.adb: Likewise.
5659 * libgnat/a-stbuut.ads, libgnat/a-stmaco.ads: Likewise.
5660 * libgnat/a-storio.adb, libgnat/a-strbou.adb: Likewise.
5661 * libgnat/a-strbou.ads, libgnat/a-stream.adb: Likewise.
5662 * libgnat/a-stream.ads, libgnat/a-strfix.adb: Likewise.
5663 * libgnat/a-strhas.adb, libgnat/a-strmap.adb: Likewise.
5664 * libgnat/a-strmap.ads, libgnat/a-strsea.adb: Likewise.
5665 * libgnat/a-strsea.ads, libgnat/a-strsto.ads: Likewise.
5666 * libgnat/a-strsup.adb, libgnat/a-strsup.ads: Likewise.
5667 * libgnat/a-strunb.adb, libgnat/a-strunb.ads: Likewise.
5668 * libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads: Likewise.
5669 * libgnat/a-ststbo.adb, libgnat/a-ststbo.ads: Likewise.
5670 * libgnat/a-ststio.adb, libgnat/a-ststio.ads: Likewise.
5671 * libgnat/a-ststun.adb, libgnat/a-ststun.ads: Likewise.
5672 * libgnat/a-sttebu.adb, libgnat/a-stunau.adb: Likewise.
5673 * libgnat/a-stunau.ads, libgnat/a-stunau__shared.adb: Likewise.
5674 * libgnat/a-stunha.adb, libgnat/a-stuten.adb: Likewise.
5675 * libgnat/a-stwibo.adb, libgnat/a-stwibo.ads: Likewise.
5676 * libgnat/a-stwifi.adb, libgnat/a-stwiha.adb: Likewise.
5677 * libgnat/a-stwima.adb, libgnat/a-stwima.ads: Likewise.
5678 * libgnat/a-stwise.adb, libgnat/a-stwise.ads: Likewise.
5679 * libgnat/a-stwisu.adb, libgnat/a-stwisu.ads: Likewise.
5680 * libgnat/a-stwiun.adb, libgnat/a-stwiun.ads: Likewise.
5681 * libgnat/a-stwiun__shared.adb, libgnat/a-stwiun__shared.ads: Likewise.
5682 * libgnat/a-stzbou.adb, libgnat/a-stzbou.ads: Likewise.
5683 * libgnat/a-stzfix.adb, libgnat/a-stzhas.adb: Likewise.
5684 * libgnat/a-stzmap.adb, libgnat/a-stzmap.ads: Likewise.
5685 * libgnat/a-stzsea.adb, libgnat/a-stzsea.ads: Likewise.
5686 * libgnat/a-stzsup.adb, libgnat/a-stzsup.ads: Likewise.
5687 * libgnat/a-stzunb.adb, libgnat/a-stzunb.ads: Likewise.
5688 * libgnat/a-stzunb__shared.adb, libgnat/a-stzunb__shared.ads: Likewise.
5689 * libgnat/a-suecin.adb, libgnat/a-suecin.ads: Likewise.
5690 * libgnat/a-suenco.adb, libgnat/a-suenst.adb: Likewise.
5691 * libgnat/a-suewst.adb, libgnat/a-suezst.adb: Likewise.
5692 * libgnat/a-suhcin.adb, libgnat/a-suhcin.ads: Likewise.
5693 * libgnat/a-sulcin.adb, libgnat/a-sulcin.ads: Likewise.
5694 * libgnat/a-suteio.adb, libgnat/a-suteio.ads: Likewise.
5695 * libgnat/a-suteio__shared.adb, libgnat/a-swbwha.adb: Likewise.
5696 * libgnat/a-swmwco.ads, libgnat/a-swunau.adb: Likewise.
5697 * libgnat/a-swunau.ads, libgnat/a-swunau__shared.adb: Likewise.
5698 * libgnat/a-swuwha.adb, libgnat/a-swuwti.adb: Likewise.
5699 * libgnat/a-swuwti.ads, libgnat/a-swuwti__shared.adb: Likewise.
5700 * libgnat/a-szbzha.adb, libgnat/a-szmzco.ads: Likewise.
5701 * libgnat/a-szunau.adb, libgnat/a-szunau.ads: Likewise.
5702 * libgnat/a-szunau__shared.adb, libgnat/a-szuzha.adb: Likewise.
5703 * libgnat/a-szuzti.adb, libgnat/a-szuzti.ads: Likewise.
5704 * libgnat/a-szuzti__shared.adb, libgnat/a-tags.adb: Likewise.
5705 * libgnat/a-tags.ads, libgnat/a-teioed.adb, libgnat/a-teioed.ads: Likewise.
5706 * libgnat/a-textio.adb, libgnat/a-textio.ads: Likewise.
5707 * libgnat/a-tiboio.adb, libgnat/a-ticoau.adb: Likewise.
5708 * libgnat/a-ticoau.ads, libgnat/a-ticoio.adb: Likewise.
5709 * libgnat/a-ticoio.ads, libgnat/a-tideau.adb: Likewise.
5710 * libgnat/a-tideau.ads, libgnat/a-tideio.adb: Likewise.
5711 * libgnat/a-tideio.ads, libgnat/a-tideio__128.adb: Likewise.
5712 * libgnat/a-tienau.adb, libgnat/a-tienau.ads: Likewise.
5713 * libgnat/a-tienio.adb, libgnat/a-tifiau.adb: Likewise.
5714 * libgnat/a-tifiau.ads, libgnat/a-tifiio.adb: Likewise.
5715 * libgnat/a-tifiio__128.adb, libgnat/a-tiflau.adb: Likewise.
5716 * libgnat/a-tiflau.ads, libgnat/a-tiflio.adb: Likewise.
5717 * libgnat/a-tiflio.ads, libgnat/a-tigeau.adb: Likewise.
5718 * libgnat/a-tigeau.ads, libgnat/a-tigeli.adb: Likewise.
5719 * libgnat/a-tiinau.adb, libgnat/a-tiinau.ads: Likewise.
5720 * libgnat/a-tiinio.adb, libgnat/a-tiinio.ads: Likewise.
5721 * libgnat/a-tiinio__128.adb, libgnat/a-timoio.adb: Likewise.
5722 * libgnat/a-timoio.ads, libgnat/a-timoio__128.adb: Likewise.
5723 * libgnat/a-tiocst.adb, libgnat/a-tiocst.ads: Likewise.
5724 * libgnat/a-tirsfi.adb, libgnat/a-tirsfi.ads: Likewise.
5725 * libgnat/a-titest.adb, libgnat/a-undesu.adb: Likewise.
5726 * libgnat/a-wichha.adb, libgnat/a-wichun.adb: Likewise.
5727 * libgnat/a-wichun.ads, libgnat/a-witeio.adb: Likewise.
5728 * libgnat/a-witeio.ads, libgnat/a-wrstfi.adb: Likewise.
5729 * libgnat/a-wrstfi.ads, libgnat/a-wtcoau.adb: Likewise.
5730 * libgnat/a-wtcoau.ads, libgnat/a-wtcoio.adb: Likewise.
5731 * libgnat/a-wtcstr.adb, libgnat/a-wtcstr.ads: Likewise.
5732 * libgnat/a-wtdeau.adb, libgnat/a-wtdeau.ads: Likewise.
5733 * libgnat/a-wtdeio.adb, libgnat/a-wtdeio__128.adb: Likewise.
5734 * libgnat/a-wtedit.adb, libgnat/a-wtedit.ads: Likewise.
5735 * libgnat/a-wtenau.adb, libgnat/a-wtenau.ads: Likewise.
5736 * libgnat/a-wtenio.adb, libgnat/a-wtfiau.adb: Likewise.
5737 * libgnat/a-wtfiau.ads, libgnat/a-wtfiio.adb: Likewise.
5738 * libgnat/a-wtfiio__128.adb, libgnat/a-wtflau.adb: Likewise.
5739 * libgnat/a-wtflau.ads, libgnat/a-wtflio.adb: Likewise.
5740 * libgnat/a-wtgeau.adb, libgnat/a-wtgeau.ads: Likewise.
5741 * libgnat/a-wtinau.adb, libgnat/a-wtinau.ads: Likewise.
5742 * libgnat/a-wtinio.adb, libgnat/a-wtinio__128.adb: Likewise.
5743 * libgnat/a-wtmoio.adb, libgnat/a-wtmoio.ads: Likewise.
5744 * libgnat/a-wtmoio__128.adb, libgnat/a-wttest.adb: Likewise.
5745 * libgnat/a-wwboio.adb, libgnat/a-zchhan.adb: Likewise.
5746 * libgnat/a-zchuni.adb, libgnat/a-zchuni.ads: Likewise.
5747 * libgnat/a-zrstfi.adb, libgnat/a-zrstfi.ads: Likewise.
5748 * libgnat/a-ztcoau.adb, libgnat/a-ztcoio.adb: Likewise.
5749 * libgnat/a-ztcstr.adb, libgnat/a-ztcstr.ads: Likewise.
5750 * libgnat/a-ztdeau.adb, libgnat/a-ztdeau.ads: Likewise.
5751 * libgnat/a-ztdeio.adb, libgnat/a-ztdeio__128.adb: Likewise.
5752 * libgnat/a-ztedit.adb, libgnat/a-ztedit.ads: Likewise.
5753 * libgnat/a-ztenau.adb, libgnat/a-ztenau.ads: Likewise.
5754 * libgnat/a-ztenio.adb, libgnat/a-ztexio.adb: Likewise.
5755 * libgnat/a-ztexio.ads, libgnat/a-ztfiau.adb: Likewise.
5756 * libgnat/a-ztfiau.ads, libgnat/a-ztfiio.adb: Likewise.
5757 * libgnat/a-ztfiio__128.adb, libgnat/a-ztflau.adb: Likewise.
5758 * libgnat/a-ztflau.ads, libgnat/a-ztflio.adb: Likewise.
5759 * libgnat/a-ztgeau.adb, libgnat/a-ztgeau.ads: Likewise.
5760 * libgnat/a-ztinau.adb, libgnat/a-ztinau.ads: Likewise.
5761 * libgnat/a-ztinio.adb, libgnat/a-ztinio__128.adb: Likewise.
5762 * libgnat/a-ztmoio.adb, libgnat/a-ztmoio__128.adb: Likewise.
5763 * libgnat/a-zttest.adb, libgnat/a-zzboio.adb: Likewise.
5764 * libgnat/g-allein.ads, libgnat/g-alleve.adb: Likewise.
5765 * libgnat/g-alleve.ads, libgnat/g-alleve__hard.adb: Likewise.
5766 * libgnat/g-alleve__hard.ads, libgnat/g-altcon.adb: Likewise.
5767 * libgnat/g-altcon.ads, libgnat/g-altive.ads: Likewise.
5768 * libgnat/g-alveop.adb, libgnat/g-alveop.ads: Likewise.
5769 * libgnat/g-alvety.ads, libgnat/g-alvevi.ads: Likewise.
5770 * libgnat/g-arrspl.adb, libgnat/g-arrspl.ads, libgnat/g-awk.adb: Likewise.
5771 * libgnat/g-awk.ads, libgnat/g-binenv.adb, libgnat/g-binenv.ads: Likewise.
5772 * libgnat/g-binsea.adb, libgnat/g-binsea.ads: Likewise.
5773 * libgnat/g-brapre.ads, libgnat/g-bubsor.adb: Likewise.
5774 * libgnat/g-bubsor.ads, libgnat/g-busora.adb: Likewise.
5775 * libgnat/g-busora.ads, libgnat/g-busorg.adb: Likewise.
5776 * libgnat/g-busorg.ads, libgnat/g-byorma.adb: Likewise.
5777 * libgnat/g-byorma.ads, libgnat/g-bytswa.adb: Likewise.
5778 * libgnat/g-bytswa.ads, libgnat/g-calend.adb: Likewise.
5779 * libgnat/g-calend.ads, libgnat/g-casuti.adb: Likewise.
5780 * libgnat/g-casuti.ads, libgnat/g-catiio.adb: Likewise.
5781 * libgnat/g-catiio.ads, libgnat/g-cgi.adb, libgnat/g-cgi.ads: Likewise.
5782 * libgnat/g-cgicoo.adb, libgnat/g-cgicoo.ads: Likewise.
5783 * libgnat/g-cgideb.adb, libgnat/g-cgideb.ads: Likewise.
5784 * libgnat/g-comlin.adb, libgnat/g-comlin.ads: Likewise.
5785 * libgnat/g-comver.adb, libgnat/g-comver.ads: Likewise.
5786 * libgnat/g-cppexc.adb, libgnat/g-cppexc.ads, libgnat/g-crc32.adb: Likewise.
5787 * libgnat/g-crc32.ads, libgnat/g-ctrl_c.adb, libgnat/g-ctrl_c.ads: Likewise.
5788 * libgnat/g-curexc.ads, libgnat/g-debpoo.adb: Likewise.
5789 * libgnat/g-debpoo.ads, libgnat/g-debuti.adb: Likewise.
5790 * libgnat/g-debuti.ads, libgnat/g-decstr.adb: Likewise.
5791 * libgnat/g-decstr.ads, libgnat/g-deutst.ads: Likewise.
5792 * libgnat/g-diopit.adb, libgnat/g-diopit.ads: Likewise.
5793 * libgnat/g-dirope.adb, libgnat/g-dirope.ads: Likewise.
5794 * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads: Likewise.
5795 * libgnat/g-dyntab.adb, libgnat/g-dyntab.ads: Likewise.
5796 * libgnat/g-eacodu.adb, libgnat/g-encstr.adb: Likewise.
5797 * libgnat/g-encstr.ads, libgnat/g-enutst.ads: Likewise.
5798 * libgnat/g-excact.adb, libgnat/g-excact.ads: Likewise.
5799 * libgnat/g-except.ads, libgnat/g-exctra.adb: Likewise.
5800 * libgnat/g-exctra.ads, libgnat/g-expect.adb: Likewise.
5801 * libgnat/g-expect.ads, libgnat/g-exptty.adb: Likewise.
5802 * libgnat/g-exptty.ads, libgnat/g-flocon.ads: Likewise.
5803 * libgnat/g-forstr.adb, libgnat/g-forstr.ads: Likewise.
5804 * libgnat/g-gfmafu.ads, libgnat/g-graphs.adb: Likewise.
5805 * libgnat/g-graphs.ads, libgnat/g-heasor.adb: Likewise.
5806 * libgnat/g-heasor.ads, libgnat/g-hesora.adb: Likewise.
5807 * libgnat/g-hesora.ads, libgnat/g-hesorg.adb: Likewise.
5808 * libgnat/g-hesorg.ads, libgnat/g-htable.adb: Likewise.
5809 * libgnat/g-htable.ads, libgnat/g-io.adb, libgnat/g-io.ads: Likewise.
5810 * libgnat/g-io_aux.adb, libgnat/g-io_aux.ads, libgnat/g-lists.adb: Likewise.
5811 * libgnat/g-lists.ads, libgnat/g-locfil.adb, libgnat/g-locfil.ads: Likewise.
5812 * libgnat/g-mbdira.adb, libgnat/g-mbdira.ads: Likewise.
5813 * libgnat/g-mbflra.adb, libgnat/g-mbflra.ads, libgnat/g-md5.adb: Likewise.
5814 * libgnat/g-md5.ads, libgnat/g-memdum.adb, libgnat/g-memdum.ads: Likewise.
5815 * libgnat/g-moreex.adb, libgnat/g-moreex.ads: Likewise.
5816 * libgnat/g-os_lib.adb, libgnat/g-os_lib.ads: Likewise.
5817 * libgnat/g-pehage.adb, libgnat/g-pehage.ads: Likewise.
5818 * libgnat/g-rannum.adb, libgnat/g-rannum.ads: Likewise.
5819 * libgnat/g-regexp.adb, libgnat/g-regexp.ads: Likewise.
5820 * libgnat/g-regist.adb, libgnat/g-regist.ads: Likewise.
5821 * libgnat/g-regpat.adb, libgnat/g-regpat.ads: Likewise.
5822 * libgnat/g-rewdat.adb, libgnat/g-rewdat.ads: Likewise.
5823 * libgnat/g-sechas.adb, libgnat/g-sechas.ads: Likewise.
5824 * libgnat/g-sehamd.adb, libgnat/g-sehamd.ads: Likewise.
5825 * libgnat/g-sehash.adb, libgnat/g-sehash.ads: Likewise.
5826 * libgnat/g-sercom.adb, libgnat/g-sercom.ads: Likewise.
5827 * libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb: Likewise.
5828 * libgnat/g-sestin.ads, libgnat/g-sets.adb, libgnat/g-sets.ads: Likewise.
5829 * libgnat/g-sha1.adb, libgnat/g-sha1.ads, libgnat/g-sha224.ads: Likewise.
5830 * libgnat/g-sha256.ads, libgnat/g-sha384.ads: Likewise.
5831 * libgnat/g-sha512.ads, libgnat/g-shsh32.adb: Likewise.
5832 * libgnat/g-shsh32.ads, libgnat/g-shsh64.adb: Likewise.
5833 * libgnat/g-shsh64.ads, libgnat/g-shshco.adb: Likewise.
5834 * libgnat/g-shshco.ads, libgnat/g-soccon.ads: Likewise.
5835 * libgnat/g-socket.adb, libgnat/g-socket.ads: Likewise.
5836 * libgnat/g-socket__dummy.adb, libgnat/g-socket__dummy.ads: Likewise.
5837 * libgnat/g-socpol.adb, libgnat/g-socpol.ads: Likewise.
5838 * libgnat/g-socpol__dummy.adb, libgnat/g-socpol__dummy.ads: Likewise.
5839 * libgnat/g-socthi.adb, libgnat/g-socthi.ads: Likewise.
5840 * libgnat/g-socthi__dummy.adb, libgnat/g-socthi__dummy.ads: Likewise.
5841 * libgnat/g-socthi__mingw.adb, libgnat/g-socthi__mingw.ads: Likewise.
5842 * libgnat/g-socthi__vxworks.adb, libgnat/g-socthi__vxworks.ads: Likewise.
5843 * libgnat/g-soliop.ads, libgnat/g-soliop__lynxos.ads: Likewise.
5844 * libgnat/g-soliop__mingw.ads, libgnat/g-soliop__qnx.ads: Likewise.
5845 * libgnat/g-soliop__solaris.ads, libgnat/g-sopowa.adb: Likewise.
5846 * libgnat/g-sopowa__mingw.adb, libgnat/g-sopowa__posix.adb: Likewise.
5847 * libgnat/g-sothco.adb, libgnat/g-sothco.ads: Likewise.
5848 * libgnat/g-sothco__dummy.adb, libgnat/g-sothco__dummy.ads: Likewise.
5849 * libgnat/g-souinf.ads, libgnat/g-spchge.adb: Likewise.
5850 * libgnat/g-spchge.ads, libgnat/g-speche.adb: Likewise.
5851 * libgnat/g-speche.ads, libgnat/g-spipat.adb: Likewise.
5852 * libgnat/g-spipat.ads, libgnat/g-spitbo.adb: Likewise.
5853 * libgnat/g-spitbo.ads, libgnat/g-spogwa.adb: Likewise.
5854 * libgnat/g-spogwa.ads, libgnat/g-sptabo.ads: Likewise.
5855 * libgnat/g-sptain.ads, libgnat/g-sptavs.ads, libgnat/g-sse.ads: Likewise.
5856 * libgnat/g-ssvety.ads, libgnat/g-sthcso.adb: Likewise.
5857 * libgnat/g-stheme.adb, libgnat/g-strhas.ads: Likewise.
5858 * libgnat/g-string.adb, libgnat/g-string.ads: Likewise.
5859 * libgnat/g-strspl.ads, libgnat/g-stseme.adb: Likewise.
5860 * libgnat/g-stsifd__sockets.adb, libgnat/g-table.adb: Likewise.
5861 * libgnat/g-table.ads, libgnat/g-tasloc.adb, libgnat/g-tasloc.ads: Likewise.
5862 * libgnat/g-timsta.adb, libgnat/g-timsta.ads: Likewise.
5863 * libgnat/g-traceb.adb, libgnat/g-traceb.ads: Likewise.
5864 * libgnat/g-trasym.adb, libgnat/g-trasym.ads, libgnat/g-tty.adb: Likewise.
5865 * libgnat/g-tty.ads, libgnat/g-u3spch.adb, libgnat/g-u3spch.ads: Likewise.
5866 * libgnat/g-utf_32.adb, libgnat/g-utf_32.ads: Likewise.
5867 * libgnat/g-wispch.adb, libgnat/g-wispch.ads: Likewise.
5868 * libgnat/g-wistsp.ads, libgnat/g-zspche.adb: Likewise.
5869 * libgnat/g-zspche.ads, libgnat/g-zstspl.ads, libgnat/gnat.ads: Likewise.
5870 * libgnat/i-c.adb, libgnat/i-cexten.ads: Likewise.
5871 * libgnat/i-cexten__128.ads, libgnat/i-cobol.adb: Likewise.
5872 * libgnat/i-cobol.ads, libgnat/i-cpoint.adb, libgnat/i-cpoint.ads: Likewise.
5873 * libgnat/i-cstrea.adb, libgnat/i-cstrea.ads: Likewise.
5874 * libgnat/i-cstrin.adb, libgnat/i-cstrin.ads: Likewise.
5875 * libgnat/i-fortra.adb, libgnat/i-pacdec.adb: Likewise.
5876 * libgnat/i-pacdec.ads, libgnat/i-vxwoio.adb: Likewise.
5877 * libgnat/i-vxwoio.ads, libgnat/i-vxwork.ads: Likewise.
5878 * libgnat/i-vxwork__x86.ads, libgnat/interfac.ads: Likewise.
5879 * libgnat/interfac__2020.ads, libgnat/memtrack.adb: Likewise.
5880 * libgnat/s-addima.adb, libgnat/s-addima.ads: Likewise.
5881 * libgnat/s-addope.adb, libgnat/s-addope.ads: Likewise.
5882 * libgnat/s-aoinar.adb, libgnat/s-aoinar.ads: Likewise.
5883 * libgnat/s-aomoar.adb, libgnat/s-aomoar.ads: Likewise.
5884 * libgnat/s-aotase.adb, libgnat/s-aotase.ads: Likewise.
5885 * libgnat/s-aridou.adb, libgnat/s-aridou.ads: Likewise.
5886 * libgnat/s-arit128.adb, libgnat/s-arit128.ads: Likewise.
5887 * libgnat/s-arit32.adb, libgnat/s-arit32.ads: Likewise.
5888 * libgnat/s-arit64.adb, libgnat/s-arit64.ads: Likewise.
5889 * libgnat/s-assert.adb, libgnat/s-assert.ads: Likewise.
5890 * libgnat/s-atacco.adb, libgnat/s-atacco.ads: Likewise.
5891 * libgnat/s-atocou.adb, libgnat/s-atocou.ads: Likewise.
5892 * libgnat/s-atocou__builtin.adb, libgnat/s-atoope.ads: Likewise.
5893 * libgnat/s-atopex.adb, libgnat/s-atopex.ads: Likewise.
5894 * libgnat/s-atopri.adb, libgnat/s-atopri.ads: Likewise.
5895 * libgnat/s-auxdec.adb, libgnat/s-auxdec.ads: Likewise.
5896 * libgnat/s-bignum.adb, libgnat/s-bignum.ads: Likewise.
5897 * libgnat/s-bitfie.ads, libgnat/s-bitops.adb: Likewise.
5898 * libgnat/s-bitops.ads, libgnat/s-bituti.adb: Likewise.
5899 * libgnat/s-bituti.ads, libgnat/s-boarop.ads: Likewise.
5900 * libgnat/s-boustr.adb, libgnat/s-boustr.ads: Likewise.
5901 * libgnat/s-bytswa.ads, libgnat/s-carsi8.adb: Likewise.
5902 * libgnat/s-carsi8.ads, libgnat/s-carun8.adb: Likewise.
5903 * libgnat/s-carun8.ads, libgnat/s-casi128.adb: Likewise.
5904 * libgnat/s-casi128.ads, libgnat/s-casi16.adb: Likewise.
5905 * libgnat/s-casi16.ads, libgnat/s-casi32.adb: Likewise.
5906 * libgnat/s-casi32.ads, libgnat/s-casi64.adb: Likewise.
5907 * libgnat/s-casi64.ads, libgnat/s-casuti.adb: Likewise.
5908 * libgnat/s-casuti.ads, libgnat/s-caun128.adb: Likewise.
5909 * libgnat/s-caun128.ads, libgnat/s-caun16.adb: Likewise.
5910 * libgnat/s-caun16.ads, libgnat/s-caun32.adb: Likewise.
5911 * libgnat/s-caun32.ads, libgnat/s-caun64.adb: Likewise.
5912 * libgnat/s-caun64.ads, libgnat/s-chepoo.ads: Likewise.
5913 * libgnat/s-commun.adb, libgnat/s-commun.ads: Likewise.
5914 * libgnat/s-conca2.adb, libgnat/s-conca2.ads: Likewise.
5915 * libgnat/s-conca3.adb, libgnat/s-conca3.ads: Likewise.
5916 * libgnat/s-conca4.adb, libgnat/s-conca4.ads: Likewise.
5917 * libgnat/s-conca5.adb, libgnat/s-conca5.ads: Likewise.
5918 * libgnat/s-conca6.adb, libgnat/s-conca6.ads: Likewise.
5919 * libgnat/s-conca7.adb, libgnat/s-conca7.ads: Likewise.
5920 * libgnat/s-conca8.adb, libgnat/s-conca8.ads: Likewise.
5921 * libgnat/s-conca9.adb, libgnat/s-conca9.ads, libgnat/s-crc32.adb: Likewise.
5922 * libgnat/s-crc32.ads, libgnat/s-crtl.ads, libgnat/s-dfmkio.ads: Likewise.
5923 * libgnat/s-dfmopr.ads, libgnat/s-dgmgop.ads: Likewise.
5924 * libgnat/s-diflio.adb, libgnat/s-diflio.ads: Likewise.
5925 * libgnat/s-diflmk.ads, libgnat/s-digemk.ads: Likewise.
5926 * libgnat/s-diinio.adb, libgnat/s-diinio.ads: Likewise.
5927 * libgnat/s-dilomk.ads, libgnat/s-dim.ads, libgnat/s-dimkio.ads: Likewise.
5928 * libgnat/s-dimmks.ads, libgnat/s-direio.adb: Likewise.
5929 * libgnat/s-direio.ads, libgnat/s-dlmkio.ads: Likewise.
5930 * libgnat/s-dlmopr.ads, libgnat/s-dmotpr.ads: Likewise.
5931 * libgnat/s-dorepr.adb, libgnat/s-dorepr__fma.adb: Likewise.
5932 * libgnat/s-dourea.adb, libgnat/s-dourea.ads: Likewise.
5933 * libgnat/s-dsaser.ads, libgnat/s-dwalin.adb: Likewise.
5934 * libgnat/s-dwalin.ads, libgnat/s-elaall.adb: Likewise.
5935 * libgnat/s-elaall.ads, libgnat/s-excdeb.adb: Likewise.
5936 * libgnat/s-excdeb.ads, libgnat/s-except.adb: Likewise.
5937 * libgnat/s-except.ads, libgnat/s-excmac__arm.adb: Likewise.
5938 * libgnat/s-excmac__arm.ads, libgnat/s-excmac__gcc.adb: Likewise.
5939 * libgnat/s-excmac__gcc.ads, libgnat/s-exctab.adb: Likewise.
5940 * libgnat/s-exctab.ads, libgnat/s-exctra.adb: Likewise.
5941 * libgnat/s-exctra.ads, libgnat/s-exnflt.ads: Likewise.
5942 * libgnat/s-exnint.adb, libgnat/s-exnint.ads: Likewise.
5943 * libgnat/s-exnlfl.ads, libgnat/s-exnllf.adb: Likewise.
5944 * libgnat/s-exnllf.ads, libgnat/s-exnlli.adb: Likewise.
5945 * libgnat/s-exnlli.ads, libgnat/s-exnllli.ads: Likewise.
5946 * libgnat/s-expint.adb, libgnat/s-expint.ads: Likewise.
5947 * libgnat/s-explli.adb, libgnat/s-explli.ads: Likewise.
5948 * libgnat/s-expllli.ads, libgnat/s-explllu.ads: Likewise.
5949 * libgnat/s-expllu.adb, libgnat/s-expllu.ads: Likewise.
5950 * libgnat/s-expmod.adb, libgnat/s-expmod.ads: Likewise.
5951 * libgnat/s-exponn.adb, libgnat/s-exponn.ads: Likewise.
5952 * libgnat/s-exponr.adb, libgnat/s-exponr.ads: Likewise.
5953 * libgnat/s-expont.adb, libgnat/s-expont.ads: Likewise.
5954 * libgnat/s-exponu.adb, libgnat/s-exponu.ads: Likewise.
5955 * libgnat/s-expuns.adb, libgnat/s-expuns.ads: Likewise.
5956 * libgnat/s-fatflt.ads, libgnat/s-fatgen.adb: Likewise.
5957 * libgnat/s-fatgen.ads, libgnat/s-fatlfl.ads: Likewise.
5958 * libgnat/s-fatllf.ads, libgnat/s-ficobl.ads: Likewise.
5959 * libgnat/s-filatt.ads, libgnat/s-fileio.adb: Likewise.
5960 * libgnat/s-fileio.ads, libgnat/s-finmas.adb: Likewise.
5961 * libgnat/s-finmas.ads, libgnat/s-finroo.adb: Likewise.
5962 * libgnat/s-finroo.ads, libgnat/s-flocon.adb: Likewise.
5963 * libgnat/s-flocon.ads, libgnat/s-flocon__none.adb: Likewise.
5964 * libgnat/s-fode128.ads, libgnat/s-fode32.ads: Likewise.
5965 * libgnat/s-fode64.ads, libgnat/s-fofi128.ads: Likewise.
5966 * libgnat/s-fofi32.ads, libgnat/s-fofi64.ads: Likewise.
5967 * libgnat/s-fore_d.adb, libgnat/s-fore_d.ads: Likewise.
5968 * libgnat/s-fore_f.adb, libgnat/s-fore_f.ads: Likewise.
5969 * libgnat/s-forrea.adb, libgnat/s-forrea.ads: Likewise.
5970 * libgnat/s-gearop.adb, libgnat/s-gearop.ads: Likewise.
5971 * libgnat/s-genbig.adb, libgnat/s-genbig.ads: Likewise.
5972 * libgnat/s-geveop.adb, libgnat/s-geveop.ads: Likewise.
5973 * libgnat/s-gloloc.adb, libgnat/s-gloloc.ads: Likewise.
5974 * libgnat/s-gloloc__mingw.adb, libgnat/s-htable.adb: Likewise.
5975 * libgnat/s-htable.ads, libgnat/s-imageb.adb: Likewise.
5976 * libgnat/s-imageb.ads, libgnat/s-imaged.adb: Likewise.
5977 * libgnat/s-imaged.ads, libgnat/s-imagef.adb: Likewise.
5978 * libgnat/s-imagef.ads, libgnat/s-imagei.adb: Likewise.
5979 * libgnat/s-imagei.ads, libgnat/s-imagen.adb: Likewise.
5980 * libgnat/s-imagen.ads, libgnat/s-imager.adb: Likewise.
5981 * libgnat/s-imager.ads, libgnat/s-imageu.adb: Likewise.
5982 * libgnat/s-imageu.ads, libgnat/s-imagew.adb: Likewise.
5983 * libgnat/s-imagew.ads, libgnat/s-imde128.ads: Likewise.
5984 * libgnat/s-imde32.ads, libgnat/s-imde64.ads: Likewise.
5985 * libgnat/s-imen16.ads, libgnat/s-imen32.ads: Likewise.
5986 * libgnat/s-imenu8.ads, libgnat/s-imfi128.ads: Likewise.
5987 * libgnat/s-imfi32.ads, libgnat/s-imfi64.ads: Likewise.
5988 * libgnat/s-imgbiu.adb, libgnat/s-imgbiu.ads: Likewise.
5989 * libgnat/s-imgboo.adb, libgnat/s-imgboo.ads: Likewise.
5990 * libgnat/s-imgcha.adb, libgnat/s-imgcha.ads: Likewise.
5991 * libgnat/s-imgflt.ads, libgnat/s-imgint.adb: Likewise.
5992 * libgnat/s-imgint.ads, libgnat/s-imglfl.ads: Likewise.
5993 * libgnat/s-imgllb.adb, libgnat/s-imgllb.ads: Likewise.
5994 * libgnat/s-imgllf.ads, libgnat/s-imglli.adb: Likewise.
5995 * libgnat/s-imglli.ads, libgnat/s-imglllb.ads: Likewise.
5996 * libgnat/s-imgllli.ads, libgnat/s-imglllu.ads: Likewise.
5997 * libgnat/s-imglllw.ads, libgnat/s-imgllu.adb: Likewise.
5998 * libgnat/s-imgllu.ads, libgnat/s-imgllw.adb: Likewise.
5999 * libgnat/s-imgllw.ads, libgnat/s-imgrea.adb: Likewise.
6000 * libgnat/s-imgrea.ads, libgnat/s-imguns.adb: Likewise.
6001 * libgnat/s-imguns.ads, libgnat/s-imguti.adb: Likewise.
6002 * libgnat/s-imguti.ads, libgnat/s-imgwch.adb: Likewise.
6003 * libgnat/s-imgwch.ads, libgnat/s-imgwiu.adb: Likewise.
6004 * libgnat/s-imgwiu.ads, libgnat/s-io.adb, libgnat/s-io.ads: Likewise.
6005 * libgnat/s-llflex.ads, libgnat/s-maccod.ads: Likewise.
6006 * libgnat/s-mantis.adb, libgnat/s-mantis.ads: Likewise.
6007 * libgnat/s-mastop.adb, libgnat/s-mastop.ads: Likewise.
6008 * libgnat/s-memcop.ads, libgnat/s-memory.adb: Likewise.
6009 * libgnat/s-memory.ads, libgnat/s-mmap.adb, libgnat/s-mmap.ads: Likewise.
6010 * libgnat/s-mmauni__long.ads, libgnat/s-mmosin__mingw.adb: Likewise.
6011 * libgnat/s-mmosin__mingw.ads, libgnat/s-mmosin__unix.adb: Likewise.
6012 * libgnat/s-mmosin__unix.ads, libgnat/s-multip.adb: Likewise.
6013 * libgnat/s-objrea.adb, libgnat/s-objrea.ads: Likewise.
6014 * libgnat/s-optide.adb, libgnat/s-os_lib.adb: Likewise.
6015 * libgnat/s-os_lib.ads, libgnat/s-osprim.ads: Likewise.
6016 * libgnat/s-osprim__darwin.adb, libgnat/s-osprim__lynxos.ads: Likewise.
6017 * libgnat/s-osprim__mingw.adb, libgnat/s-osprim__posix.adb: Likewise.
6018 * libgnat/s-osprim__posix2008.adb, libgnat/s-osprim__rtems.adb: Likewise.
6019 * libgnat/s-osprim__solaris.adb, libgnat/s-osprim__unix.adb: Likewise.
6020 * libgnat/s-osprim__x32.adb, libgnat/s-pack03.adb: Likewise.
6021 * libgnat/s-pack03.ads, libgnat/s-pack05.adb: Likewise.
6022 * libgnat/s-pack05.ads, libgnat/s-pack06.adb: Likewise.
6023 * libgnat/s-pack06.ads, libgnat/s-pack07.adb: Likewise.
6024 * libgnat/s-pack07.ads, libgnat/s-pack09.adb: Likewise.
6025 * libgnat/s-pack09.ads, libgnat/s-pack10.adb: Likewise.
6026 * libgnat/s-pack10.ads, libgnat/s-pack100.adb: Likewise.
6027 * libgnat/s-pack100.ads, libgnat/s-pack101.adb: Likewise.
6028 * libgnat/s-pack101.ads, libgnat/s-pack102.adb: Likewise.
6029 * libgnat/s-pack102.ads, libgnat/s-pack103.adb: Likewise.
6030 * libgnat/s-pack103.ads, libgnat/s-pack104.adb: Likewise.
6031 * libgnat/s-pack104.ads, libgnat/s-pack105.adb: Likewise.
6032 * libgnat/s-pack105.ads, libgnat/s-pack106.adb: Likewise.
6033 * libgnat/s-pack106.ads, libgnat/s-pack107.adb: Likewise.
6034 * libgnat/s-pack107.ads, libgnat/s-pack108.adb: Likewise.
6035 * libgnat/s-pack108.ads, libgnat/s-pack109.adb: Likewise.
6036 * libgnat/s-pack109.ads, libgnat/s-pack11.adb: Likewise.
6037 * libgnat/s-pack11.ads, libgnat/s-pack110.adb: Likewise.
6038 * libgnat/s-pack110.ads, libgnat/s-pack111.adb: Likewise.
6039 * libgnat/s-pack111.ads, libgnat/s-pack112.adb: Likewise.
6040 * libgnat/s-pack112.ads, libgnat/s-pack113.adb: Likewise.
6041 * libgnat/s-pack113.ads, libgnat/s-pack114.adb: Likewise.
6042 * libgnat/s-pack114.ads, libgnat/s-pack115.adb: Likewise.
6043 * libgnat/s-pack115.ads, libgnat/s-pack116.adb: Likewise.
6044 * libgnat/s-pack116.ads, libgnat/s-pack117.adb: Likewise.
6045 * libgnat/s-pack117.ads, libgnat/s-pack118.adb: Likewise.
6046 * libgnat/s-pack118.ads, libgnat/s-pack119.adb: Likewise.
6047 * libgnat/s-pack119.ads, libgnat/s-pack12.adb: Likewise.
6048 * libgnat/s-pack12.ads, libgnat/s-pack120.adb: Likewise.
6049 * libgnat/s-pack120.ads, libgnat/s-pack121.adb: Likewise.
6050 * libgnat/s-pack121.ads, libgnat/s-pack122.adb: Likewise.
6051 * libgnat/s-pack122.ads, libgnat/s-pack123.adb: Likewise.
6052 * libgnat/s-pack123.ads, libgnat/s-pack124.adb: Likewise.
6053 * libgnat/s-pack124.ads, libgnat/s-pack125.adb: Likewise.
6054 * libgnat/s-pack125.ads, libgnat/s-pack126.adb: Likewise.
6055 * libgnat/s-pack126.ads, libgnat/s-pack127.adb: Likewise.
6056 * libgnat/s-pack127.ads, libgnat/s-pack13.adb: Likewise.
6057 * libgnat/s-pack13.ads, libgnat/s-pack14.adb: Likewise.
6058 * libgnat/s-pack14.ads, libgnat/s-pack15.adb: Likewise.
6059 * libgnat/s-pack15.ads, libgnat/s-pack17.adb: Likewise.
6060 * libgnat/s-pack17.ads, libgnat/s-pack18.adb: Likewise.
6061 * libgnat/s-pack18.ads, libgnat/s-pack19.adb: Likewise.
6062 * libgnat/s-pack19.ads, libgnat/s-pack20.adb: Likewise.
6063 * libgnat/s-pack20.ads, libgnat/s-pack21.adb: Likewise.
6064 * libgnat/s-pack21.ads, libgnat/s-pack22.adb: Likewise.
6065 * libgnat/s-pack22.ads, libgnat/s-pack23.adb: Likewise.
6066 * libgnat/s-pack23.ads, libgnat/s-pack24.adb: Likewise.
6067 * libgnat/s-pack24.ads, libgnat/s-pack25.adb: Likewise.
6068 * libgnat/s-pack25.ads, libgnat/s-pack26.adb: Likewise.
6069 * libgnat/s-pack26.ads, libgnat/s-pack27.adb: Likewise.
6070 * libgnat/s-pack27.ads, libgnat/s-pack28.adb: Likewise.
6071 * libgnat/s-pack28.ads, libgnat/s-pack29.adb: Likewise.
6072 * libgnat/s-pack29.ads, libgnat/s-pack30.adb: Likewise.
6073 * libgnat/s-pack30.ads, libgnat/s-pack31.adb: Likewise.
6074 * libgnat/s-pack31.ads, libgnat/s-pack33.adb: Likewise.
6075 * libgnat/s-pack33.ads, libgnat/s-pack34.adb: Likewise.
6076 * libgnat/s-pack34.ads, libgnat/s-pack35.adb: Likewise.
6077 * libgnat/s-pack35.ads, libgnat/s-pack36.adb: Likewise.
6078 * libgnat/s-pack36.ads, libgnat/s-pack37.adb: Likewise.
6079 * libgnat/s-pack37.ads, libgnat/s-pack38.adb: Likewise.
6080 * libgnat/s-pack38.ads, libgnat/s-pack39.adb: Likewise.
6081 * libgnat/s-pack39.ads, libgnat/s-pack40.adb: Likewise.
6082 * libgnat/s-pack40.ads, libgnat/s-pack41.adb: Likewise.
6083 * libgnat/s-pack41.ads, libgnat/s-pack42.adb: Likewise.
6084 * libgnat/s-pack42.ads, libgnat/s-pack43.adb: Likewise.
6085 * libgnat/s-pack43.ads, libgnat/s-pack44.adb: Likewise.
6086 * libgnat/s-pack44.ads, libgnat/s-pack45.adb: Likewise.
6087 * libgnat/s-pack45.ads, libgnat/s-pack46.adb: Likewise.
6088 * libgnat/s-pack46.ads, libgnat/s-pack47.adb: Likewise.
6089 * libgnat/s-pack47.ads, libgnat/s-pack48.adb: Likewise.
6090 * libgnat/s-pack48.ads, libgnat/s-pack49.adb: Likewise.
6091 * libgnat/s-pack49.ads, libgnat/s-pack50.adb: Likewise.
6092 * libgnat/s-pack50.ads, libgnat/s-pack51.adb: Likewise.
6093 * libgnat/s-pack51.ads, libgnat/s-pack52.adb: Likewise.
6094 * libgnat/s-pack52.ads, libgnat/s-pack53.adb: Likewise.
6095 * libgnat/s-pack53.ads, libgnat/s-pack54.adb: Likewise.
6096 * libgnat/s-pack54.ads, libgnat/s-pack55.adb: Likewise.
6097 * libgnat/s-pack55.ads, libgnat/s-pack56.adb: Likewise.
6098 * libgnat/s-pack56.ads, libgnat/s-pack57.adb: Likewise.
6099 * libgnat/s-pack57.ads, libgnat/s-pack58.adb: Likewise.
6100 * libgnat/s-pack58.ads, libgnat/s-pack59.adb: Likewise.
6101 * libgnat/s-pack59.ads, libgnat/s-pack60.adb: Likewise.
6102 * libgnat/s-pack60.ads, libgnat/s-pack61.adb: Likewise.
6103 * libgnat/s-pack61.ads, libgnat/s-pack62.adb: Likewise.
6104 * libgnat/s-pack62.ads, libgnat/s-pack63.adb: Likewise.
6105 * libgnat/s-pack63.ads, libgnat/s-pack65.adb: Likewise.
6106 * libgnat/s-pack65.ads, libgnat/s-pack66.adb: Likewise.
6107 * libgnat/s-pack66.ads, libgnat/s-pack67.adb: Likewise.
6108 * libgnat/s-pack67.ads, libgnat/s-pack68.adb: Likewise.
6109 * libgnat/s-pack68.ads, libgnat/s-pack69.adb: Likewise.
6110 * libgnat/s-pack69.ads, libgnat/s-pack70.adb: Likewise.
6111 * libgnat/s-pack70.ads, libgnat/s-pack71.adb: Likewise.
6112 * libgnat/s-pack71.ads, libgnat/s-pack72.adb: Likewise.
6113 * libgnat/s-pack72.ads, libgnat/s-pack73.adb: Likewise.
6114 * libgnat/s-pack73.ads, libgnat/s-pack74.adb: Likewise.
6115 * libgnat/s-pack74.ads, libgnat/s-pack75.adb: Likewise.
6116 * libgnat/s-pack75.ads, libgnat/s-pack76.adb: Likewise.
6117 * libgnat/s-pack76.ads, libgnat/s-pack77.adb: Likewise.
6118 * libgnat/s-pack77.ads, libgnat/s-pack78.adb: Likewise.
6119 * libgnat/s-pack78.ads, libgnat/s-pack79.adb: Likewise.
6120 * libgnat/s-pack79.ads, libgnat/s-pack80.adb: Likewise.
6121 * libgnat/s-pack80.ads, libgnat/s-pack81.adb: Likewise.
6122 * libgnat/s-pack81.ads, libgnat/s-pack82.adb: Likewise.
6123 * libgnat/s-pack82.ads, libgnat/s-pack83.adb: Likewise.
6124 * libgnat/s-pack83.ads, libgnat/s-pack84.adb: Likewise.
6125 * libgnat/s-pack84.ads, libgnat/s-pack85.adb: Likewise.
6126 * libgnat/s-pack85.ads, libgnat/s-pack86.adb: Likewise.
6127 * libgnat/s-pack86.ads, libgnat/s-pack87.adb: Likewise.
6128 * libgnat/s-pack87.ads, libgnat/s-pack88.adb: Likewise.
6129 * libgnat/s-pack88.ads, libgnat/s-pack89.adb: Likewise.
6130 * libgnat/s-pack89.ads, libgnat/s-pack90.adb: Likewise.
6131 * libgnat/s-pack90.ads, libgnat/s-pack91.adb: Likewise.
6132 * libgnat/s-pack91.ads, libgnat/s-pack92.adb: Likewise.
6133 * libgnat/s-pack92.ads, libgnat/s-pack93.adb: Likewise.
6134 * libgnat/s-pack93.ads, libgnat/s-pack94.adb: Likewise.
6135 * libgnat/s-pack94.ads, libgnat/s-pack95.adb: Likewise.
6136 * libgnat/s-pack95.ads, libgnat/s-pack96.adb: Likewise.
6137 * libgnat/s-pack96.ads, libgnat/s-pack97.adb: Likewise.
6138 * libgnat/s-pack97.ads, libgnat/s-pack98.adb: Likewise.
6139 * libgnat/s-pack98.ads, libgnat/s-pack99.adb: Likewise.
6140 * libgnat/s-pack99.ads, libgnat/s-parame.adb: Likewise.
6141 * libgnat/s-parame.ads, libgnat/s-parame__hpux.ads: Likewise.
6142 * libgnat/s-parame__posix2008.ads, libgnat/s-parame__rtems.adb: Likewise.
6143 * libgnat/s-parame__vxworks.adb, libgnat/s-parame__vxworks.ads: Likewise.
6144 * libgnat/s-parint.adb, libgnat/s-parint.ads: Likewise.
6145 * libgnat/s-pehage.adb, libgnat/s-pehage.ads: Likewise.
6146 * libgnat/s-pooglo.adb, libgnat/s-pooglo.ads: Likewise.
6147 * libgnat/s-pooloc.adb, libgnat/s-pooloc.ads: Likewise.
6148 * libgnat/s-poosiz.adb, libgnat/s-poosiz.ads: Likewise.
6149 * libgnat/s-powflt.ads, libgnat/s-powlfl.ads: Likewise.
6150 * libgnat/s-powllf.ads, libgnat/s-purexc.ads: Likewise.
6151 * libgnat/s-putima.adb, libgnat/s-putima.ads: Likewise.
6152 * libgnat/s-rannum.adb, libgnat/s-rannum.ads: Likewise.
6153 * libgnat/s-ransee.adb, libgnat/s-ransee.ads: Likewise.
6154 * libgnat/s-regexp.adb, libgnat/s-regexp.ads: Likewise.
6155 * libgnat/s-regpat.adb, libgnat/s-regpat.ads: Likewise.
6156 * libgnat/s-resfil.adb, libgnat/s-resfil.ads: Likewise.
6157 * libgnat/s-restri.adb, libgnat/s-restri.ads: Likewise.
6158 * libgnat/s-retsta.ads, libgnat/s-rident.ads, libgnat/s-rpc.adb: Likewise.
6159 * libgnat/s-rpc.ads, libgnat/s-scaval.adb, libgnat/s-scaval.ads: Likewise.
6160 * libgnat/s-scaval__128.adb, libgnat/s-scaval__128.ads: Likewise.
6161 * libgnat/s-secsta.adb, libgnat/s-secsta.ads: Likewise.
6162 * libgnat/s-sequio.adb, libgnat/s-sequio.ads: Likewise.
6163 * libgnat/s-shabig.ads, libgnat/s-shasto.adb: Likewise.
6164 * libgnat/s-shasto.ads, libgnat/s-soflin.adb: Likewise.
6165 * libgnat/s-soflin.ads, libgnat/s-soliin.adb: Likewise.
6166 * libgnat/s-soliin.ads, libgnat/s-spark.ads, libgnat/s-spcuop.adb: Likewise.
6167 * libgnat/s-spcuop.ads, libgnat/s-spsufi.adb: Likewise.
6168 * libgnat/s-spsufi.ads, libgnat/s-stache.adb: Likewise.
6169 * libgnat/s-stache.ads, libgnat/s-stalib.adb: Likewise.
6170 * libgnat/s-stalib.ads, libgnat/s-statxd.adb: Likewise.
6171 * libgnat/s-statxd.ads, libgnat/s-stausa.adb: Likewise.
6172 * libgnat/s-stausa.ads, libgnat/s-stchop.adb: Likewise.
6173 * libgnat/s-stchop.ads, libgnat/s-stchop__limit.ads: Likewise.
6174 * libgnat/s-stchop__vxworks.adb, libgnat/s-stoele.adb: Likewise.
6175 * libgnat/s-stoele.ads, libgnat/s-stopoo.adb: Likewise.
6176 * libgnat/s-stopoo.ads, libgnat/s-stposu.adb: Likewise.
6177 * libgnat/s-stposu.ads, libgnat/s-stratt.adb: Likewise.
6178 * libgnat/s-stratt.ads, libgnat/s-strcom.adb: Likewise.
6179 * libgnat/s-strcom.ads, libgnat/s-strhas.adb: Likewise.
6180 * libgnat/s-strhas.ads, libgnat/s-string.adb: Likewise.
6181 * libgnat/s-string.ads, libgnat/s-ststop.adb: Likewise.
6182 * libgnat/s-ststop.ads, libgnat/s-tasloc.adb: Likewise.
6183 * libgnat/s-tasloc.ads, libgnat/s-traceb.adb: Likewise.
6184 * libgnat/s-traceb.ads, libgnat/s-traceb__hpux.adb: Likewise.
6185 * libgnat/s-traceb__mastop.adb, libgnat/s-traent.adb: Likewise.
6186 * libgnat/s-traent.ads, libgnat/s-trasym.adb: Likewise.
6187 * libgnat/s-trasym.ads, libgnat/s-trasym__dwarf.adb: Likewise.
6188 * libgnat/s-tsmona.adb, libgnat/s-tsmona__linux.adb: Likewise.
6189 * libgnat/s-tsmona__mingw.adb, libgnat/s-unstyp.ads: Likewise.
6190 * libgnat/s-utf_32.adb, libgnat/s-utf_32.ads: Likewise.
6191 * libgnat/s-vade128.ads, libgnat/s-vade32.ads: Likewise.
6192 * libgnat/s-vade64.ads, libgnat/s-vaen16.ads: Likewise.
6193 * libgnat/s-vaen32.ads, libgnat/s-vaenu8.ads: Likewise.
6194 * libgnat/s-vafi128.ads, libgnat/s-vafi32.ads: Likewise.
6195 * libgnat/s-vafi64.ads, libgnat/s-vaispe.adb: Likewise.
6196 * libgnat/s-vaispe.ads, libgnat/s-valboo.adb: Likewise.
6197 * libgnat/s-valboo.ads, libgnat/s-valcha.adb: Likewise.
6198 * libgnat/s-valcha.ads, libgnat/s-valflt.ads: Likewise.
6199 * libgnat/s-valint.adb, libgnat/s-valint.ads: Likewise.
6200 * libgnat/s-vallfl.ads, libgnat/s-valllf.ads: Likewise.
6201 * libgnat/s-vallli.adb, libgnat/s-vallli.ads: Likewise.
6202 * libgnat/s-valllli.ads, libgnat/s-vallllu.ads: Likewise.
6203 * libgnat/s-valllu.adb, libgnat/s-valllu.ads: Likewise.
6204 * libgnat/s-valrea.adb, libgnat/s-valrea.ads: Likewise.
6205 * libgnat/s-valued.adb, libgnat/s-valued.ads: Likewise.
6206 * libgnat/s-valuef.adb, libgnat/s-valuef.ads: Likewise.
6207 * libgnat/s-valuei.adb, libgnat/s-valuei.ads: Likewise.
6208 * libgnat/s-valuen.adb, libgnat/s-valuen.ads: Likewise.
6209 * libgnat/s-valuer.adb, libgnat/s-valuer.ads: Likewise.
6210 * libgnat/s-valueu.adb, libgnat/s-valueu.ads: Likewise.
6211 * libgnat/s-valuns.adb, libgnat/s-valuns.ads: Likewise.
6212 * libgnat/s-valuti.adb, libgnat/s-valuti.ads: Likewise.
6213 * libgnat/s-valwch.adb, libgnat/s-valwch.ads: Likewise.
6214 * libgnat/s-vauspe.adb, libgnat/s-vauspe.ads: Likewise.
6215 * libgnat/s-veboop.adb, libgnat/s-veboop.ads: Likewise.
6216 * libgnat/s-vector.ads, libgnat/s-vercon.adb: Likewise.
6217 * libgnat/s-vercon.ads, libgnat/s-wchcnv.adb: Likewise.
6218 * libgnat/s-wchcnv.ads, libgnat/s-wchcon.adb: Likewise.
6219 * libgnat/s-wchcon.ads, libgnat/s-wchjis.adb: Likewise.
6220 * libgnat/s-wchjis.ads, libgnat/s-wchstw.adb: Likewise.
6221 * libgnat/s-wchstw.ads, libgnat/s-wchwts.adb: Likewise.
6222 * libgnat/s-wchwts.ads, libgnat/s-widboo.adb: Likewise.
6223 * libgnat/s-widboo.ads, libgnat/s-widcha.adb: Likewise.
6224 * libgnat/s-widcha.ads, libgnat/s-widenu.adb: Likewise.
6225 * libgnat/s-widenu.ads, libgnat/s-widint.ads: Likewise.
6226 * libgnat/s-widlli.adb, libgnat/s-widlli.ads: Likewise.
6227 * libgnat/s-widllli.ads, libgnat/s-widlllu.ads: Likewise.
6228 * libgnat/s-widllu.adb, libgnat/s-widllu.ads: Likewise.
6229 * libgnat/s-widthi.adb, libgnat/s-widthi.ads: Likewise.
6230 * libgnat/s-widthu.adb, libgnat/s-widthu.ads: Likewise.
6231 * libgnat/s-widuns.ads, libgnat/s-widwch.adb: Likewise.
6232 * libgnat/s-widwch.ads, libgnat/s-win32.ads, libgnat/s-winext.ads: Likewise.
6233 * libgnat/s-wwdcha.adb, libgnat/s-wwdcha.ads: Likewise.
6234 * libgnat/s-wwdenu.adb, libgnat/s-wwdenu.ads: Likewise.
6235 * libgnat/s-wwdwch.adb, libgnat/s-wwdwch.ads: Likewise.
6236 * libgnat/system-aix.ads, libgnat/system-darwin-arm.ads: Likewise.
6237 * libgnat/system-darwin-ppc.ads, libgnat/system-darwin-x86.ads: Likewise.
6238 * libgnat/system-djgpp.ads, libgnat/system-dragonfly-x86_64.ads: Likewise.
6239 * libgnat/system-freebsd.ads, libgnat/system-hpux-ia64.ads: Likewise.
6240 * libgnat/system-hpux.ads, libgnat/system-linux-alpha.ads: Likewise.
6241 * libgnat/system-linux-arm.ads, libgnat/system-linux-hppa.ads: Likewise.
6242 * libgnat/system-linux-ia64.ads, libgnat/system-linux-m68k.ads: Likewise.
6243 * libgnat/system-linux-mips.ads, libgnat/system-linux-ppc.ads: Likewise.
6244 * libgnat/system-linux-riscv.ads, libgnat/system-linux-s390.ads: Likewise.
6245 * libgnat/system-linux-sh4.ads, libgnat/system-linux-sparc.ads: Likewise.
6246 * libgnat/system-linux-x86.ads, libgnat/system-lynxos178-ppc.ads: Likewise.
6247 * libgnat/system-lynxos178-x86.ads, libgnat/system-mingw.ads: Likewise.
6248 * libgnat/system-qnx-arm.ads, libgnat/system-rtems.ads: Likewise.
6249 * libgnat/system-solaris-sparc.ads: Likewise.
6250 * libgnat/system-solaris-x86.ads: Likewise.
6251 * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
6252 * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
6253 * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
6254 * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
6255 * libgnat/system-vxworks7-aarch64.ads: Likewise.
6256 * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
6257 * libgnat/system-vxworks7-arm.ads: Likewise.
6258 * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
6259 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
6260 * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
6261 * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
6262 * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
6263 * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
6264 * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
6265 * libgnat/system-vxworks7-x86_64-rtp-smp.ads, link.c, live.adb: Likewise.
6266 * live.ads, locales.c, make.adb, make.ads, make_util.adb: Likewise.
6267 * make_util.ads, makeusg.adb, makeusg.ads, mdll-fil.adb: Likewise.
6268 * mdll-fil.ads, mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads: Likewise.
6269 * mingw32.h, mkdir.c, namet-sp.adb, namet-sp.ads, namet.adb: Likewise.
6270 * namet.ads, namet.h, nlists.adb, nlists.ads, nlists.h, opt.adb: Likewise.
6271 * opt.ads, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads: Likewise.
6272 * osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, osint.adb: Likewise.
6273 * osint.ads, output.adb, output.ads, par-ch10.adb, par-ch11.adb: Likewise.
6274 * par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb: Likewise.
6275 * par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch7.adb, par-ch8.adb: Likewise.
6276 * par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb: Likewise.
6277 * par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb, par.adb: Likewise.
6278 * par.ads, par_sco.adb, par_sco.ads: Likewise.
6279 * pprint.adb, pprint.ads, prep.adb, prep.ads: Likewise.
6280 * prepcomp.adb, prepcomp.ads, put_scos.adb, put_scos.ads: Likewise.
6281 * raise-gcc.c, raise.c, raise.h, repinfo-input.adb: Likewise.
6282 * repinfo-input.ads, repinfo.adb, repinfo.ads, repinfo.h: Likewise.
6283 * restrict.adb, restrict.ads, rident.ads, rtfinal.c, rtinit.c: Likewise.
6284 * rtsfind.adb, rtsfind.ads, runtime.h, s-oscons-tmplt.c: Likewise.
6285 * scans.adb, scans.ads, scil_ll.adb, scil_ll.ads, scn.adb: Likewise.
6286 * scn.ads, scng.adb, scng.ads, scos.adb, scos.ads: Likewise.
6287 * scos.h, sdefault.ads, seh_init.c, sem.adb, sem.ads: Likewise.
6288 * sem_aggr.adb, sem_aggr.ads, sem_attr.adb, sem_attr.ads: Likewise.
6289 * sem_aux.adb, sem_aux.ads, sem_case.adb, sem_case.ads: Likewise.
6290 * sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads: Likewise.
6291 * sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads: Likewise.
6292 * sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads: Likewise.
6293 * sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads, sem_ch5.adb: Likewise.
6294 * sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch7.ads: Likewise.
6295 * sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_ch9.ads, sem_dim.adb: Likewise.
6296 * sem_dim.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb: Likewise.
6297 * sem_dist.ads, sem_elab.adb, sem_elab.ads, sem_elim.adb: Likewise.
6298 * sem_elim.ads, sem_eval.adb, sem_eval.ads, sem_intr.adb: Likewise.
6299 * sem_intr.ads, sem_mech.adb, sem_mech.ads, sem_prag.adb: Likewise.
6300 * sem_prag.ads, sem_res.adb, sem_res.ads, sem_scil.adb: Likewise.
6301 * sem_scil.ads, sem_smem.adb, sem_smem.ads, sem_type.adb: Likewise.
6302 * sem_type.ads, sem_util.adb, sem_util.ads, sem_warn.adb: Likewise.
6303 * sem_warn.ads, set_targ.adb, set_targ.ads, sfn_scan.adb: Likewise.
6304 * sfn_scan.ads, sigtramp-arm-qnx.c, sigtramp-armdroid.c: Likewise.
6305 * sigtramp-ios.c, sigtramp-qnx.c: Likewise.
6306 * sigtramp-vxworks-target.h, sigtramp-vxworks.c, sigtramp.h: Likewise.
6307 * sinfo-cn.adb, sinfo-cn.ads, sinfo-utils.adb, sinfo-utils.ads: Likewise.
6308 * sinfo.adb, sinfo.ads, sinput-c.adb, sinput-c.ads, sinput-d.adb: Likewise.
6309 * sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.adb: Likewise.
6310 * sinput.ads, socket.c, spark_xrefs.adb, spark_xrefs.ads: Likewise.
6311 * sprint.adb, sprint.ads, stand.ads: Likewise.
6312 * stringt.adb, stringt.ads, stringt.h, strub.adb, strub.ads: Likewise.
6313 * style.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb: Likewise.
6314 * stylesw.ads, switch-b.adb, switch-b.ads, switch-c.adb: Likewise.
6315 * switch-c.ads, switch-m.adb, switch-m.ads, switch.adb: Likewise.
6316 * switch.ads, sysdep.c, table.adb: Likewise.
6317 * table.ads, targext.c, targparm.adb, targparm.ads, tbuild.adb: Likewise.
6318 * tbuild.ads, tempdir.adb, tempdir.ads, terminals.c, tracebak.c: Likewise.
6319 * treepr.adb, treepr.ads, ttypes.ads, types.adb, types.ads: Likewise.
6320 * types.h, uintp.adb, uintp.ads, uintp.h, uname.adb, uname.ads: Likewise.
6321 * urealp.adb, urealp.ads, urealp.h, usage.adb, usage.ads: Likewise.
6322 * validsw.adb, validsw.ads, vast.adb, vast.ads, warnsw.adb: Likewise.
6323 * warnsw.ads, widechar.adb, widechar.ads, xoscons.adb: Likewise.
6324 * xsnamest.adb, xutil.adb, xutil.ads, gnatvsn.adb: Likewise.
6325 * gnatvsn.ads (Current_Year): Likewise and bump to 2023.
6326
63272023-01-09 Eric Botcazou <ebotcazou@adacore.com>
6328
6329 * exp_ch7.adb (Make_Adjust_Call): Remove unreachable statement.
6330 (Make_Final_Call): Likewise.
6331
63322023-01-09 Eric Botcazou <ebotcazou@adacore.com>
6333
6334 * exp_util.ads (Is_Tag_To_Class_Wide_Conversion): Delete.
6335 (Is_Displacement_Of_Object_Or_Function_Result): Likewise.
6336 * exp_util.adb (Is_Tag_To_Class_Wide_Conversion): Rename to...
6337 (Is_Temporary_For_Interface_Object): ...this.
6338 (Is_Finalizable_Transient): Adjust call to above renaming.
6339 (Is_Displacement_Of_Object_Or_Function_Result): Delete.
6340 (Requires_Cleanup_Actions): Remove special handling of the
6341 temporaries created for interface objects.
6342 * exp_ch7.adb (Build_Finalizer): Likewise.
6343
d901bf8a
GA
63442023-01-07 LIU Hao <lh_mouse@126.com>
6345
6346 PR middle-end/108300
6347 * adaint.c: Define `WIN32_LEAN_AND_MEAN` before `#include
6348 <windows.h>`.
6349 * cio.c: Likewise.
6350 * ctrl_c.c: Likewise.
6351 * expect.c: Likewise.
6352 * gsocket.h: Likewise.
6353 * mingw32.h: Likewise.
6354 * mkdir.c: Likewise.
6355 * rtfinal.c: Likewise.
6356 * rtinit.c: Likewise.
6357 * seh_init.c: Likewise.
6358 * sysdep.c: Likewise.
6359 * terminals.c: Likewise.
6360 * tracebak.c: Likewise.
6361
53ef7c1d
GA
63622023-01-05 Eric Botcazou <ebotcazou@adacore.com>
6363
6364 * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: Tweak.
6365
63662023-01-05 Eric Botcazou <ebotcazou@adacore.com>
6367
6368 * exp_ch3.adb (Expand_N_Object_Declaration): Rewrite the end of the
6369 handling of objects with (class-wide) interface type by using the
6370 same idiom as the other cases generating a renaming.
6371 * exp_util.adb (Is_Displacement_Of_Object_Or_Function_Result): Tweak
6372 pattern matching code and exclude special return objects.
6373 (Requires_Cleanup_Actions): Adjust comment.
6374 * exp_ch7.adb (Build_Finalizer): Likewise.
6375
63762023-01-05 Piotr Trojanek <trojanek@adacore.com>
6377
6378 * freeze.adb (Build_Renamed_Body): Rewrite subprogram renaming to
6379 subprogram declaration early and then set the Body_To_Inling flag.
6380
63812023-01-05 Piotr Trojanek <trojanek@adacore.com>
6382
6383 * freeze.adb (Build_Renamed_Body): Revert a special case for
6384 GNATprove; remove unnecessary initialization of a local variable.
6385
63862023-01-05 Marc Poulhiès <poulhies@adacore.com>
6387
6388 * sem_ch12.adb (Instantiate_Package_Body): Better filtering when
6389 installing parent on the scope stack.
6390
63912023-01-05 Eric Botcazou <ebotcazou@adacore.com>
6392
6393 * repinfo.ads (The JSON output format): Document change.
6394 * urealp.adb (UR_Write_To_JSON): Output a fraction instead of a
6395 decimal approximation.
6396
63972023-01-05 Eric Botcazou <ebotcazou@adacore.com>
6398
6399 * exp_ch3.adb (Expand_N_Object_Declaration): New local variable
6400 Func_Id holding the function for a special return object.
6401 Use a direct renaming in the class-wide case when the initializing
6402 expression is a captured function call, except for a special return
6403 object when the two functions do not return on the same stack.
6404 Apply the accessibility check for class-wide special return objects.
6405 * exp_util.adb (Make_CW_Equivalent_Type) <Has_Tag_Of_Type>: New.
6406 Do not force a dispatching call to the primitive operation _Size if
6407 the expression is known to statically have the tag of its type.
6408
64092023-01-05 Eric Botcazou <ebotcazou@adacore.com>
6410
6411 * exp_ch3.adb (Expand_N_Object_Declaration): Fix pasto in comment.
6412
64132023-01-05 Ronan Desplanques <desplanques@adacore.com>
6414
6415 * sem_aggr.adb (Resolve_Array_Aggregate): Tweak conditions for
6416 warning about use of parentheses for array aggregates.
6417
64182023-01-05 Javier Miranda <miranda@adacore.com>
6419
6420 * scans.ads (Tok_Left_Curly_Bracket, Tok_Right_Curly_Bracket)
6421 (Tok_Left_Interpolated_String): Placed in no category since they
6422 don't fit well in the existing categories. Fix typo in comment.
6423 (Inside_Interpolated_String_Literal): New scan state variable.
6424 * scng.adb (Slit): Scan interpolated string literals,
6425 continuations of interpolated string literals and escaped
6426 characters found in interpolated string literals.
6427 (Scan): Handle consecutive interpolated expressions. Handle ending
6428 delimiter placed immediately after an interpolated expression.
6429 Handle string literal placed after interpolated expression. Handle
6430 left and right curly brackets; when extensions are not allowed
6431 they are treated as left and right paren; when extensions are
6432 allowed they are handled as delimiters of interpolated string
6433 literals.
6434 * sinfo.ads (N_Interpolated_String_Literal): New node.
6435 * gen_il-gen-gen_nodes.adb (N_Interpolated_String_Literal): Define
6436 N_String_Literal node.
6437 * gen_il-types.ads (Opt_Type_Enum): Define N_String_Literal as
6438 concrete node type.
6439 * par-ch2.adb (P_Interpolated_String_Literal): New subprogram.
6440 * par-ch4.adb (P_Simple_Expression): Handle '}' as expression
6441 terminator when scanning an interpolated expression; disable error
6442 recovery machinery for binary operator when we are processing an
6443 interpolated string literal and reach the expression terminator
6444 '}'.
6445 (P_Primary): Call P_Interpolated_String_Literal when the opening
6446 interpolated-string-literal delimiter is found (that is, the left
6447 curly bracket '{').
6448 * par-tchk.adb (T_Right_Curly_Bracket): New subprogram.
6449 * par.adb (P_Interpolated_String_Literal): New declaration.
6450 (T_Right_Curly_Bracket): New declaration.
6451 * sem.adb (Analyze): Call Analyze_Interpolated_String_Literal.
6452 * sem_ch2.ads (Analyze_Interpolated_String_Literal): New
6453 subprogram
6454 * sem_ch2.adb (Analyze_Interpolated_String_Literal): Likewise.
6455 * sem_util.adb (Is_User_Defined_Literal): Complete mapping of
6456 literal aspects adding that interpolated string literals have no
6457 correspondence with any aspect.
6458 * sem_res.adb (Resolve_Interpolated_String_Literal): New
6459 subprogram.
6460 (Has_Applicable_User_Defined_Literal): Complete mapping of literal
6461 aspects adding that interpolated string literals have no
6462 correspondency with any aspect.
6463 * expander.adb (Expand): Add call to
6464 Expand_N_Interpolated_String_Literal.
6465 * exp_util.adb (Insert_Actions): Handle
6466 N_Interpolated_String_Literal nodes; that is, continue climbing.
6467 * exp_ch2.ads (Expand_N_Interpolated_String_Literal): New
6468 subprogram.
6469 * exp_ch2.adb (Expand_N_Interpolated_String_Literal): Likewise.
6470 * exp_put_image.adb (Build_Elementary_Put_Image_Call): Add missing
6471 conversion to force dispatching call. Required to handle calls to
6472 descendants.
6473 (Build_String_Put_Image_Call): Do not output string delimiters
6474 when the put_image call is part of an interpolated string literal.
6475 * rtsfind.ads (RTU_Id): Add RE_Set_Trim_Leading_Spaces.
6476 * sprint.adb (Sprint_Node): Output interpolated string contents.
6477 * libgnat/a-stbubo.adb (Get_UTF_8): Add default value for
6478 Trim_Leading_White_Spaces component in aggregate.
6479 (Buffer_Type_Implementation): Update Trim_Leading_White_Spaces.
6480 * libgnat/a-stbuun.adb (Get_UTF_8): Likewise.
6481 (Buffer_Type_Implementation): Likewise.
6482 * libgnat/a-sttebu.ads (Set_Trim_Leading_Spaces): New subprogram.
6483 (Trim_Leading_Spaces): New subprogram.
6484 (Root_Buffer_Type): Adding Trim_Leading_While_Spaces component.
6485 * libgnat/a-sttebu.adb (procedure Set_Trim_Leading_Spaces): New
6486 subprogram.
6487 (Trim_Leading_Space): New subprogram.
6488 (Put_UTF_8): Handle Trim_Leading_White_Spaces.
6489 (New_Line): Likewise.
6490 * libgnat/s-putima.ads (Put_Image_String): Adding formal
6491 (with_delimiters).
6492 (Put_Image_Wide_String): Likewise.
6493 (Put_Image_Wide_Wide_String): Likewise.
6494 * libgnat/s-putima.adb (Put_Image_String): Adding support for new
6495 formal.
6496 (Put_Image_Wide_String): Likewise.
6497 (Put_Image_Wide_Wide_String): Likewise.
6498
64992023-01-05 Joao Azevedo <azevedo@adacore.com>
6500
6501 * doc/gnat_ugn/gnat_utility_programs.rst: add gnatpp --layout
6502 switch and update legacy switches.
6503
65042023-01-05 Eric Botcazou <ebotcazou@adacore.com>
6505
6506 * freeze.adb (Freeze_Entity): For the purpose of deciding whether to
6507 freeze an entity coming from an outer scope in an inner scope, treat
6508 the internal subprogram generated because of post-conditions as also
6509 coming from source if the original subprogram itself does.
6510
65112023-01-05 Eric Botcazou <ebotcazou@adacore.com>
6512
6513 * contracts.adb (Build_Subprogram_Contract_Wrapper): Generate an
6514 extended return statement in all cases.
6515 (Expand_Subprogram_Contract): Adjust comment.
6516
65172023-01-05 Ronan Desplanques <desplanques@adacore.com>
6518
6519 * libgnat/g-forstr.adb (F_Kind): Rename enumeration literal.
6520 (P_Flt_Format): Adjust handling of "%g".
6521 (Determine_Notation_And_Aft): New procedure.
6522 (Decimal_Exponent): New function.
6523 (Increment_Integral_Part): New procedure.
6524 (Remove_Extraneous_Decimal_Digit): New procedure.
6525 (Trim_Fractional_Part): New procedure.
6526 * libgnat/g-forstr.ads: Change description of "%g" specifier.
6527
65282023-01-05 Marc Poulhiès <poulhies@adacore.com>
6529
6530 * sem_ch12.adb (Instantiate_Package_Body): Correctly find the
6531 parent instance to place on the scope stack.
6532
65332023-01-05 Justin Squirek <squirek@adacore.com>
6534
6535 * sem_ch8.adb (Set_Entity_Or_Discriminal): Verify we are actually
6536 resetting the entity field of a non-prefixed discriminant
6537 reference.
6538
65392023-01-05 Eric Botcazou <ebotcazou@adacore.com>
6540
6541 * exp_ch3.adb (Expand_N_Object_Declaration): New local variable used
6542 throughout instead of testing Is_Special_Return_Object every time.
6543 Do not rename an OK_To_Rename object for a special return object.
6544 * exp_ch4.adb (Expand_Concatenate): Revert to constrained allocation
6545 if the result is allocated on the secondary stack.
6546
65472023-01-05 Steve Baird <baird@adacore.com>
6548
6549 * sem_prag.adb (Analyze_Pragma): Fix Is_Configuration_Pragma
6550 function to handle case where the pragma's parent is an
6551 N_Aspect_Specification node. In analyzing a Discard_Names pragma,
6552 do not assume that a nonzero number of arguments implies that the
6553 pragma is not a configuration pragma; that assumption only holds
6554 for legal programs.
6555
65562023-01-05 Bob Duff <duff@adacore.com>
6557
6558 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
6559 Add RM references.
6560 * gnat_ugn.texi: Regenerate.
6561
65622023-01-05 Eric Botcazou <ebotcazou@adacore.com>
6563
6564 * exp_ch3.adb (Expand_N_Object_Declaration): For a special return
6565 object of an interface type that is not inherently limited, make
6566 a call to the Adjust primitive after doing the copy. For a special
6567 return object of a non-class-wide type initialized by a function
6568 call, use a direct renaming only if the object doing the capture
6569 is flagged by Is_Related_To_Func_Return. For a special return
6570 object using a direct renaming, reassign the tag, if need be.
6571 * exp_ch6.adb (Expand_Simple_Function_Return): Fix comment.
6572 * exp_util.adb (Is_Related_To_Func_Return): Accept both regular and
6573 renaming object declarations for return objects.
6574
65752023-01-05 Bob Duff <duff@adacore.com>
6576
6577 * sem_ch5.adb (Analyze_Assignment): Fix the bug by checking
6578 Original_Node. The renaming might be elsewhere, but the (original)
6579 reference is right here.
6580 * errout.adb: Remove pragma Unreferenced which was added because
6581 of the above bug.
6582 * einfo.ads: Misc cleanup.
6583 * lib.adb: Likewise.
6584 * lib.ads: Likewise.
6585
0f8fbb57
GA
65862023-01-03 Ghjuvan Lacambre <lacambre@adacore.com>
6587
6588 * errout.adb (Write_JSON_Span): Escape subprogram name.
6589
65902023-01-03 Ghjuvan Lacambre <lacambre@adacore.com>
6591
6592 * output.adb (Write_Buffer): Use Flush_Buffer instead of Write_Eol.
6593
65942023-01-03 Ronan Desplanques <desplanques@adacore.com>
6595
6596 * libgnat/g-forstr.adb (P_Flt_Format): Add "*" syntax handling.
6597
65982023-01-03 Ronan Desplanques <desplanques@adacore.com>
6599
6600 * libgnat/g-forstr.adb (P_Int_Format): Fix parsing bug.
6601
66022023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6603
6604 * exp_ch6.adb (Expand_Simple_Function_Return): Make sure that a
6605 captured function call also verifies Is_Related_To_Func_Return.
6606 Do not generate an actual subtype for special return objects.
6607 * exp_util.ads (Is_Related_To_Func_Return): Add commentary.
6608
66092023-01-03 Ronan Desplanques <desplanques@adacore.com>
6610
6611 * libgnat/g-forstr.adb
6612 (Advance_And_Accumulate_Until_Next_Specifier): New procedure.
6613 ("-"): Replace inline code with call to
6614 Advance_And_Accumulate_Until_Next_Specifier.
6615 (Next_Format): likewise.
6616
66172023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6618
6619 * checks.adb (Apply_Discriminant_Check.Denotes_Explicit_Dereference):
6620 Return false for artificial dereferences generated by the expander.
6621
66222023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6623
6624 * exp_ch6.adb (Is_Build_In_Place_Function): Adjust comment.
6625 * sem_util.adb (Compute_Returns_By_Ref): Do not set Returns_By_Ref
6626 on functions with foreign convention.
6627
66282023-01-03 Marc Poulhiès <poulhies@adacore.com>
6629
6630 * exp_aggr.adb (Build_Assignment_With_Temporary): New.
6631 (Expand_Array_Aggregate): Tune backend optimization
6632 and insert a temporary in the case of an access with
6633 Designated_Storage_Model aspect.
6634 (Convert_Array_Aggr_In_Allocator): Likewise.
6635
66362023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6637
6638 * sem_res.adb (Resolve_Membership_Op): Adjust again latest change.
6639
66402023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6641
6642 * sem_util.ads (Set_Debug_Info_Defining_Id): Adjust comment.
6643 * sem_util.adb (Is_Aliased_View) <N_Explicit_Dereference>: Return
6644 false for more artificial dereferences generated by the expander.
6645 (Set_Debug_Info_Defining_Id): Set Debug_Info_Needed unconditionally
6646 in -gnatD mode.
6647 * exp_ch6.adb (Replace_Renaming_Declaration_Id): Also preserve the
6648 Is_Aliased flag.
6649
66502023-01-03 Joel Brobecker <brobecker@adacore.com>
6651
6652 * doc/gnat_ugn/platform_specific_information.rst
6653 (_Platform_Specific_Information): Minor rewording of intro text.
6654 * gnat_ugn.texi: Regenerate.
6655
66562023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6657
6658 * exp_util.ads (Is_Captured_Function_Call): Declare.
6659 * exp_util.adb (Is_Captured_Function_Call): New predicate.
6660 * exp_ch3.adb (Expand_N_Object_Declaration): Use it to detect a
6661 rewritten function call as the initializing expression.
6662 * exp_ch6.adb (Expand_Simple_Function_Return): Use it to detect a
6663 rewritten function call as the returned expression.
6664
66652023-01-03 Bob Duff <duff@adacore.com>
6666
6667 * exp_util.adb (Integer_Type_For): Assertion and comment.
6668 (Small_Integer_Type_For): Remove some code and call
6669 Integer_Type_For instead.
6670 * sem_util.ads (Rep_To_Pos_Flag): Improve comments. "Standard_..."
6671 seems overly pedantic here.
6672 * exp_attr.adb (Succ, Pred): Clean up: make the code as similar as
6673 possible.
6674 * exp_ch4.adb: Minor: named notation.
6675
66762023-01-03 Javier Miranda <miranda@adacore.com>
6677
6678 * ghost.adb (Is_OK_Declaration): A reference to a Ghost entity may
6679 appear within the class-wide precondition of a helper subprogram.
6680 This context is treated as suitable because it was already
6681 verified when we were analyzing the original class-wide
6682 precondition.
6683
66842023-01-03 Eric Botcazou <ebotcazou@adacore.com>
6685
6686 * exp_tss.adb (Base_Init_Proc): Do not return the Init_Proc of the
6687 ancestor type for a derived array type.
6688 * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Factor out the
6689 common processing done on representation items.
6690 For Default_Component_Value and Default_Value, look into the first
6691 subtype to find out the representation items.
6692
fee53a31
GA
66932023-01-02 Iain Sandoe <iain@sandoe.co.uk>
6694
6695 PR ada/108202
6696 * gcc-interface/Make-lang.in (GCC_LINKERFLAGS, GCC_LDFLAGS):
6697 Versions of ALL_LINKERFLAGS, LDFLAGS with -Werror and
6698 -static-libgcc filtered out for Darwin8 and 9 (-Werror is filtered
6699 out for other hosts).
6700
67012023-01-02 Jakub Jelinek <jakub@redhat.com>
6702
6703 * gnat_ugn.texi: Bump @copying's copyright year.
6704 * gnat_rm.texi: Likewise.
6705
848830dc 6706\f
d64f8779 6707Copyright (C) 2023 Free Software Foundation, Inc.
848830dc
PMR
6708
6709Copying and distribution of this file, with or without modification,
6710are permitted in any medium without royalty provided the copyright
6711notice and this notice are preserved.
This page took 1.81766 seconds and 5 git commands to generate.