1 2021-10-05 Eric Botcazou <ebotcazou@adacore.com>
3 * gcc-interface/trans.c (gnat_to_gnu): Do not wrap boolean values
6 2021-10-05 Eric Botcazou <ebotcazou@adacore.com>
8 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Do not set the
9 DECL_DISREGARD_INLINE_LIMITS flag if -gnatd.8 is specified.
11 2021-10-05 Bob Duff <duff@adacore.com>
13 * gcc-interface/trans.c (set_end_locus_from_node): Check that
14 Handled_Statement_Sequence is not Empty before calling
15 End_Label, because the Empty node has no End_Label, and
16 depending on the exact node layout chosen by gen_il, calling
17 End_Label might crash, or might work OK by accident.
19 2021-10-05 Eric Botcazou <ebotcazou@adacore.com>
21 * gcc-interface/cuintp.c: Adjust placement of include directive.
22 * gcc-interface/targtyps.c: Likewise.
24 2021-10-05 Alexandre Oliva <oliva@adacore.com>
26 * doc/gnat_rm.rst: Add...
27 * doc/gnat_rm/security_hardening_features.rst: New.
28 * doc/gnat_rm/about_this_guide.rst: Link to new chapter.
29 * gnat_rm.texi: Regenerate.
30 * gcc-interface/utils.c (handle_strub_attribute): New.
31 (gnat_internal_attribute_table): Add strub.
32 * libgnat/a-except.adb: Make Rcheck_CE_* strub-callable.
33 * libgnat/a-except.ads (Raise_Exception): Likewise.
34 (Raise_Exception_Always): Likewise.
35 * libgnat/s-arit128.ads (Multiply_With_Ovflo_Check128):
37 * libgnat/s-arit64.ads (Multiply_With_Ovflo_Check64):
39 * libgnat/s-secsta.ads (SS_Allocate, SS_Mark, SS_Release):
42 2021-10-05 Eric Botcazou <ebotcazou@adacore.com>
44 * exp_ch9.adb (Install_Private_Data_Declarations): Copy the Sloc of
45 components for the local renamings as well as the Comes_From_Source
46 flag, and also set Warnings_Off on them. Use Nam local variable.
48 2021-10-05 Arnaud Charlet <charlet@adacore.com>
50 * libgnarl/a-tasini.ads (Set_Initialization_Handler): Update
53 2021-10-05 Corentin Gay <gay@adacore.com>
55 * init.c (QNX): Add #include errno.h.
57 2021-10-05 Eric Botcazou <ebotcazou@adacore.com>
59 * exp_attr.adb (Expand_Fpt_Attribute): Likewise.
60 * snames.ads-tmpl (Name_Unaligned_Valid): Delete.
62 2021-10-05 Etienne Servais <servais@adacore.com>
64 * sem_prag.adb (Analyze_Pragma): Forbid use of
65 Compile_Time_(Error|Warning) as configuration pragma.
66 * doc/gnat_ugn/the_gnat_compilation_model.rst:
67 Compile_Time_(Error|Warning) and Compiler_Unit(_Warning) are not
68 configuration pragmas and shall not be listed as such. The
69 following pragmas are either obsolete or undocumented:
70 No_Run_Time, Propagate_Exceptions, Rational, Ravenscar,
71 Restricted_Run_Time, Short_Descriptors, Universal_Data. Fix
72 some typos (notably on Restriction_Warnings).
73 * doc/gnat_rm/implementation_defined_pragmas.rst: Move
74 Rename_Pragma documentation to alphabetical order.
75 * gnat_rm.texi, gnat_ugn.texi: Regenerate.
77 2021-10-05 Corentin Gay <gay@adacore.com>
79 * adaint.c (QNX): Add #include for sys/time.h.
81 2021-10-05 Pascal Obry <obry@adacore.com>
83 * libgnat/g-forstr.adb (Next_Format): When there is no more
84 format specifier found issue a proper error message instead of
85 raising a contraint error.
87 2021-10-05 Pascal Obry <obry@adacore.com>
89 * libgnat/g-forstr.adb (Get_Formatted): Fix computation of the
90 number of zero to use in the formatted string. This was a wrong
93 2021-10-05 Pascal Obry <obry@adacore.com>
95 * libgnat/g-forstr.adb (Get_Formatted): Minor code clean-up.
97 2021-10-05 Etienne Servais <servais@adacore.com>
99 * libgnat/a-zchhan.ads, libgnat/a-zchhan.adb
100 (Character_Set_Version, Is_Basic, To_Basic): New.
101 * libgnat/a-zchuni.ads, libgnat/a-zchuni.adb (Is_Basic,
104 2021-10-05 Yannick Moy <moy@adacore.com>
106 * sem_aggr.adb (Resolve_Array_Aggregate): Improve error message.
108 2021-10-05 Gary Dismukes <dismukes@adacore.com>
110 * aspects.ads (type Aspect_Id): Add
111 Aspect_Designated_Storage_Model and Aspect_Storage_Model_Type.
112 (Aspect_Argument): Add associations for the above new aspects.
113 (Is_Representation_Aspect): Likewise.
114 (Aspect_Names, Aspect_Delay): Likewise.
115 * exp_ch4.adb (Expand_N_Allocator): Call Find_Storage_Op rather
117 * exp_intr.adb (Expand_Unc_Deallocation): Likewise.
118 * exp_util.ads (Find_Storage_Op): New function that locates
119 either a primitive operation of a storage pool or an operation
120 of a storage-model type specified in its Storage_Model_Type
122 * exp_util.adb (Find_Storage_Op): New function that calls either
123 Find_Prim_Op or Get_Storage_Model_Type_Entity to locate a
124 storage-related operation that is associated with a type.
125 * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Analyzes,
126 resolves, and validates the arguments of aspect
127 Designated_Storage_Model_Type.
128 (Analyze_Aspect_Specifications): Sets delay-related flags on
129 storage-model aspects when Delay_Required. Checks that aspect
130 Designated_Storage_Model is only specified for an access type
131 and that aspect Storage_Model_Type is only specified on an
132 immutably limited type. Also records such aspects for their
134 (Check_Aspect_At_Freeze_Point): Resolve each of the argument
135 associations given for a Storage_Model_Type aspect.
136 (Resolve_Storage_Model_Type_Argument): New procedure that
137 resolves an argument given in the association for a given entity
138 name associated with a type with aspect Storage_Model_Type,
139 ensuring that it has the proper kind or profile.
140 (Validate_Storage_Model_Type_Aspect): New procedure that checks
141 the legality and completeness of the entity associations given
142 in a Storage_Model_Type aspect.
143 * sem_util.ads (package Storage_Model_Support): New nested
144 package that encapsulates a set of convenient utility functions
145 for retrieving entities, etc. associated with
146 storage-model-related types and objects.
147 (Get_Storage_Model_Type_Entity): New function to return a
148 specified entity associated with a type that has aspect
150 (Has_Designated_Storage_Model_Aspect): New function that returns
151 whether a type has aspect Designated_Storage_Model.
152 (Has_Storage_Model_Type_Aspect): New function that returns
153 whether a type has aspect Storage_Model_Type.
154 (Storage_Model_Object): New function that returns the object
155 Entity_Id associated with a type's Designated_Storage_Model
157 (Storage_Model_Type): New function that returns the type
158 associated with a storage-model object (when the object's type
159 specifies Storage_Model_Type).
160 (Storage_Model_Address_Type): New function that returns the
161 Address_Type associated with a type that has aspect
163 (Storage_Model_Null_Address): New function that returns the
164 Null_Address constant associated with a type that has aspect
166 (Storage_Model_Allocate): New function that returns the Allocate
167 procedure associated with a type that has aspect
169 (Storage_Model_Deallocate): New function that returns the
170 Deallocate procedure associated with a type that has aspect
172 (Storage_Model_Copy_From): New function that returns the
173 Copy_From procedure associated with a type that has aspect
175 (Storage_Model_Copy_To): New function that returns the Copy_To
176 procedure associated with a type that has aspect
178 (Storage_Model_Storage_Size): New function that returns the
179 Storage_Size function associated with a type that has aspect
181 * sem_util.adb (package Storage_Model_Support): Body of new
182 nested package that contains the implementations the utility
183 functions declared in the spec of this package.
184 * snames.ads-tmpl: Add new names Name_Designated_Storage_Pool,
185 Name_Storage_Model, Name_Storage_Model_Type, Name_Address_Type,
186 Name_Copy_From, Name_Copy_To, and Name_Null_Address for the new
187 aspects and associated aspect arguments.
189 2021-10-05 Richard Kenner <kenner@adacore.com>
191 * debug.adb: Add documentation for -gnatd_t.
193 2021-10-05 Corentin Gay <gay@adacore.com>
195 * sysdep.c (__gnat_is_file_not_found_error): Add else if case.
197 2021-10-05 Piotr Trojanek <trojanek@adacore.com>
199 * exp_util.adb (Build_Class_Wide_Expression): Replace entities
200 of both identifiers and operator symbols.
202 2021-10-05 Piotr Trojanek <trojanek@adacore.com>
204 * sem_ch3.adb (Derive_Subprogram): Copy ghost status from parent
205 to derived subprogram.
207 2021-10-05 Joffrey Huguet <huguet@adacore.com>
209 * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Add
210 Default_Initial_Condition to Unbounded_String.
212 2021-10-05 Claire Dross <dross@adacore.com>
214 * libgnat/a-cfdlli.ads: Use pragma Assertion_Policy to disable
215 contract cases at execution.
216 * libgnat/a-cfinve.ads: Idem.
217 * libgnat/a-cofove.ads: Idem.
218 * libgnat/a-cfhase.ads: Idem.
219 * libgnat/a-cfhama.ads: Idem.
220 * libgnat/a-cforse.ads: Idem.
221 * libgnat/a-cforma.ads: Idem.
223 2021-10-05 Bob Duff <duff@adacore.com>
225 * par-ch4.adb (P_Iterated_Component_Association): Parse these
226 features the same way in all language versions. Move the call
227 to Error_Msg_Ada_2022_Feature into semantic analysis.
228 * sem_aggr.adb (Resolve_Iterated_Component_Association,
229 Resolve_Iterated_Association): Move the call to
230 Error_Msg_Ada_2022_Feature here from par-ch4.adb.
232 2021-10-05 Yannick Moy <moy@adacore.com>
234 * sem_res.adb (Resolve): Recognize specially that case.
236 2021-10-05 Yannick Moy <moy@adacore.com>
238 * libgnat/a-strmap.adb: Add ghost code for proof.
239 (To_Range): This is the most involved proof, as it requires
240 creating the result of the call to To_Domain as a ghost
241 variable, and show the unicity of this result in order to prove
243 * libgnat/a-strmap.ads: (SPARK_Proof_Sorted_Character_Sequence):
245 (To_Domain): Add postcondition regarding sorting of result.
246 (To_Range): Fix postcondition that should compare Length instead
247 of Last for the results of To_Domain and To_Range, as the value
248 of Last for an empty result is not specified in the Ada RM.
250 2021-10-05 Yannick Moy <moy@adacore.com>
252 * libgnat/a-chahan.adb: Add loop invariants as needed to prove
253 subprograms. Also use extended return statements where
254 appropriate and not done already. Mark data with
255 Relaxed_Initialization where needed for initialization by parts.
256 Convert regular functions to expression functions where needed
258 * libgnat/a-chahan.ads: Add postconditions.
259 * libgnat/a-strmap.ads (Model): New ghost function to create a
260 publicly visible model of the private data Character_Mapping,
261 needed in order to prove subprograms in Ada.Characters.Handling.
263 2021-10-04 Justin Squirek <squirek@adacore.com>
265 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
266 Add new entry for No_Dynamic_Accessibility_Checks documenting
268 * gnat_rm.texi: Regenerate.
269 * exp_ch4.adb (Expand_N_In): Perform special expansion for
270 membership tests when No_Dynamic_Accessibility_Checks is active.
271 * sem_attr.adb (Resolve_Attribute): Skip static accessibility
272 check on actuals for anonymous access type formal parameters,
273 and add constants for readability.
274 * sem_util.adb (Function_Call_Or_Allocator_Level): Use the
275 innermost master for determining the level for function calls
276 within the alternative accessibility model.
277 (Type_Access_Level): Properly get the level for anonymous access
278 function result types.
280 2021-10-04 Piotr Trojanek <trojanek@adacore.com>
282 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
283 (gnateA): This switch no longer looks at the formal parameter
284 type being composite (as originally mandated by SPARK), but in
285 the parameter passing mechanism being not specified (as
286 currently mandated by Ada).
287 * gnat_ugn.texi: Regenerate.
289 2021-10-04 Ed Schonberg <schonberg@adacore.com>
291 * sem_ch6.adb (Analyze_Operator_Symbol): Recognize strings as
292 operator names when they are the value of one of the Ada2022
293 aspects for User_Defined_Literals.
294 * sem_ch13.adb (Analyze_One_Aspect): Handle an aspect value
295 given by an Operator_Name.
296 (Validate_Literal_Aspect): Call Analyze_Operator_Symbol when
299 2021-10-04 Piotr Trojanek <trojanek@adacore.com>
301 * gen_il-gen.adb (Put_Make_Spec): Don't emit the LF character in
302 the middle of a string, because the Put routine won't indent it
305 2021-10-04 Ghjuvan Lacambre <lacambre@adacore.com>
307 * gnat_cuda.adb (Remove_CUDA_Device_Entities): New function.
308 (Expand_CUDA_Package): Call Remove_CUDA_Device_Entities.
309 * gnat_cuda.ads (Expand_CUDA_Package): Expand documentation.
310 * sem_prag.adb (Analyze_Pragma): Remove warning about
311 CUDA_Device not being implemented.
313 2021-10-04 Gary Dismukes <dismukes@adacore.com>
315 * sem_ch7.adb (Analyze_Package_Specification): For types marked
316 as Must_Have_Preelab_Init, we now check for the presence of a
317 Preelaborable_Initialization aspect on the type, and pass the
318 aspect's expression (if any) on the call to
319 Has_Preelaborable_Initialization (or pass Empty if the type has
320 no such aspect or the aspect has no associated expression).
321 * sem_util.ads (Has_Preelaborable_Initialization): Change
322 Boolean formal parameter Formal_Types_Have_Preelab_Init to
323 instead be a formal of type Node_Id (named Preelab_Init_Expr),
324 to allow passing an expression that may be a conjunction of
325 Preelaborable_Initialization aspects. Revise spec comment
326 accordingly (and remove ??? comment).
327 * sem_util.adb (Type_Named_In_Preelab_Init_Expression): New
328 nested function with a result indicating whether a given type is
329 named as the prefix of a Preelaborable_Initialization attribute
330 in the expression of a corresponding P_I aspect.
331 (Has_Preelaborable_Initialization): For generic formal derived
332 and private types, test whether the type is named in the
333 expression Preelab_Init_Expr (by calling
334 Type_Named_In_Preelab_Init_Expression), and if so, treat the
335 formal type as having preelaborable initialization (returning
337 * libgnat/a-cobove.ads (Vector): Replace pragma
338 Preelaborable_Initialization with the aspect, specifying its
339 value as Element_Type'Preelaborable_Initialization.
340 (Cursor): Replace pragma P_I with the aspect (defaulting to
342 * libgnat/a-cbdlli.ads (List): Replace pragma
343 Preelaborable_Initialization with the aspect, specifying its
344 value as Element_Type'Preelaborable_Initialization.
345 (Cursor): Replace pragma P_I with the aspect (defaulting to
347 * libgnat/a-cbhama.ads (Map): Replace pragma
348 Preelaborable_Initialization with the aspect, specifying its
349 value as (Element_Type'Preelaborable_Initialization and
350 Key_Type'Preelaborable_Initialization).
351 (Cursor): Replace pragma P_I with the aspect (defaulting to
353 * libgnat/a-cborma.ads (Map): Replace pragma
354 Preelaborable_Initialization with the aspect, specifying its
355 value as (Element_Type'Preelaborable_Initialization and
356 Key_Type'Preelaborable_Initialization).
357 (Cursor): Replace pragma P_I with the aspect (defaulting to
359 * libgnat/a-cbhase.ads (Set): Replace pragma
360 Preelaborable_Initialization with the aspect, specifying its
361 value as Element_Type'Preelaborable_Initialization.
362 (Cursor): Replace pragma P_I with the aspect (defaulting to
364 * libgnat/a-cborse.ads (Set): Replace pragma
365 Preelaborable_Initialization with the aspect, specifying its
366 value as Element_Type'Preelaborable_Initialization.
367 (Cursor): Replace pragma P_I with the aspect (defaulting to
369 * libgnat/a-cbmutr.ads (Tree): Replace pragma
370 Preelaborable_Initialization with the aspect, specifying its
371 value as Element_Type'Preelaborable_Initialization.
372 (Cursor): Replace pragma P_I with the aspect (defaulting to
374 * libgnat/a-coboho.ads (Holder): Replace pragma
375 Preelaborable_Initialization with the aspect, specifying its
376 value as Element_Type'Preelaborable_Initialization.
377 (Cursor): Replace pragma P_I with the aspect (defaulting to
380 2021-10-04 Yannick Moy <moy@adacore.com>
382 * libgnat/a-textio.adb: Mark body out of SPARK.
383 * libgnat/a-textio.ads: Mark spec in SPARK and private part out
385 * sem.adb (Semantics.Do_Analyze): Similar to ghost code
386 attributes, save and restore value of
387 Ignore_SPARK_Mode_Pragmas_In_Instance.
389 2021-10-04 Bob Duff <duff@adacore.com>
391 * libgnat/s-regpat.ads: Change Data_First to Data'First. Change
392 "still" to "always". Similar changes for Data_Last.
394 2021-10-04 Piotr Trojanek <trojanek@adacore.com>
396 * sprint.adb (Sprint_Node_Actual): Refactor code for generic
397 package and subprogram declarations.
399 2021-10-04 Piotr Trojanek <trojanek@adacore.com>
401 * sem_res.adb (Resolve_Indexed_Component, Resolve_Slice): Rename
402 the local constant Name to Pref; remove repeated calls to
405 2021-10-04 Matthieu Eyraud <eyraud@adacore.com>
407 * scos.ads: Extend the documentation.
408 * par_sco.adb (Process_Decisions): Emit specific SCOs for
409 quantified expressions.
411 2021-10-04 Piotr Trojanek <trojanek@adacore.com>
413 * checks.adb (Selected_Range_Checks): Fix style.
414 * exp_ch4.adb (Expand_N_Slice): Fix style and comment.
415 * sem_res.adb (Resolve_Indexed_Component): Fix style.
417 2021-10-04 Yannick Moy <moy@adacore.com>
419 * libgnat/a-strbou.ads: Add comments.
421 2021-10-04 Piotr Trojanek <trojanek@adacore.com>
423 * sem_attr.adb (Eval_Attribute): Evaluation of attribute
424 Leading_Part with illegal second parameter is now similar to
425 evaluation of Remainder with its second parameter being zero.
427 2021-10-04 Ed Schonberg <schonberg@adacore.com>
429 * sem_res.adb (Resolve_Declare_Expression): Use tree traversals
430 to perform name capture of local entities in the expression of
432 * exp_util.adb (Possible_Side_Effects_In_SPARK): Do not apply to
433 the prefix of an attribute reference Reduce when that prefix is
434 an aggregate, because it will be expanded into a loop, and has
435 no identifiable type.
437 2021-10-04 Javier Miranda <miranda@adacore.com>
439 * sem_ch8.adb (Build_Class_Wide_Wrapper): Fix handling of
440 class-wide subtypes; required to handle chains of
441 instantiations. Adding also code to identify these wrappers and
442 properly resolve instantiations where the wrapper and a tagged
443 type primitive are visible.
444 * einfo.ads (Is_Class_Wide_Wrapper): Adding documentation.
445 * gen_il-fields.ads (Opt_Field_Enum): Adding
446 Is_Class_Wide_Wrapper.
447 * gen_il-gen-gen_entities.adb (Root_Entity_Type): Adding
448 semantic flag Is_Class_Wide_Wrapper.
450 2021-10-04 Bob Duff <duff@adacore.com>
452 * einfo.ads (Declaration_Node): Document that Declaration_Node
454 * einfo-utils.adb (Declaration_Node): Make it return Empty for
455 Itypes, or a proper type or subtype declaration.
456 * gen_il-gen.adb: Minor comment improvement.
458 2021-10-04 Piotr Trojanek <trojanek@adacore.com>
460 * sem_res.adb (Resolve_Slice): Fix application of range checks
461 to slice range given as a subtype name.
463 2021-10-04 Piotr Trojanek <trojanek@adacore.com>
465 * sem_res.adb (Resolve_Slice): Handle range given as a subtype
468 2021-10-04 Piotr Trojanek <trojanek@adacore.com>
470 * sem_res.adb (Resolve_Slice): Add custom handling of attribute
471 Image and similar in CodePeer mode. This complements the
472 existing custom handling of these attributes in
473 Expand_N_Attribute_Reference.
475 2021-10-04 Justin Squirek <squirek@adacore.com>
477 * sem_util.adb (Is_Variable): Add check for implicitly
478 dereferenced access types
479 (Is_Dependent_Component_Of_Mutable_Object): Set Prefix_Type when
482 2021-10-04 Eric Botcazou <ebotcazou@adacore.com>
484 * doc/gnat_ugn/the_gnat_compilation_model.rst (Binding generation):
485 Document specific behavior for /include/-ending paths and update.
486 * gnat_ugn.texi: Regenerate.
488 2021-10-04 Arnaud Charlet <charlet@adacore.com>
491 * socket.c (__gnat_gethostbyaddr, __gnat_inet_pton): Add missing
494 2021-10-04 Justin Squirek <squirek@adacore.com>
496 * sem_util.adb (Function_Or_Allocator_Level): Properly handle
497 direct function calls in the default alternative accessibility
500 2021-10-04 Javier Miranda <miranda@adacore.com>
502 * sem_util.adb (Is_Library_Level_Entity): Return False for
503 entities defined in E_Loop scopes. This change is not required
504 by the frontend; it is required by tools that depend on the
506 * einfo-utils.adb (Is_Dynamic_Scope): Code cleanup.
508 2021-10-04 Justin Squirek <squirek@adacore.com>
510 * sem_util.adb (Accessibility_Level): Add a case to handle
511 renamed subprograms in addition to renamed objects.
513 2021-10-04 Doug Rupp <rupp@adacore.com>
515 * libgnarl/s-osinte__vxworks.ads (tlsKeyCreate): Return int.
516 * libgnarl/s-tpopsp__vxworks-rtp.adb (ERROR): Declare from
517 System.VxWorks.Ext.ERROR.
518 (Initialize): Declare IERR. Assert it.
519 * libgnarl/s-tpopsp__vxworks.adb (ERROR): Declare from
520 System.VxWorks.Ext.ERROR.
521 (Is_Valid_Task): Declare IERR. Test return.
522 * libgnarl/s-vxwext__kernel.adb (semDelete): Return STATUS.
524 2021-10-04 Eric Botcazou <ebotcazou@adacore.com>
526 * exp_disp.adb (Make_DT): Copy the Needs_Debug_Info flag from the
527 type onto the TSD object.
529 2021-10-04 Steve Baird <baird@adacore.com>
531 * sem_util.adb (Is_Repeatedly_Evaluated): Handle the case of an
532 Old attribute reference that occurs within what was originally a
533 quantified expression but which expansion has transformed into
534 an Expression_With_Actions.
536 2021-10-04 Steve Baird <baird@adacore.com>
538 * exp_ch4.adb (Expand_N_Indexed_Component): The two improvements
541 2021-10-01 Bob Duff <duff@adacore.com>
543 * exp_ch6.adb (Expand_Call_Helper): Do not call
544 Check_Subprogram_Variant if the subprogram is an ignored ghost
545 entity. Otherwise the compiler crashes (in debug builds) or
546 gives strange error messages (in production builds).
548 2021-10-01 Ghjuvan Lacambre <lacambre@adacore.com>
550 * gnat_cuda.adb (Empty_CUDA_Global_Subprograms): New procedure.
551 (Expand_CUDA_Package): Call Empty_CUDA_Global_Subprograms.
553 2021-10-01 Steve Baird <baird@adacore.com>
555 * checks.ads: Define a type Dimension_Set. Add an out-mode
556 parameter of this new type to Generate_Index_Checks so that
557 callers can know for which dimensions a check was generated. Add
558 an in-mode parameter of this new type to
559 Apply_Subscript_Validity_Checks so that callers can indicate
560 that no check is needed for certain dimensions.
561 * checks.adb (Generate_Index_Checks): Implement new
562 Checks_Generated parameter.
563 (Apply_Subscript_Validity_Checks): Implement new No_Check_Needed
565 * exp_ch4.adb (Expand_N_Indexed_Component): Call
566 Apply_Subscript_Validity_Checks in more cases than before. This
567 includes declaring two new local functions,
568 (Is_Renamed_Variable_Name,
569 Type_Requires_Subscript_Validity_Checks_For_Reads): To help in
570 deciding whether to call Apply_Subscript_Validity_Checks.
571 Adjust to parameter profile changes in Generate_Index_Checks and
572 Apply_Subscript_Validity_Checks.
574 2021-10-01 Eric Botcazou <ebotcazou@adacore.com>
576 * doc/gnat_rm/implementation_defined_characteristics.rst: Document
577 the rounding mode assumed for dynamic computations as per 3.5.7(16).
578 * gnat_rm.texi: Regenerate.
580 2021-10-01 Bob Duff <duff@adacore.com>
582 * table.ads (Table_Type): Remove "aliased"; no longer needed by
583 Atree. Besides it contradicted the comment a few lines above,
584 "-- Note: We do not make the table components aliased...".
585 * types.ads: Move type Slot to Atree.
586 * atree.ads: Move type Slot fromt Types to here. Move type
587 Node_Header from Seinfo to here.
588 * atree.adb: Avoid the need for aliased components of the Slots
589 table. Instead of 'Access, use a getter and setter. Misc
591 (Print_Statistics): Print statistics about node and entity kind
592 frequencies. Give 3 digit fractions instead of percentages.
593 * (Get_Original_Node_Count, Set_Original_Node_Count): Statistics
594 for calls to Original_Node and Set_Original_Node.
595 (Original_Node, Set_Original_Node): Gather statistics by calling
597 (Print_Field_Statistics): Print Original_Node statistics.
598 (Update_Kind_Statistics): Remove, and put all statistics
599 gathering under "if Atree_Statistics_Enabled", which is a flag
600 generated in Seinfo by Gen_IL.
601 * gen_il-gen.adb (Compute_Field_Offsets): Choose offsets of
602 Nkind, Ekind, and Homonym first. This causes a slight efficiency
603 improvement. Misc cleanups. Do not generate Node_Header; it is
604 now hand-written in Atree. When choosing the order in which to
605 assign offsets, weight by the frequency of the node type, so the
606 more common nodes get their field offsets assigned earlier. Add
608 (Compute_Type_Sizes): Remove this and related things.
609 There was a comment: "At some point we can instrument Atree to
610 print out accurate size statistics, and remove this code." We
611 have Atree statistics, so we now remove this code.
612 (Put_Seinfo): Generate Atree_Statistics_Enabled, which is equal
613 to Statistics_Enabled. This allows Atree to say "if
614 Atree_Statistics_Enabled then <gather statistics>" for
615 efficiency. When Atree_Statistics_Enabled is False, the "if ..."
616 will be optimized away.
617 * gen_il-internals.ads (Type_Frequency): New table of kind
619 * gen_il-internals.adb: Minor comment improvement.
620 * gen_il-fields.ads: Remove unused subtypes. Suppress style
621 checks in the Type_Frequency table. If we regenerate this
622 table (see -gnatd.A) we don't want to have to fiddle with
624 * impunit.adb: Minor.
625 * sinfo-utils.adb: Minor.
626 * debug.adb: Minor comment improvement.
628 2021-10-01 Eric Botcazou <ebotcazou@adacore.com>
630 * sem_type.adb (Specific_Type): Check that the type is tagged
631 before calling Interface_Present_In_Ancestor on it.
633 2021-10-01 Eric Botcazou <ebotcazou@adacore.com>
635 * debug.adb (d.8): Document usage.
636 * fe.h (Debug_Flag_Dot_8): Declare.
638 2021-10-01 Gary Dismukes <dismukes@adacore.com>
640 * sem_util.adb (Enter_Name): Suppress hiding warning when in an
643 2021-10-01 Ed Schonberg <schonberg@adacore.com>
645 * sem_attr.adb (Analyze_Attribute, case Type_Key): Attribute can
646 be applied to a formal type.
647 * sem_ch5.adb (Analyze_Case_Statement): If Extensions_Allowed is
648 not enabled, verify that the type of the expression is discrete.
650 2021-10-01 Justin Squirek <squirek@adacore.com>
652 * exp_dbug.adb (Debug_Renaming_Declaration): Add check for
653 Entity present for Ren to prevent looking at unanalyzed nodes
655 2021-10-01 Ghjuvan Lacambre <lacambre@adacore.com>
657 * atree.adb (Print_Statistics): Help CodePeer see Total as
659 * gen_il-gen.adb (One_Comp): Annotate Field_Table as Modified.
661 2021-10-01 Richard Kenner <kenner@adacore.com>
663 * gen_il-gen-gen_entities.adb (Evaluable_Kind,
664 Global_Name_Kind): Add.
665 * gen_il-types.ads (Evaluable_Kind, Global_Name_Kind): Likewise.
667 2021-10-01 Ghjuvan Lacambre <lacambre@adacore.com>
669 * aspects.ads: Add CUDA_Device aspect.
670 * gnat_cuda.ads (Add_CUDA_Device_Entity): New subprogram.
672 (Add_CUDA_Device_Entity): New subprogram.
673 (CUDA_Device_Entities_Table): New hashmap for CUDA_Device
675 (Get_CUDA_Device_Entities): New internal subprogram.
676 (Set_CUDA_Device_Entities): New internal subprogram.
677 * par-prag.adb (Prag): Handle pragma id Pragma_CUDA_Device.
678 * sem_prag.ads (Aspect_Specifying_Pragma): Mark CUDA_Device as
679 being both aspect and pragma.
680 * sem_prag.adb (Analyze_Pragma): Add CUDA_Device entities to
681 list of CUDA_Entities belonging to package N.
682 (Sig_Flags): Signal CUDA_Device entities as referenced.
683 * snames.ads-tmpl: Create CUDA_Device names and pragmas.
685 2021-10-01 Gary Dismukes <dismukes@adacore.com>
687 * exp_util.adb (Build_DIC_Procedure_Body): Remove inappropriate
688 Assert pragma. Remove unneeded and dead code related to derived
691 2021-10-01 Richard Kenner <kenner@adacore.com>
693 * gen_il-gen-gen_nodes.adb (N_Alternative, N_Is_Case_Choice):
695 (N_Is_Exception_Choice, N_Is_Range): Likewise.
696 * gen_il-types.ads: Add above names.
697 * gen_il-gen.adb (Put_Union_Membership): Write both declarations
698 and definitions of union functions.
700 2021-10-01 Ed Schonberg <schonberg@adacore.com>
702 * exp_aggr.adb (Expand_Array_Aggregate,
703 Two_Pass_Aggregate_Expansion): Increment index for element
704 insertion within the loop, only if upper bound has not been
707 2021-10-01 Javier Miranda <miranda@adacore.com>
709 * contracts.ads (Make_Class_Precondition_Subps): New subprogram.
710 (Merge_Class_Conditions): New subprogram.
711 (Process_Class_Conditions_At_Freeze_Point): New subprogram.
712 * contracts.adb (Check_Class_Condition): New subprogram.
713 (Set_Class_Condition): New subprogram.
714 (Analyze_Contracts): Remove code analyzing class-wide-clone
715 subprogram since it is no longer built.
716 (Process_Spec_Postconditions): Avoid processing twice seen
718 (Process_Preconditions): Simplify its functionality to
719 non-class-wide preconditions.
720 (Process_Preconditions_For): No action needed for wrappers and
722 (Make_Class_Precondition_Subps): New subprogram.
723 (Process_Class_Conditions_At_Freeze_Point): New subprogram.
724 (Merge_Class_Conditions): New subprogram.
725 * exp_ch6.ads (Install_Class_Preconditions_Check): New
727 * exp_ch6.adb (Expand_Call_Helper): Install class-wide
728 preconditions check on dispatching primitives that have or
729 inherit class-wide preconditions.
730 (Freeze_Subprogram): Remove code for null procedures with
732 (Install_Class_Preconditions_Check): New subprogram.
733 * exp_util.ads (Build_Class_Wide_Expression): Lower the
734 complexity of this subprogram; out-mode formal Needs_Wrapper
735 since this functionality is now provided by a new subprogram.
736 (Get_Mapped_Entity): New subprogram.
737 (Map_Formals): New subprogram.
738 * exp_util.adb (Build_Class_Wide_Expression): Lower the
739 complexity of this subprogram. Its previous functionality is now
740 provided by subprograms Needs_Wrapper and Check_Class_Condition.
741 (Add_Parent_DICs): Map the overridden primitive to the
743 (Get_Mapped_Entity): New subprogram.
744 (Map_Formals): New subprogram.
745 (Update_Primitives_Mapping): Adding assertion.
746 * freeze.ads (Check_Inherited_Conditions): Subprogram made
747 public with added formal to support late overriding.
748 * freeze.adb (Check_Inherited_Conditions): New implementation;
749 builds the dispatch table wrapper required for class-wide
750 pre/postconditions; added support for late overriding.
751 (Needs_Wrapper): New subprogram.
752 * sem.ads (Inside_Class_Condition_Preanalysis): New global
754 * sem_disp.ads (Covered_Interface_Primitives): New subprogram.
755 * sem_disp.adb (Covered_Interface_Primitives): New subprogram.
756 (Check_Dispatching_Context): Skip checking context of
757 dispatching calls during preanalysis of class-wide conditions
758 since at that stage the expression is not installed yet on its
760 (Check_Dispatching_Call): Skip checking 6.1.1(18.2/5) by
761 AI12-0412 on helpers and wrappers internally built for
762 supporting class-wide conditions; for late-overriding
763 subprograms call Check_Inherited_Conditions to build the
764 dispatch-table wrapper (if required).
765 (Propagate_Tag): Adding call to
766 Install_Class_Preconditions_Check.
767 * sem_util.ads (Build_Class_Wide_Clone_Body): Removed.
768 (Build_Class_Wide_Clone_Call): Removed.
769 (Build_Class_Wide_Clone_Decl): Removed.
770 (Class_Condition): New subprogram.
771 (Nearest_Class_Condition_Subprogram): New subprogram.
772 * sem_util.adb (Build_Class_Wide_Clone_Body): Removed.
773 (Build_Class_Wide_Clone_Call): Removed.
774 (Build_Class_Wide_Clone_Decl): Removed.
775 (Class_Condition): New subprogram.
776 (Nearest_Class_Condition_Subprogram): New subprogram.
777 (Eligible_For_Conditional_Evaluation): No need to evaluate
778 class-wide conditions during preanalysis since the expression is
779 not installed on its definite context.
780 * einfo.ads (Class_Wide_Clone): Removed.
781 (Class_Postconditions): New attribute.
782 (Class_Preconditions): New attribute.
783 (Class_Preconditions_Subprogram): New attribute.
784 (Dynamic_Call_Helper): New attribute.
785 (Ignored_Class_Postconditions): New attribute.
786 (Ignored_Class_Preconditions): New attribute.
787 (Indirect_Call_Wrapper): New attribute.
788 (Is_Dispatch_Table_Wrapper): New attribute.
789 (Static_Call_Helper): New attribute.
790 * exp_attr.adb (Expand_N_Attribute_Reference): When the prefix
791 is of an access-to-subprogram type that has class-wide
792 preconditions and an indirect-call wrapper of such subprogram is
793 available, replace the prefix by the wrapper.
794 * exp_ch3.adb (Build_Class_Condition_Subprograms): New
796 (Register_Dispatch_Table_Wrappers): New subprogram.
797 * exp_disp.adb (Build_Class_Wide_Check): Removed; class-wide
798 precondition checks now rely on internally built helpers.
799 * sem_ch13.adb (Analyze_Aspect_Specifications): Set initial
800 value of attributes Class_Preconditions, Class_Postconditions,
801 Ignored_Class_Preconditions and Ignored_Class_Postconditions.
802 These values are later updated with the full pre/postcondition
803 by Merge_Class_Conditions.
804 (Freeze_Entity_Checks): Call
805 Process_Class_Conditions_At_Freeze_Point.
806 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove code
807 building the body of the class-wide clone subprogram since it is
809 (Install_Entity): Adding assertion.
810 * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): Remove
811 code building and analyzing the class-wide clone subprogram; no
813 (Build_Pragma_Check_Equivalent): Adjust call to
814 Build_Class_Wide_Expression since the formal named Needs_Wrapper
816 * sem_attr.adb (Analyze_Attribute_Old_Result): Skip processing
817 these attributes during preanalysis of class-wide conditions
818 since at that stage the expression is not installed yet on its
820 * sem_res.adb (Resolve_Actuals): Skip applying RM 3.9.2(9/1) and
821 SPARK RM 6.1.7(3) on actuals of internal helpers and wrappers
822 built to support class-wide preconditions.
823 * sem_ch5.adb (Process_Bounds): Do not generate a constant
824 declaration for the bounds when we are preanalyzing a class-wide
826 (Analyze_Loop_Parameter_Specification): Handle preanalysis of
827 quantified expression placed in the outermost expression of a
828 class-wide condition.
829 * ghost.adb (Check_Ghost_Context): No check required during
830 preanalysis of class-wide conditions.
831 * gen_il-fields.ads (Opt_Field_Enum): Adding
832 Class_Postconditions, Class_Preconditions,
833 Class_Preconditions_Subprogram, Dynamic_Call_Helper,
834 Ignored_Class_Postconditions, Ignored_Class_Preconditions,
835 Indirect_Call_Wrapper, Is_Dispatch_Table_Wrapper,
837 * gen_il-gen-gen_entities.adb (Is_Dispatch_Table_Wrapper):
838 Adding semantic flag Is_Dispatch_Table_Wrapper; removing
839 semantic field Class_Wide_Clone; adding semantic fields for
840 Class_Postconditions, Class_Preconditions,
841 Class_Preconditions_Subprogram, Dynamic_Call_Helper,
842 Ignored_Class_Postconditions, Indirect_Call_Wrapper,
843 Ignored_Class_Preconditions, and Static_Call_Helper.
845 2021-10-01 Piotr Trojanek <trojanek@adacore.com>
847 * comperr.adb (Delete_SCIL_Files): Handle generic subprogram
848 declarations and renaming just like generic package declarations
849 and renamings, respectively; handle
850 N_Subprogram_Renaming_Declaration.
852 2021-10-01 Steve Baird <baird@adacore.com>
854 * bcheck.adb (Check_Versions): Add support for the case where
855 the .ali file contains both a primary and a secondary version
856 number, as in "GNAT Lib v22.20210809".
858 2021-10-01 Steve Baird <baird@adacore.com>
860 * sem_res.adb (Resolve): Two separate fixes. In the case where
861 Find_Aspect for a literal aspect returns the aspect for a
862 different (ancestor) type, call Corresponding_Primitive_Op to
863 get the right callee. In the case where a downward tagged type
864 conversion appears to be needed, generate a null extension
865 aggregate instead, as per Ada RM 3.4(27).
866 * sem_util.ads, sem_util.adb: Add new Corresponding_Primitive_Op
867 function. It maps a primitive op of a tagged type and a
868 descendant type of that tagged type to the corresponding
869 primitive op of the descendant type. The body of this function
870 was written by Javier Miranda.
872 2021-10-01 Bob Duff <duff@adacore.com>
874 * atree.adb: Gather and print statistics about frequency of
875 getter and setter calls.
876 * atree.ads (Print_Statistics): New procedure for printing
878 * debug.adb: Document -gnatd.A switch.
879 * gen_il-gen.adb: Generate code for statistics gathering.
880 Choose the offset of Homonym early. Misc cleanup. Put more
881 comments in the generated code.
882 * gen_il-internals.ads (Unknown_Offset): New value to indicate
883 that the offset has not yet been chosen.
884 * gnat1drv.adb: Call Print_Statistics.
885 * libgnat/s-imglli.ads: Minor comment fix.
886 * output.ads (Write_Int_64): New procedure to write a 64-bit
887 value. Needed for new statistics, and could come in handy
889 * output.adb (Write_Int_64): Likewise.
890 * sinfo.ads: Remove obsolete comment. The xtreeprs program no
892 * types.ads: New 64-bit types needed for new statistics.
894 2021-10-01 Dmitriy Anisimkov <anisimko@adacore.com>
896 * libgnat/memtrack.adb (Putc): New routine wrapped around fputc
898 (Write): New routine wrapped around fwrite with error check.
899 Remove bound functions fopen, fwrite, fputs, fclose, OS_Exit.
900 Use the similar routines from System.CRTL and System.OS_Lib.
902 2021-10-01 Ed Schonberg <schonberg@adacore.com>
904 * exp_aggr.adb (Must_Slide): If the aggregate only contains an
905 others_clause no sliding id involved. Otherwise sliding is
906 required if any bound of the aggregate or the context subtype is
909 2021-10-01 Richard Kenner <kenner@adacore.com>
911 * gen_il-gen-gen_nodes.adb (N_Is_Decl): Add.
912 * gen_il-types.ads (N_Is_Decl): Likewise.
914 2021-10-01 Richard Kenner <kenner@adacore.com>
916 * gen_il-gen-gen_nodes.adb (N_Entity_Name): Add.
917 * gen_il-types.ads (N_Entity_Name): Likewise.
919 2021-10-01 Steve Baird <baird@adacore.com>
921 * bcheck.adb (Check_Versions): In the case of an ali file
922 version mismatch, if distinct integer values can be extracted
923 from the two version strings then include those values in the
924 generated error message.
926 2021-10-01 Steve Baird <baird@adacore.com>
928 * sem_elab.adb (Is_Safe_Call): Return True in the case of a
929 (possibly rewritten) call to an expression function.
931 2021-10-01 Ghjuvan Lacambre <lacambre@adacore.com>
933 * sem_aggr.adb (Resolve_Iterated_Component_Association):
934 Initialize Id_Typ to Any_Type by default.
936 2021-10-01 Eric Botcazou <ebotcazou@adacore.com>
938 * doc/gnat_ugn/gnat_and_program_execution.rst (gnatmem): Document
939 that it works only with fixed-position executables.
941 2021-10-01 Doug Rupp <rupp@adacore.com>
943 * libgnat/s-parame__vxworks.ads (time_t_bits): Change to
944 Long_Long_Integer'Size.
946 2021-09-23 Eric Botcazou <ebotcazou@adacore.com>
948 * gcc-interface/decl.c (gnat_to_gnu_entity): Fix comment.
950 2021-09-23 Richard Kenner <kenner@adacore.com>
952 * gen_il-gen-gen_entities.adb (Subprogram_Body_Or_Type): Add.
953 * gen_il-types.ads (Subprogram_Body_Or_Type): Likewise.
955 2021-09-23 Richard Kenner <kenner@adacore.com>
957 * einfo-utils.adb (Next_Index): Verify input and output are
959 * gen_il-gen-gen_nodes.adb (N_Has_Bounds, N_Is_Index): Add.
960 * gen_il-types.ads (N_Has_Bounds, N_Is_Index): Likewise.
961 * sem_ch3.adb (Array_Type_Declaration): Use Next, not
963 * sem_ch12.adb (Formal_Dimensions): Likewise.
964 * sem_util.adb (Is_Valid_Renaming): Likewise.
966 2021-09-23 Eric Botcazou <ebotcazou@adacore.com>
968 * doc/gnat_ugn/gnat_utility_programs.rst (gnatsymbolize):
969 Document new --load option and -g1 as minimal compilation
972 2021-09-23 Piotr Trojanek <trojanek@adacore.com>
974 * sem_aggr.adb (Resolve_Array_Aggregate): Only keep the bounds
975 for internally generated attributes; otherwise, compute them
978 2021-09-23 Javier Miranda <miranda@adacore.com>
980 * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Decorate the
981 wrapper with attribute Is_Wrapper, and move its declaration to
982 the freezing actions of its type declaration; done to facilitate
983 identifying it at later stages to avoid handling it as a
984 primitive operation of a tagged type; otherwise it may be
985 handled as a dispatching operation and erroneously registered in
987 (Make_Index): Add missing decoration of field Parent.
988 * sem_disp.adb (Check_Dispatching_Operation): Complete
989 decoration of late-overriding dispatching primitives.
990 (Is_Access_To_Subprogram_Wrapper): New subprogram.
991 (Inherited_Subprograms): Prevent cascaded errors; adding missing
992 support for private types.
993 * sem_type.adb (Add_One_Interp): Add missing support for the
994 first interpretation of a primitive of an inmediate ancestor
996 * sem_util.adb (Check_Result_And_Post_State_In_Pragma): Do not
997 report missing reference in postcondition placed in internally
999 * exp_disp.adb (Expand_Dispatching_Call): Adding assertion.
1001 2021-09-23 Ed Schonberg <schonberg@adacore.com>
1003 * sem_aggr.adb (Resolve_Array_Aggregate): Check the validity of
1004 an array aggregate all of whose components are iterated
1005 component associations.
1006 * exp_aggr.adb (Expand_Array_Aggregate,
1007 Two_Pass_Aggregate_Expansion): implement two-pass algorithm and
1008 replace original aggregate with resulting temporary, to ensure
1009 that a proper length check is performed if context is
1010 constrained. Use attributes Pos and Val to handle index types of
1013 2021-09-23 Bob Duff <duff@adacore.com>
1015 * gen_il-gen.adb: Set the number of concrete nodes that have the
1016 Homonym field to a higher number than any other field. This
1017 isn't true, but it forces Homonym's offset to be chosen first,
1018 so it will be at offset zero and hence slot zero.
1020 2021-09-23 Richard Kenner <kenner@adacore.com>
1022 * atree.adb (Relocate_Node): If relocating a subprgram call and
1023 we're doing unnesting, make a new Parameter_Associations, if
1026 2021-09-23 Piotr Trojanek <trojanek@adacore.com>
1028 * libgnat/a-strbou.ads (Generic_Bounded_Length): Remove explicit
1029 Initializes contract.
1031 2021-09-23 Bob Duff <duff@adacore.com>
1033 * gen_il-gen.adb: Generate getters and setters with much of the
1034 code inlined. Generate code for storing a few fields in the node
1035 header, to avoid the extra level of indirection for those
1036 fields. We generate the header type, so we don't have to
1037 duplicate hand-written Ada and C code to depend on the number of
1038 header fields. Declare constants for slot size. Use short names
1039 because these are used all over. Remove
1040 Put_Low_Level_Accessor_Instantiations, Put_Low_Level_C_Getter,
1041 which are no longer needed. Rename
1042 Put_High_Level_C_Getter-->Put_C_Getter.
1043 * atree.ads, atree.adb: Take into account the header slots.
1044 Take into account the single Node_Or_Entity_Field type. Remove
1045 "pragma Assertion_Policy (Ignore);", because the routines in
1046 this package are no longer efficiency critical.
1047 * atree.h: Remove low-level getters, which are no longer used by
1048 sinfo.h and einfo.h.
1049 * einfo-utils.adb: Avoid crash in Known_Alignment.
1050 * live.adb, sem_eval.adb: Remove code that prevents Node_Id from
1051 having a predicate. We don't actually add a predicate to
1052 Node_Id, but we want to be able to for temporary debugging.
1053 * sinfo-utils.adb: Remove code that prevents Node_Id from having
1054 a predicate. Take into account the single Node_Or_Entity_Field
1056 * sinfo-utils.ads: Minor.
1057 * table.ads (Table_Type): Make the components aliased, because
1058 low-level setters in Atree need to take 'Access.
1059 * treepr.adb: Take into account the single Node_Or_Entity_Field
1060 type. Make some code more robust, so we can print out
1062 * types.ads: Move types here for visibility purposes.
1063 * gcc-interface/gigi.h, gcc-interface/trans.c: Take into account
1064 the Node_Header change in the GNAT front end.
1065 * gcc-interface/cuintp.c, gcc-interface/targtyps.c: Add because
1066 gigi.h now refers to type Node_Header, which is in sinfo.h.
1068 2021-09-23 Yannick Moy <moy@adacore.com>
1070 * libgnat/a-strfix.adb (Delete, Insert, Overwrite,
1071 Replace_Slice): Remove SPARK_Mode Off.
1072 * libgnat/a-strfix.ads (Insert, Overwrite, Replace_Slice):
1073 Strengthen precondition.
1075 2021-09-23 Piotr Trojanek <trojanek@adacore.com>
1077 * libgnat/a-strbou.ads (Generic_Bounded_Length): Remove non-null
1080 2021-09-23 Steve Baird <baird@adacore.com>
1082 * doc/gnat_rm/implementation_defined_characteristics.rst: Update
1083 this section to reflect the current version of Ada RM M.2.
1084 * gnat_rm.texi: Regenerate.
1086 2021-09-22 Yannick Moy <moy@adacore.com>
1088 * libgnat/a-strfix.ads (Trim): Simplify contracts.
1089 * libgnat/a-strfix.adb (Trim): Remove white space.
1091 2021-09-22 Piotr Trojanek <trojanek@adacore.com>
1093 * exp_ch4.adb (Expand_N_Op_Eq): Reuse Is_Attribute_Result.
1094 * exp_prag.adb (Expand_Attributes): Reuse Is_Attribute_Old.
1096 2021-09-22 Yannick Moy <moy@adacore.com>
1098 * sem_ch3.adb (Analyze_Object_Declaration): Do not insert a
1099 predicate check after a deferred constant declaration.
1101 2021-09-22 Bob Duff <duff@adacore.com>
1103 * contracts.adb, einfo-utils.adb, einfo-utils.ads, exp_ch7.adb,
1104 exp_ch9.adb, exp_disp.adb, exp_prag.adb, exp_smem.adb,
1105 exp_util.adb, freeze.adb, sem_aggr.adb, sem_attr.adb,
1106 sem_ch8.adb, sem_prag.ads, sem_util.adb, sem_util.ads: Fix
1108 * errout.adb, erroutc.adb: Remove pragmas Suppress.
1109 * err_vars.ads: Initialize variables that were previously being
1112 2021-09-22 Yannick Moy <moy@adacore.com>
1114 * libgnat/a-strunb.ads: Mark package in SPARK with private part
1116 (Free): Mark not in SPARK.
1118 2021-09-22 Arnaud Charlet <charlet@adacore.com>
1120 * snames.ads-tmpl: Update status of some attributes.
1122 2021-09-22 Doug Rupp <rupp@adacore.com>
1124 * libgnarl/s-interr__vxworks.adb (Interfaces.C): Remove as
1126 (System.VxWorks.Ext): Import.
1127 (System.VxWorks.Ext.STATUS): use type.
1128 (STATUS): New subtype.
1130 (Interrupt_Connector): Return STATUS type vice int.
1131 (Interrupt_Connect, Notify_Interrupt, Unbind_Handler,
1132 Interrupt_Server_Task): Rename Status to Result. Assert Result =
1134 * libgnarl/s-osinte__vxworks.adb (To_Clock_Ticks): Define constant
1135 IERR, and return it vice ERROR.
1136 (Binary_Semaphore_Delete): Return STATUS type vice int.
1137 (Binary_Semaphore_Obtain): Likewise.
1138 (Binary_Semaphore_Release): Likewise.
1139 (Binary_Semaphore_Flush): Likewise.
1140 * libgnarl/s-osinte__vxworks.ads (SVE): Renaming of
1142 (STATUS): Use SVE in declaration of subtype.
1144 (vx_freq_t): Likewise.
1146 (gitpid): Use SVE in renaming of subprogram
1147 (Task_Stop): Likewise.
1148 (Task_Cont): Likewise.
1149 (Int_Lock): Likewise.
1150 (Int_Unlock): Likewise.
1151 (Set_Time_Slice): Likewise.
1152 (semDelete): Likewise.
1153 (taskCpuAffinitySet): Likewise.
1154 (taskMaskAffinitySet): Likewise.
1155 (sigset_t): Use SVE in declaration of type.
1156 (OK): Remove as unused.
1158 (taskOptionsGet): return STATUS vice int.
1159 (taskSuspend): Likewise.
1160 (taskResume): Likewise.
1161 (taskDelay): Likewise.
1162 (taskVarAdd): Likewise.
1163 (taskVarDelete): Likewise.
1164 (taskVarSet): Likewise.
1165 (tlkKeyCreate): Likewise.
1166 (taskPrioritySet): Likewise.
1167 (semGive): Likewise.
1168 (semTake): Likewise.
1169 (Binary_Semaphore_Delete): Likewise.
1170 (Binary_Semaphore_Obtain): Likewise.
1171 (Binary_Semaphore_Release): Likewise.
1172 (Binary_Semaphore_Flush): Likewise.
1173 (Interrupt_Connect): Likewise.
1174 * libgnarl/s-taprop__vxworks.adb
1175 (System.VxWorks.Ext.STATUS): use type.
1176 (int): Syntactically align subtype.
1177 (STATUS): New subtype.
1179 (Finalize_Lock): Check STATUS vice int. Assert OK.
1180 (Finalize_Lock): Likewise.
1181 (Write_Lock): Likewise.
1182 (Write_Lock): Likewise.
1183 (Write_Lock): Likewise.
1191 (Timed_Sleep): Likewise and test Result.
1192 (Timed_Delay): Likewise and test Result.
1195 (Finalize_TCB): Likewise.
1196 (Suspend_Until_True): Check OK.
1197 (Stop_All_Tasks): Declare Dummy STATUS vice in. Check OK.
1198 (Is_Task_Context): Use OSI renaming.
1199 (Initialize): Use STATUS vice int.
1200 * libgnarl/s-vxwext.adb
1201 (IERR): Renamed from ERROR.
1202 (taskCpuAffinitySet): Return IERR (int).
1203 (taskMaskAffinitySet): Likewise.
1204 * libgnarl/s-vxwext.ads
1205 (STATUS): New subtype.
1206 (OK): New STATUS constant.
1208 * libgnarl/s-vxwext__kernel-smp.adb
1209 (IERR): Renamed from ERROR.
1210 (Int_Lock): Return IERR.
1211 (semDelete): Return STATUS.
1212 (Task_Cont): Likewise.
1213 (Task_Stop): Likewise.
1214 * libgnarl/s-vxwext__kernel.adb
1215 (IERR): Renamed from ERROR.
1216 (semDelete): Return STATUS.
1217 (Task_Cont): Likewise.
1218 (Task_Stop): Likewise.
1219 (taskCpuAffinitySet): Return IERR (int)
1220 (taskMaskAffinitySet): Likewise.
1221 * libgnarl/s-vxwext__kernel.ads
1222 (STATUS): New subtype.
1223 (OK): New STATUS constant.
1225 (Interrupt_Connect): Return STATUS
1226 (semDelete): Likewise.
1227 (Task_Cont): Likewise.
1228 (Task_Stop): Likewise.
1229 (Set_Time_Slice): Likewise.
1230 * libgnarl/s-vxwext__rtp-smp.adb
1231 (IERR): Renamed from ERROR.
1232 (Int_Lock): return IERR constant vice ERROR.
1233 (Interrupt_Connect): Return STATUS.
1234 (semDelete): Likewise.
1235 (Set_Time_Slice): Likewise.
1236 * libgnarl/s-vxwext__rtp.adb
1237 (IERR): Renamed from ERROR.
1238 (Int_Lock): return IERR constant vice ERROR.
1239 (Int_Unlock): Return STATUS.
1240 (semDelete): Likewise.
1241 (Set_Time_Slice): Likewise.
1242 (taskCpuAffinitySet): Return IERR (int)
1243 (taskMaskAffinitySet): Likewise.
1244 * libgnarl/s-vxwext__rtp.ads
1245 (STATUS): New subtype.
1246 (OK): New STATUS constant.
1248 (Interrupt_Connect): Return STATUS
1249 (semDelete): Likewise.
1250 (Task_Cont): Likewise.
1251 (Task_Stop): Likewise.
1252 (Set_Time_Slice): Likewise.
1254 2021-09-22 Arnaud Charlet <charlet@adacore.com>
1256 * prep.adb (Preprocess): Allow for more flexibility when
1257 Relaxed_RM_Semantics is set.
1259 2021-09-22 Pierre-Alexandre Bazin <bazin@adacore.com>
1261 * libgnat/a-strbou.adb: Turn SPARK_Mode on.
1262 * libgnat/a-strbou.ads: Write contracts.
1263 * libgnat/a-strfix.ads (Index): Fix grammar error in a comment.
1264 * libgnat/a-strsea.ads (Index): Likewise.
1265 * libgnat/a-strsup.adb: Rewrite the body to take into account
1266 the new definition of Super_String using Relaxed_Initialization
1268 (Super_Replicate, Super_Translate, Times): Added loop
1269 invariants, and ghost lemmas for Super_Replicate and Times.
1270 (Super_Trim): Rewrite the body using search functions to
1271 determine the cutting points.
1272 (Super_Element, Super_Length, Super_Slice, Super_To_String):
1273 Remove (now written as expression functions in a-strsup.ads).
1274 * libgnat/a-strsup.ads: Added contracts.
1275 (Super_Element, Super_Length, Super_Slice, Super_To_String):
1276 Rewrite as expression functions.
1278 2021-09-22 Yannick Moy <moy@adacore.com>
1280 * sem_ch13.adb (Build_Predicate_Functions): Add guard.
1282 2021-09-22 Doug Rupp <rupp@adacore.com>
1284 * libgnarl/s-vxwext.ads (BOOL): New int type.
1285 (Interrupt_Context): Change return type to BOOL.
1286 * libgnarl/s-vxwext__kernel.ads: Likewise.
1287 * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
1288 * libgnarl/s-vxwext__rtp.adb: Likewise.
1289 * libgnarl/s-vxwext__rtp.ads: Likewise.
1290 * libgnarl/s-osinte__vxworks.adb (Interrupt_Context): Change
1291 return type to BOOL.
1292 * libgnarl/s-osinte__vxworks.ads (BOOL) New subtype.
1293 (taskIsSuspended): Change return type to BOOL.
1294 (Interrupt_Context): Change return type to BOOL. Adjust comments
1296 * libgnarl/s-taprop__vxworks.adb (System.VxWorks.Ext.BOOL):
1298 (Is_Task_Context): Test Interrupt_Context against 0.
1299 * libgnat/i-vxwork.ads (BOOL): New int.
1300 (intContext): Change return type to BOOL. Adjust comments.
1301 * libgnat/i-vxwork__x86.ads: Likewise.
1303 2021-09-22 Piotr Trojanek <trojanek@adacore.com>
1305 * sem_aux.adb, sem_aux.ads (Package_Body): Moved from GNATprove.
1306 * sem_elab.adb (Spec_And_Body_From_Entity): Refine type of parameter.
1308 2021-09-22 Arnaud Charlet <charlet@adacore.com>
1310 * doc/gnat_ugn/platform_specific_information.rst: Improve doc
1311 on permission and containers.
1312 * gnat_ugn.texi: Regenerate.
1314 2021-09-22 Yannick Moy <moy@adacore.com>
1316 * atree.adb (Rewrite): Fix parent node of shared aspects.
1317 * atree.ads (Rewrite): Add ??? comment on incorrect
1319 * einfo-utils.adb (Known_Esize): Fix logic.
1320 * sem_ch13.adb (Alignment_Check_For_Size_Change,
1321 Analyze_Attribute_Definition_Clause): Protect against unset
1324 2021-09-22 Yannick Moy <moy@adacore.com>
1326 * freeze.adb (Build_Renamed_Body): Special case for GNATprove.
1327 * sem_ch6.adb (Analyze_Expression_Function): Remove useless test
1328 for a node to come from source, which becomes harmful otherwise.
1330 2021-09-22 Justin Squirek <squirek@adacore.com>
1332 * ali.adb, ali.ads (Scan_ALI): Remove use of deprecated
1333 parameter Ignore_ED, and all specification for Lower in call to
1335 * ali-util.adb (Read_Withed_ALIs): Modify call to Scan_ALI.
1336 * clean.adb (Clean_Executables): Likewise.
1337 * gnatbind.adb (Add_Artificial_ALI_File, Executable section):
1339 * gnatlink.adb (Executable section): Likewise.
1340 * gnatls.adb (Executable section): Likewise.
1341 * make.adb (Check, Wait_For_Available_Slot): Likewise.
1342 * aspects.ads: Add Aspect_No_Controlled_Parts to
1343 Nonoverridable_Aspect_Id
1344 * opt.ads: Remove function pointers used as a workaround for
1346 * osint-c.adb (Executable section): Remove setting of function
1347 pointer workarounds needed for ASIS.
1348 * osint.adb (Read_Default_Search_Dirs): Correct behavior to
1349 detect EOL characters.
1350 * par_sco.adb (Output_Header): Remove comment regarding use of
1352 (Traverse_Sync_Definition): Renamed to
1353 Traverse_Protected_Or_Task_Definition.
1354 * pprint.adb (Interal_List_Name): Add description about purpose,
1355 and refactor conditional statement.
1357 * repinfo.adb (List_Rep_Info, Write_Info_Line): Remove use of
1359 * scng.adb (Scan): Remove CODEFIX question, and minor comment
1361 * sem_attr.adb (Analyze_Image_Attribute): Remove special
1362 processing for 'Img.
1363 * sem_ch6.adb (Check_Untagged_Equality): Add RM reference.
1364 (FCE): Add comment describing behavior.
1365 (Is_Non_Overriding_Operation): Minor comment formatting change.
1366 * sem_type.adb (Is_Actual_Subprogram): Add comment about
1367 Comes_From_Source test.
1368 (Matching_Types): Describe non-matching cases.
1369 * sem_util.adb (Is_Confirming): Add stub case for
1370 No_Controlled_Parts.
1372 2021-09-22 Yannick Moy <moy@adacore.com>
1374 * sem_ch13.adb (Build_Predicate_Functions): Access
1375 Predicated_Parent only on subtypes.
1377 2021-09-22 Arnaud Charlet <charlet@adacore.com>
1379 * sem_prag.adb (Process_Import_Or_Interface): Relax error when
1380 Relaxed_RM_Semantics.
1382 2021-09-22 Steve Baird <baird@adacore.com>
1384 * libgnat/s-regpat.adb (Match): Handle the case where Self.First
1385 is not NUL (so we know the first character we are looking for),
1386 but case-insensitive matching has
1388 (Optimize): In the case of an EXACTF Op, set Self.First as is
1389 done in the EXACT case, except with the addition of a call to
1392 2021-09-22 Eric Botcazou <ebotcazou@adacore.com>
1394 * libgnat/s-imenne.ads, libgnat/s-imenne.adb: Delete.
1395 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove s-imenne.o.
1396 (GNATBIND_OBJS): Likewise.
1398 2021-09-22 Yannick Moy <moy@adacore.com>
1400 * einfo.ads: Fix comments.
1401 * exp_aggr.adb: Fix variable name.
1402 * exp_util.adb: Fix comments.
1403 * sem_ch13.adb: Fix comments.
1404 * sem_ch3.adb: Fix comments and variable name.
1406 2021-09-22 Doug Rupp <rupp@adacore.com>
1408 * libgnarl/s-osinte__vxworks.ads: Make procedure vice function.
1409 * libgnarl/s-vxwext.ads: Likewise.
1410 * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
1411 * libgnarl/s-vxwext__kernel.adb: Likewise.
1412 * libgnarl/s-vxwext__kernel.ads: Likewise.
1413 * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
1414 * libgnarl/s-vxwext__rtp.adb: Likewise.
1415 * libgnarl/s-vxwext__rtp.ads: Likewise.
1416 * libgnarl/s-taprop__vxworks.adb (Stop_All_Tasks): Call
1417 Int_Unlock as a procedure.
1419 2021-09-22 Doug Rupp <rupp@adacore.com>
1421 * libgnarl/s-osinte__vxworks.ads (SVE): New package renaming
1422 (vx_freq_t): New subtype.
1423 (sysClkRateGet): Return vx_freq_t.
1424 * libgnarl/s-vxwext.ads (vx_freq_t): New type.
1425 * libgnarl/s-vxwext__kernel.ads: Likewise.
1426 * libgnarl/s-vxwext__rtp.ads: Likewise.
1428 2021-09-22 Ghjuvan Lacambre <lacambre@adacore.com>
1430 * sem_case.adb (Composite_Case_Ops): Replace 'Image with
1433 2021-09-22 Eric Botcazou <ebotcazou@adacore.com>
1435 * exp_ch4.adb (Expand_N_If_Expression): Generate an intermediate
1436 temporary when the expression is a condition in an outer decision
1437 and control-flow optimizations are suppressed.
1439 2021-09-22 Steve Baird <baird@adacore.com>
1441 * exp_ch5.adb (Expand_General_Case_Statement.Pattern_Match): Add
1442 new function Indexed_Element to handle array element
1443 comparisons. Handle case choices that are array aggregates,
1444 string literals, or names denoting constants.
1445 * sem_case.adb (Composite_Case_Ops.Array_Case_Ops): New package
1446 providing utilities needed for casing on arrays.
1447 (Composite_Case_Ops.Choice_Analysis): If necessary, include
1448 array length as a "component" (like a discriminant) when
1449 traversing components. We do not (yet) partition choice analysis
1450 to deal with unequal length choices separately. Instead, we
1451 embed everything in the minimum-dimensionality Cartesian product
1452 space needed to handle all choices properly; this is determined
1453 by the length of the longest choice pattern.
1454 (Composite_Case_Ops.Choice_Analysis.Traverse_Discrete_Parts):
1455 Include length as a "component" in the traversal if necessary.
1456 (Composite_Case_Ops.Choice_Analysis.Parse_Choice.Traverse_Choice):
1457 Add support for case choices that are string literals or names
1459 (Composite_Case_Ops.Choice_Analysis): Include length as a
1460 "component" in the analysis if necessary.
1461 (Check_Choices.Check_Case_Pattern_Choices.Ops.Value_Sets.Value_Index_Count):
1462 Improve error message when capacity exceeded.
1463 * doc/gnat_rm/implementation_defined_pragmas.rst: Update
1464 documentation to reflect current implementation status.
1465 * gnat_rm.texi: Regenerate.
1467 2021-09-22 Eric Botcazou <ebotcazou@adacore.com>
1469 * freeze.adb (Check_Component_Storage_Order): Give a specific error
1470 message for non-byte-aligned component in the packed case. Replace
1471 "composite" with "record" in both cases.
1473 2021-09-22 Arnaud Charlet <charlet@adacore.com>
1475 * libgnarl/a-tasini.ads, libgnarl/a-tasini.adb: Make compatible
1476 with No_Elaboration_Code_All.
1477 * libgnarl/s-taskin.ads, libgnarl/s-tassta.adb: Adjust
1480 2021-09-22 Arnaud Charlet <charlet@adacore.com>
1482 * sem_ch6.adb (Check_Returns): Change message on missing return.
1484 2021-09-22 Arnaud Charlet <charlet@adacore.com>
1486 * gnatfind.adb, gnatxref.adb: Mark these tools as obsolete
1487 before removing them completely.
1489 2021-09-22 Eric Botcazou <ebotcazou@adacore.com>
1491 * gcc-interface/decl.c (range_cannot_be_superflat): Tweak comments.
1493 2021-09-21 Doug Rupp <rupp@adacore.com>
1495 * init.c (__gnat_error_handler) [LynxOS]: Add a comment about
1496 missing optional args.
1498 2021-09-21 Yannick Moy <moy@adacore.com>
1500 * gen_il-gen.adb (Put_Opt_Subtype): Add suffix.
1502 2021-09-21 Justin Squirek <squirek@adacore.com>
1504 * sem_util.adb (Accessibility_Level): Remove spurious special
1505 case for protected type components.
1506 * exp_ch4.adb (Generate_Accessibility_Check): Use general
1507 Accessibility_Level instead of the low-level function
1510 2021-09-21 Eric Botcazou <ebotcazou@adacore.com>
1512 * gnat_ugn.texi: Regenerate.
1514 2021-09-21 Matthieu Eyraud <eyraud@adacore.com>
1516 * par_sco.adb (Traverse_One): Add support for pragma Invariant /
1519 2021-09-21 Bob Duff <duff@adacore.com>
1521 * gen_il-gen.adb (Put_Opt_Subtype): Print out subtypes of the
1523 subtype Opt_N_Declaration is
1524 Node_Id with Predicate =>
1525 Opt_N_Declaration = Empty or else
1526 Opt_N_Declaration in N_Declaration_Id;
1527 One for each node or entity type, with the predicate allowing
1529 * atree.adb (Parent, Set_Parent): Remove unnecessary "Atree.".
1531 2021-09-21 Patrick Bernardi <bernardi@adacore.com>
1533 * bindgen.adb (Gen_Adainit): For targets that suppress the
1534 standard library: set the default stack size global variable if
1535 a value is provided via the -d switch, and generate a call to
1536 __gnat_initialize_stack_limit if stack checking using stack
1539 2021-09-21 Bob Duff <duff@adacore.com>
1541 * sem_ch13.adb (Stream_Size): Print message about allowed stream
1542 sizes even if other error were already found. This avoids
1543 falling into the 'else', which prints "Stream_Size cannot be
1544 given for...", which is misleading -- the Size COULD be given if
1547 2021-09-21 Daniel Mercier <mercier@adacore.com>
1549 * exp_util.adb (Build_Temporary): In case of an external DISCR
1550 symbol, set the related expression for CodePeer so that a more
1551 comprehensible message can be emitted to the user.
1553 2021-09-21 Eric Botcazou <ebotcazou@adacore.com>
1555 * libgnat/s-dwalin.adb (Parse_Header): Tweak comments.
1556 (Read_Entry_Format_Array): Tweak exception message.
1557 (Symbolic_Address.Set_Result): Likewise.
1559 2021-09-21 Ed Schonberg <schonberg@adacore.com>
1561 * exp_ch7.adb (Make_Init_Call): Add guard to protect against a
1562 missing initialization procedure for a type.
1564 2021-09-21 Doug Rupp <rupp@adacore.com>
1566 * Makefile.rtl: Remove unused VxWorks sections.
1567 * libgnarl/s-vxwext__noints.adb: Remove.
1568 * libgnarl/s-vxwext__vthreads.ads: Remove.
1569 * libgnat/a-elchha__vxworks-ppc-full.adb: Remove.
1570 * libgnat/s-osprim__vxworks.adb: Remove.
1571 * libgnat/s-osvers__vxworks-653.ads: Remove.
1572 * libgnat/system-vxworks-e500-vthread.ads: Remove.
1573 * libgnat/system-vxworks-ppc-vthread.ads: Remove.
1574 * libgnat/system-vxworks-x86-vthread.ads: Remove.
1576 2021-09-21 Bob Duff <duff@adacore.com>
1578 * uintp.ads, uintp.adb (UI_Is_In_Int_Range): Change the type of
1579 the formal parameter to Valid_Uint. Remove code that preserved
1580 the previous behavior, and replace it with an assertion. The
1581 previous behavior is no longer needed given the recent change to
1583 (No, Present): Add comment.
1585 2021-09-21 Bob Duff <duff@adacore.com>
1587 * sem_eval.adb (Fold_Shift): Replace an if_expression with an
1590 2021-09-21 Bob Duff <duff@adacore.com>
1592 * uintp.ads, uintp.adb: Add assertions.
1593 (Ubool, Opt_Ubool): New "boolean" subtypes.
1594 (UI_Is_In_Int_Range): The parameter should probably be
1595 Valid_Uint, but we don't change that for now, because it causes
1597 * sem_util.ads, sem_util.adb (Is_True, Is_False,
1598 Static_Boolean): Use Opt_Ubool subtype. Document the fact that
1599 Is_True (No_Uint) = True. Implement Is_False in terms of
1600 Is_True. We considered changing Static_Boolean to return Uint_1
1601 in case of error, but that doesn't fit in well with
1603 (Has_Compatible_Alignment_Internal): Deal with cases where Offs
1604 is No_Uint. Change one "and" to "and then" to ensure we don't
1605 pass No_Uint to ">", which would violate the new assertions.
1606 * exp_util.adb, freeze.adb, sem_ch13.adb: Avoid violating new
1607 assertions in Uintp.
1609 2021-09-21 Eric Botcazou <ebotcazou@adacore.com>
1611 * libgnat/s-dwalin.adb (To_File_Name): Fetch only the last string
1612 from the .debug_line_str section.
1613 (Symbolic_Address.Set_Result): Likewise.
1615 2021-09-21 Eric Botcazou <ebotcazou@adacore.com>
1617 * libgnat/s-dwalin.adb (Skip_Form): Fix cases of DW_FORM_addrx
1618 and DW_FORM_implicit_const. Replace Constraint_Error with
1621 2021-09-21 Ghjuvan Lacambre <lacambre@adacore.com>
1623 * exp_pakd.adb (Expand_Packed_Not): Replace expression with
1626 2021-09-21 Ghjuvan Lacambre <lacambre@adacore.com>
1628 * sem_eval.adb (Is_Static_Subtype): Take predicates created
1629 through "predicate" pragma into account.
1631 2021-09-21 Frederic Konrad <konrad@adacore.com>
1633 * Makefile.rtl (aarch64-rtems*): Add GNATRTL_128BIT_PAIRS to
1634 the LIBGNAT_TARGET_PAIRS list and also GNATRTL_128BIT_OBJS to
1635 the EXTRA_GNATRTL_NONTASKING_OBJS list.
1637 2021-09-21 Gary Dismukes <dismukes@adacore.com>
1639 * sem_ch4.adb (Remove_Abstract_Operations): Add condition to
1640 test for an E_Operator as part of criteria for setting
1641 Abstract_Op on interpretations involving predefined operators.
1643 2021-09-21 Javier Miranda <miranda@adacore.com>
1645 * exp_ch6.adb (Expand_Simple_Function_Return): For explicit
1646 dereference of type conversion, enable code that ensures that
1647 the tag of the result is that of the result type.
1649 2021-09-21 Bob Duff <duff@adacore.com>
1651 * einfo-utils.adb: Add support (currently disabled) for using
1652 "initial zero" instead of "Uint_0" to represent "unknown". Call
1653 Known_ functions, instead of evilly duplicating their code
1655 * fe.h (No_Uint_To_0): New function to convert No_Uint to
1656 Uint_0, in order to preserve existing behavior.
1657 (Copy_Esize, Copy_RM_Size): New imports from Einfo.Utils.
1658 * cstand.adb: Set size fields of Standard_Debug_Renaming_Type
1659 and Standard_Exception_Type.
1660 * checks.adb, exp_attr.adb, exp_ch3.adb, exp_ch5.adb,
1661 exp_ch6.adb, exp_pakd.adb, exp_util.adb, freeze.adb, itypes.adb,
1662 layout.adb, repinfo.adb, sem_attr.adb, sem_ch12.adb,
1663 sem_ch13.adb, sem_ch13.ads, sem_ch3.adb, sem_ch7.adb,
1664 sem_util.adb: Protect calls with Known_..., use Copy_... Remove
1665 assumption that Uint_0 represents "unknown".
1666 * types.ads (Nonzero_Int): New subtype.
1667 * gcc-interface/decl.c, gcc-interface/trans.c: Protect calls
1668 with Known_... and use Copy_... as appropriate, to avoid
1669 blowing up in unknown cases. Similarly, call No_Uint_To_0 to
1670 preserve existing behavior.
1672 2021-09-21 Steve Baird <baird@adacore.com>
1674 * sem_ch13.adb (Analyze_Aspect_Specifications): Add a new nested
1675 function, Directly_Specified, and then use it in the
1676 implementation of the required check.
1678 2021-09-21 Steve Baird <baird@adacore.com>
1680 * libgnat/a-costso.ads, libgnat/a-costso.adb: A new library
1681 unit, Ada.Containers.Stable_Sorting, which exports a pair of
1682 generics (one within the other) which are instantiated by each
1683 of the 5 doubly-linked list container generics to implement
1684 their respective Sort procedures. We use a pair of generics,
1685 rather than a single generic, in order to further reduce code
1686 duplication. The outer generic takes a formal private Node_Ref
1687 type representing a reference to a linked list element. For some
1688 instances, the corresponding actual parameter will be an access
1689 type; for others, it will be the index type for an array.
1690 * Makefile.rtl: Include new Ada.Containers.Stable_Sorting unit.
1691 * libgnat/a-cbdlli.adb, libgnat/a-cdlili.adb,
1692 libgnat/a-cfdlli.adb, libgnat/a-cidlli.adb, libgnat/a-crdlli.adb
1693 (Sort): Replace existing Sort implementation with a call to an
1695 Ada.Containers.Stable_Sorting.Doubly_Linked_List_Sort. Declare
1696 the (trivial) actual parameters needed to declare that instance.
1697 * libgnat/a-cfdlli.ads: Fix a bug encountered during testing in
1698 the postcondition for M_Elements_Sorted. With a partial
1699 ordering, it is possible for all three of (X < Y), (Y < X),
1700 and (X = Y) to be simultaneously false, so that case needs to
1703 2021-09-21 Piotr Trojanek <trojanek@adacore.com>
1705 * errout.adb (Error_Msg_Internal): Fix references to Sptr and
1706 Optr in comment; fix grammar of "low-level" where it is used as
1709 2021-09-21 Piotr Trojanek <trojanek@adacore.com>
1711 * errout.adb (Write_Source_Code_Lines): Use Cur_Loc before
1712 incrementing it, so that we don't need to decrement it.
1714 2021-09-21 Yannick Moy <moy@adacore.com>
1716 * errout.adb (Get_Line_End): Do not allow the result to go past
1717 the end of the buffer.
1719 2021-09-21 Ed Schonberg <schonberg@adacore.com>
1721 * sem_ch3.adb (Process_Discriminant_Expressions): If the
1722 constraint is for a Component_Definition that appears in a
1723 Component_Declaration, the entity to be used to create the
1724 potentially global symbol is the Defining_Identifier of the
1725 Component_Declaration.
1727 2021-09-21 Bob Duff <duff@adacore.com>
1729 * libgnat/a-stbufi.ads, libgnat/a-stbufi.adb: Change all
1730 occurrences of GNAT.OS_Lib to System.OS_Lib.
1732 2021-09-20 Piotr Trojanek <trojanek@adacore.com>
1734 * inline.adb (Has_Excluded_Declaration): Remove redundant guard;
1735 the guarded code will call First on a No_List, which is
1736 well-defined and gives Empty.
1738 2021-09-20 Piotr Trojanek <trojanek@adacore.com>
1740 * inline.adb (Has_Excluded_Declaration): Rename and reduce scope
1741 of a local variable.
1743 2021-09-20 Bob Duff <duff@adacore.com>
1745 * uintp.ads, uintp.adb (Present, No): New functions for
1746 comparing with No_Uint.
1747 * checks.adb, einfo-utils.adb, exp_aggr.adb, exp_attr.adb,
1748 exp_ch3.adb, exp_ch4.adb, exp_dbug.adb, exp_disp.adb,
1749 exp_util.adb, repinfo.adb, repinfo-input.adb, scn.adb,
1750 sem_attr.adb, sem_ch13.adb, sem_eval.adb, sem_util.adb,
1751 sinfo-utils.adb, treepr.adb: Use Present (...) instead of "...
1752 /= No_Uint", and No (...) instead of "... = No_Uint".
1754 2021-09-20 Claire Dross <dross@adacore.com>
1756 * libgnat/s-ficobl.ads: The entire package has a SPARK_Mode =>
1759 2021-09-20 Doug Rupp <rupp@adacore.com>
1761 * libgnat/a-calend.adb: Remove time_t, replace with OS_Time.
1762 * libgnat/s-os_lib.ads: Fix comments regarding time_t conversion
1763 functions to reflect the use of To_Ada in in Ada.Calendar
1765 * sysdep.c (__gnat_localtime_tzoff): Use OS_Time instead of
1768 2021-09-20 Piotr Trojanek <trojanek@adacore.com>
1770 * sem_res.adb (Resolve_Actual): Remove
1772 2021-09-20 Bob Duff <duff@adacore.com>
1774 * einfo-utils.ads, einfo-utils.adb, fe.h, einfo.ads,
1775 gen_il-fields.ads: Remove unused and no-longer-used routines.
1776 Move related routines together. Rewrite incorrect
1777 documentation, and documentation that will be incorrect when
1778 e.g. Esize-related routines are fixed. Remove unused field
1779 Normalized_Position_Max.
1780 * cstand.adb, exp_pakd.adb, freeze.adb,
1781 gen_il-gen-gen_entities.adb, itypes.adb, layout.adb,
1782 sem_ch10.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
1783 sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_prag.adb,
1784 sem_util.adb, ttypes.ads: Update calls to routines removed from
1785 or renamed in Einfo.Utils.
1786 * uintp.ads (Upos): Fix this subtype, which was unintentionally
1787 declared to include Uint_0.
1789 2021-09-20 Piotr Trojanek <trojanek@adacore.com>
1791 * exp_ch7.adb (Expand_N_Package_Declaration): Fix wording in
1793 * exp_disp.adb (Mark_DT): Remove unnecessary initialization of
1796 2021-09-20 Piotr Trojanek <trojanek@adacore.com>
1798 * contracts.adb (Add_Contract_Item): Accept volatile-related
1799 properties on constants.
1800 (Analyze_Object_Contract): Check external properties on
1801 constants; accept volatile constants.
1802 (Check_Type_Or_Object_External_Properties): Replace "variable"
1803 with "object" in error messages; replace Decl_Kind with a local
1805 * sem_prag.adb (Analyze_Pragma): Accept volatile-related
1806 properties on constants.
1808 2021-09-20 Pierre-Alexandre Bazin <bazin@adacore.com>
1810 * libgnat/a-strfix.adb ("*"): Added loop invariants and lemmas
1812 (Delete): Added assertions for proof, and conditions to avoid
1814 (Head): Added loop invariant.
1815 (Insert): Same as Delete.
1816 (Move): Declared with SPARK_Mode Off.
1817 (Overwrite): Added assertions for proof, and conditions to avoid
1819 (Replace_Slice): Added assertions for proof, and conditions to
1821 (Tail): Added loop invariant and avoided overflows.
1822 (Translate): Added loop invariants.
1823 (Trim): Ensured empty strings returned start at 1.
1824 * libgnat/a-strfix.ads (Index): Rewrote contract cases for
1826 (Index_Non_Blank): Separated the null string case.
1827 (Count): Specified Mapping shouldn't be null.
1828 (Find_Token): Specified Source'First should be Positive when no
1830 (Translate): Specified Mapping shouldn't be null.
1831 ("*"): Rewrote postcondition for easier proof.
1832 * libgnat/a-strsea.adb (Belongs): Added postcondition.
1833 (Count): Rewrote loops and added loop invariants to avoid
1835 (Find_Token): Added loop invariants.
1836 (Index): Rewrote loops to avoid overflows and added loop
1837 invariants for proof.
1838 (Index_Non_Blank): Added loop invariants.
1839 (Is_Identity): New function isolated without SPARK_Mode.
1840 * libgnat/a-strsea.ads: Fix starting comment as package is no
1842 (Match): Declared ghost expression function Match.
1843 (Is_Identity): Described identity in the postcondition.
1844 (Index, Index_Non_Blank, Count, Find_Token): Added contract from
1847 2021-09-20 Piotr Trojanek <trojanek@adacore.com>
1849 * sem_ch13.adb (Resolve_Aspect_Aggregate): Move comments after
1850 specs; fix typo in header box; cleanup whitespace.
1852 2021-09-20 Eric Botcazou <ebotcazou@adacore.com>
1854 * libgnat/s-objrea.adb (Get_Load_Address): Return 0 for ELF.
1856 2021-09-20 Eric Botcazou <ebotcazou@adacore.com>
1858 * adaint.c (__gnat_get_executable_load_address): Add Win32 support.
1859 * libgnat/s-objrea.ads (Get_Xcode_Bounds): Fix typo in comment.
1860 (Object_File): Minor reformatting.
1861 (ELF_Object_File): Uncomment predicate.
1862 (PECOFF_Object_File): Likewise.
1863 (XCOFF32_Object_File): Likewise.
1864 * libgnat/s-objrea.adb: Minor reformatting throughout.
1865 (Get_Load_Address): Implement for PE-COFF.
1866 * libgnat/s-dwalin.ads: Remove clause for System.Storage_Elements
1867 and use consistent wording in comments.
1868 (Dwarf_Context): Set type of Low, High and Load_Address to Address.
1869 * libgnat/s-dwalin.adb (Get_Load_Displacement): New function.
1870 (Is_Inside): Call Get_Load_Displacement.
1871 (Low_Address): Likewise.
1872 (Open): Adjust to type change.
1873 (Aranges_Lookup): Change type of Addr to Address.
1874 (Read_Aranges_Entry): Likewise for Start and adjust.
1875 (Enable_Cach): Adjust to type change.
1876 (Symbolic_Address): Change type of Addr to Address.
1877 (Symbolic_Traceback): Call Get_Load_Displacement.
1879 2021-09-20 Piotr Trojanek <trojanek@adacore.com>
1881 * exp_disp.adb (Make_DT): Move call to Set_Has_Dispatch_Table,
1882 so it is executed regardless of the Generate_SCIL mode.
1884 2021-09-20 Ed Schonberg <schonberg@adacore.com>
1886 * exp_util.ads (Force_Evaluation): Add formal parameter
1887 Discr_Number, to indicate discriminant expression for which an
1888 external name must be created.
1889 (Remove_Side_Effects): Ditto.
1890 * exp_util.adb (Force_Evaluation): Call Remove_Side_Effects with
1892 (Remove_Side_Effects, Build_Temporary): If Discr_Number is
1893 positive, create an external name with suffix DISCR and the
1894 given discriminant number, analogous to what is done for
1895 temporaries for array type bounds.
1896 * sem_ch3.adb (Process_Discriminant_Expressions): If the
1897 constraint is for an object or component declaration and the
1898 corresponding entity may be visible in another unit, invoke
1899 Force_Evaluation with the new parameter.
1901 2021-09-20 Arnaud Charlet <charlet@adacore.com>
1903 * gen_il-internals.ads (Invalid_Val): Remove, unused and
1906 2021-09-20 Piotr Trojanek <trojanek@adacore.com>
1908 * exp_aggr.adb, exp_ch4.adb, exp_ch5.adb, sprint.adb: Refine
1909 types of local constants.
1911 2021-09-20 Gary Dismukes <dismukes@adacore.com>
1913 * exp_attr.adb (Expand_N_Attribute_Reference): Fold
1914 Preelaborable_Initialization attribute in cases where it hasn't
1915 been folded by the analyzer.
1916 * exp_disp.adb (Original_View_In_Visible_Part): This function is
1917 removed and moved to sem_util.adb.
1918 * sem_attr.adb (Attribute_22): Add
1919 Attribute_Preelaborable_Initialization as an Ada 2022 attribute.
1920 (Analyze_Attribute, Attribute_Preelaborable_Initialization):
1921 Check that the prefix of the attribute is either a formal
1922 private or derived type, or a composite type declared within the
1923 visible part of a package or generic package.
1924 (Eval_Attribute): Perform folding of
1925 Preelaborable_Initialization attribute based on
1926 Has_Preelaborable_Initialization applied to the prefix type.
1927 * sem_ch3.adb (Resolve_Aspects): Add specialized code for
1928 Preelaborable_Initialization used at the end of a package
1929 visible part for setting Known_To_Have_Preelab_Init on types
1930 that are specified with True or that have a conjunction of one
1931 or more P_I attributes applied to formal types.
1932 * sem_ch7.adb (Analyze_Package_Specification): On call to
1933 Has_Preelaborable_Initialization, pass True for new formal
1934 Formal_Types_Have_Preelab_Init, so that error checking treats
1935 subcomponents that are declared within types in generics as
1936 having preelaborable initialization when the subcomponents are
1938 * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Add test for
1939 P_I to prevent calling Make_Pragma_From_Boolean_Aspect, since
1940 this aspect is handled specially and the
1941 Known_To_Have_Preelab_Init flag will get set on types that have
1942 the aspect by other means.
1943 (Analyze_Aspect_Specifications.Analyze_One_Aspect): Add test for
1944 Aspect_Preelaborable_Initialization for allowing the aspect to
1945 be specified on formal type declarations.
1946 (Is_Operational_Item): Treat Attribute_Put_Image as an
1947 operational attribute. The need for this was encountered while
1948 working on these changes.
1949 * sem_util.ads (Has_Preelaborable_Initialization): Add
1950 Formal_Types_Have_Preelab_Init as a new formal parameter that
1952 (Is_Conjunction_Of_Formal_Preelab_Init_Attributes): New
1954 (Original_View_In_Visible_Part): Moved here from exp_disp.adb,
1955 so it can be called by Analyze_Attribute.
1956 * sem_util.adb (Has_Preelaborable_Initialization): Return True
1957 for formal private and derived types when new formal
1958 Formal_Types_Have_Preelab_Init is True, and pass along the
1959 Formal_Types_Have_Preelab_Init flag in the array component case.
1960 (Check_Components): Pass along Formal_Types_Have_Preelab_Init
1961 flag on call to Has_Preelaborable_Initialization.
1962 (Is_Conjunction_Of_Formal_Preelab_Init_Attributes): New function
1963 that returns True when passed an expression that includes one or
1964 more attributes for Preelaborable_Initialization applied to
1965 prefixes that denote formal types.
1966 (Is_Formal_Preelab_Init_Attribute): New utility function nested
1967 within Is_Conjunction_Of_Formal_Preelab_Init_Attributes that
1968 determines whether a node is a P_I attribute applied to a
1969 generic formal type.
1970 (Original_View_In_Visible_Part): Moved here from exp_util.adb,
1971 so it can be called by Analyze_Attribute.
1972 * snames.ads-tmpl: Add note near the start of spec giving
1973 details about what needs to be done when adding a name that
1974 corresponds to both an attribute and a pragma. Delete existing
1975 occurrence of Name_Preelaborable_Initialization, and add a note
1976 comment in the list of Name_* constants at that place,
1977 indicating that it's included in type Pragma_Id, etc., echoing
1978 other such comments for names that are both an attribute and a
1979 pragma. Insert Name_Preelaborable_Initialization in the
1980 alphabetized set of Name_* constants corresponding to
1981 attributes (between First_Attribute_Name and
1982 Last_Attribute_Name).
1983 (type Attribute_Id): Add new literal
1984 Attribute_Preelaborable_Initialization.
1985 (type Pragma_Id): Move Pragma_Preelaborable_Initialization from
1986 its current position to the end of the type, in the special set
1987 of pragma literals that have corresponding atttributes. Add to
1988 accompanying comment, indicating that functions Get_Pragma_Id
1989 and Is_Pragma_Name need to be updated when adding a pragma
1990 literal to the special set.
1991 * snames.adb-tmpl (Get_Pragma_Id): Add case alternative for
1992 Pragma_Preelaborable_Initialization.
1993 (Is_Pragma_Name): Add test for
1994 Name_Preelaborable_Initialization.
1996 2021-09-20 Ghjuvan Lacambre <lacambre@adacore.com>
1998 * sem_ch4.adb (Finc_Non_Universal_Interpretations): Fix check.
2000 2021-09-20 Piotr Trojanek <trojanek@adacore.com>
2002 * sem_ch3.adb (Build_Discriminant_Constraints): Exit once a
2003 first discriminant is found and the Discrim_Present flag is set.
2005 2021-09-20 Bob Duff <duff@adacore.com>
2007 * gnat1drv.adb (Gnat1drv): Avoid calling List_Rep_Info in
2008 Generate_SCIL and GNATprove_Mode.
2009 * repinfo.adb (List_Common_Type_Info): Fix comment.
2011 2021-09-20 Eric Botcazou <ebotcazou@adacore.com>
2013 * libgnat/s-dwalin.ads: Remove clause for Ada.Exceptions.Traceback,
2014 add clause for System.Traceback_Entries and alphabetize.
2016 (STE): New package renaming.
2017 (Symbolic_Traceback): Adjust.
2018 * libgnat/s-dwalin.adb: Remove clauses for Ada.Exceptions.Traceback
2019 and System.Traceback_Entries.
2020 (Symbolic_Traceback): Adjust.
2022 2021-09-20 Ghjuvan Lacambre <lacambre@adacore.com>
2024 * sem_ch4.adb (Find_Non_Universal_Interpretations): Check if
2025 types are compatible before adding interpretation.
2027 2021-09-20 Justin Squirek <squirek@adacore.com>
2029 * exp_ch4.adb (Expand_N_Type_Conversion): Add guard to protect
2030 against calculating accessibility levels against internal
2031 compiler-generated types.
2033 2021-09-20 Ghjuvan Lacambre <lacambre@adacore.com>
2035 * sem_dim.adb (Dimensions_Msg_Of): Capitalize comment.
2037 2021-09-20 Ghjuvan Lacambre <lacambre@adacore.com>
2039 * adabkend.adb (Scan_Back_End_Switches): Replace switch-scanning
2040 logic with call to Backend_Utils.Scan_Common_Back_End_Switches.
2041 * back_end.adb (Scan_Back_End_Switches): Replace switch-scanning
2042 logic with call to Backend_Utils.Scan_Common_Back_End_Switches.
2043 * backend_utils.adb: New file.
2044 * backend_utils.ads: New file.
2045 * gcc-interface/Make-lang.in: Add ada/backend_utils.o.
2047 2021-09-20 Ghjuvan Lacambre <lacambre@adacore.com>
2049 * atree.adb (Get_32_Bit_Field): Declare result before returning.
2051 2021-09-20 Ghjuvan Lacambre <lacambre@adacore.com>
2053 * exp_ch7.adb (Expand_N_Package_Body): Replace
2054 Build_And_Insert_Cuda_Initialization with Expand_CUDA_Package.
2055 * gnat_cuda.adb (Expand_CUDA_Package): New procedure.
2056 (Build_And_Insert_Cuda_Initialization): Make internal.
2057 * gnat_cuda.ads (Expand_CUDA_Package): New procedure.
2058 (Build_And_Insert_Cuda_Initialization): Remove from spec.
2060 2021-09-20 Ghjuvan Lacambre <lacambre@adacore.com>
2062 * usage.adb (Usage): Update -gnatw.c messages.
2064 2021-09-20 Eric Botcazou <ebotcazou@adacore.com>
2066 * sem_aux.adb (Is_By_Reference_Type): Do not test Error_Posted.
2068 2021-09-15 Alexandre Oliva <oliva@adacore.com>
2070 * gcc-interface/utils.c: Include opts.h.
2071 (handle_zero_call_used_regs_attribute): New.
2072 (gnat_internal_attribute_table): Add zero_call_used_regs.
2074 2021-09-14 Eric Botcazou <ebotcazou@adacore.com>
2077 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Enum_Rep>:
2078 Use an unchecked conversion instead of a regular conversion in the
2079 enumeration case and remove Conversion_OK flag in the integer case.
2080 <Attribute_Pos>: Remove superfluous test.
2082 2021-09-14 Eric Botcazou <ebotcazou@adacore.com>
2084 * gcc-interface/decl.c (validate_size): Do not issue an error if the
2085 old size has overflowed.
2087 2021-09-14 Eric Botcazou <ebotcazou@adacore.com>
2089 * gcc-interface/decl.c (gnat_to_gnu_entity): For vector types, make
2090 the representative array the debug type.
2092 2021-09-14 Eric Botcazou <ebotcazou@adacore.com>
2094 * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Turn variable
2095 into constant. Capitalize GCC in warning message.
2096 (intrin_arglists_compatible_p): Change parameter to pointer-to-const
2097 Adjust warning messages. Turn warning into error for vector types.
2098 (intrin_return_compatible_p): Likewise.
2099 (intrin_profiles_compatible_p): Change parameter to pointer-to-const
2101 2021-09-14 Eric Botcazou <ebotcazou@adacore.com>
2103 * libgnat/s-atopri.ads (bool): Delete.
2104 (Atomic_Test_And_Set): Replace bool with Boolean.
2105 (Atomic_Always_Lock_Free): Likewise.
2106 * libgnat/s-aoinar.adb (Is_Lock_Free): Adjust.
2107 * libgnat/s-aomoar.adb (Is_Lock_Free): Likewise.
2108 * libgnat/s-aotase.adb (Atomic_Test_And_Set): Likewise.
2109 * libgnat/s-atopex.adb (Atomic_Compare_And_Exchange): Likewise.
2110 * gcc-interface/decl.c: Include gimple-expr.h.
2111 (intrin_types_incompatible_p): Delete.
2112 (intrin_arglists_compatible_p): Call types_compatible_p.
2113 (intrin_return_compatible_p): Likewise.
2115 2021-09-14 Eric Botcazou <ebotcazou@adacore.com>
2117 * gcc-interface/utils.c (update_pointer_to): Set TYPE_CANONICAL on
2118 pointer and reference types.
2120 2021-09-14 Eric Botcazou <ebotcazou@adacore.com>
2123 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
2124 (-Wall): Minor fixes.
2126 (-Werror): Document that it also sets -gnatwe by default.
2127 * gcc-interface/lang-specs.h (ada): Expand -gnatwe if -Werror is
2128 passed and move expansion of -gnatw switches to before -gnatez.
2130 2021-09-14 Eric Botcazou <ebotcazou@adacore.com>
2132 * gcc-interface/utils.c (can_materialize_object_renaming_p): Do not
2133 call UI_Is_In_Int_Range on the result of Normalized_First_Bit.
2135 2021-09-14 Eric Botcazou <ebotcazou@adacore.com>
2137 * gcc-interface/decl.c (gnat_to_gnu_entity) <is_type>: Declare new
2138 constant. Adjust error message issued by validate_size in the case
2139 of by-reference types.
2140 (validate_size): Always use the error strings passed by the caller.
2142 2021-09-08 liuhongt <hongtao.liu@intel.com>
2144 * gcc-interface/misc.c (gnat_post_options): Issue an error for
2145 -fexcess-precision=16.
2147 2021-08-19 Arnaud Charlet <charlet@adacore.com>
2150 * gcc-interface/Make-lang.in (STAGE1_LIBS): Define on hpux.
2152 2021-08-18 Eric Botcazou <ebotcazou@gcc.gnu.org>
2154 * gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Fix
2155 thinko in latest change.
2157 2021-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
2160 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the
2161 DECL_SOURCE_LOCATION of DECL_IGNORED_P gnu_subprog_decl to
2164 2021-07-25 Arnaud Charlet <charlet@adacore.com>
2166 * libgnat/s-osprim__x32.adb: Add missing with clause.
2168 2021-07-12 Pierre-Marie de Rodat <derodat@adacore.com>
2170 * adaint.c (__gnat_number_of_cpus): Replace "#ifdef" by "#if
2173 2021-07-12 Eric Botcazou <ebotcazou@adacore.com>
2175 * gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Add a
2176 parallel type only when -fgnat-encodings=all is specified.
2177 <E_Array_Type>: Use the PAT name and special suffixes only when
2178 -fgnat-encodings=all is specified.
2179 <E_Array_Subtype>: Build a special type for debugging purposes only
2180 when -fgnat-encodings=all is specified. Add a parallel type or use
2181 the PAT name only when -fgnat-encodings=all is specified.
2182 <E_Record_Type>: Generate debug info for the inner record types only
2183 when -fgnat-encodings=all is specified.
2184 <E_Record_Subtype>: Use a debug type for an artificial subtype only
2185 except when -fgnat-encodings=all is specified.
2186 (elaborate_expression_1): Reset need_for_debug when possible only
2187 except when -fgnat-encodings=all is specified.
2188 (components_to_record): Use XV encodings for variable size only
2189 when -fgnat-encodings=all is specified.
2190 (associate_original_type_to_packed_array): Add a parallel type only
2191 when -fgnat-encodings=all is specified.
2192 * gcc-interface/misc.c (gnat_get_array_descr_info): Do not return
2193 full information only when -fgnat-encodings=all is specified.
2194 * gcc-interface/utils.c (make_packable_type): Add a parallel type
2195 only when -fgnat-encodings=all is specified.
2196 (maybe_pad_type): Make the inner type a debug type only except when
2197 -fgnat-encodings=all is specified. Create an XVS type for variable
2198 size only when -fgnat-encodings=all is specified.
2199 (rest_of_record_type_compilation): Add a parallel type only when
2200 -fgnat-encodings=all is specified.
2202 2021-07-12 Eric Botcazou <ebotcazou@adacore.com>
2204 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Use a
2205 fixed lower bound if the index subtype is marked so, as well as a
2206 more efficient formula for the upper bound if the array cannot be
2208 (flb_cannot_be_superflat): New predicate.
2209 (cannot_be_superflat): Rename into...
2210 (range_cannot_be_superfla): ...this. Minor tweak.
2212 2021-07-12 Bob Duff <duff@adacore.com>
2214 * uintp.ads, types.h: New subtypes of Uint: Valid_Uint, Unat,
2215 Upos, Nonzero_Uint with predicates. These correspond to new
2216 field types in Gen_IL.
2217 * gen_il-types.ads (Valid_Uint, Unat, Upos, Nonzero_Uint): New
2219 * einfo-utils.ads, einfo-utils.adb, fe.h (Known_Alignment,
2220 Init_Alignment): Use the initial zero value to represent
2221 "unknown". This will ensure that if Alignment is called before
2222 Set_Alignment, the compiler will blow up (if assertions are
2224 * atree.ads, atree.adb, atree.h, gen_il-gen.adb
2225 (Get_Valid_32_Bit_Field): New generic low-level getter for
2227 (Copy_Alignment): New procedure to copy Alignment field even
2229 (Init_Object_Size_Align, Init_Size_Align): Do not bypass the
2231 * exp_pakd.adb, freeze.adb, layout.adb, repinfo.adb,
2232 sem_util.adb: Protect calls to Alignment with Known_Alignment.
2233 Use Copy_Alignment when it might be unknown.
2234 * gen_il-gen-gen_entities.adb (Alignment,
2235 String_Literal_Length): Use type Unat instead of Uint, to ensure
2236 that the field is always Set_ before we get it, and that it is
2237 set to a nonnegative value.
2238 (Enumeration_Pos): Unat.
2239 (Enumeration_Rep): Valid_Uint. Can be negative, but must be
2240 valid before fetching.
2241 (Discriminant_Number): Upos.
2242 (Renaming_Map): Remove.
2243 * gen_il-gen-gen_nodes.adb (Char_Literal_Value, Reason): Unat.
2244 (Intval, Corresponding_Integer_Value): Valid_Uint.
2245 * gen_il-internals.ads: New functions for dealing with special
2246 defaults and new subtypes of Uint.
2247 * scans.ads: Correct comments.
2248 * scn.adb (Post_Scan): Do not set Intval to No_Uint; that is no
2250 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Do
2251 not set Enumeration_Rep to No_Uint; that is no longer allowed.
2252 (Offset_Value): Protect calls to Alignment with Known_Alignment.
2253 * sem_prag.adb (Set_Atomic_VFA): Do not use Uint_0 to mean
2254 "unknown"; call Init_Alignment instead.
2255 * sinfo.ads: Minor comment fix.
2256 * treepr.adb: Deal with printing of new field types.
2257 * einfo.ads, gen_il-fields.ads (Renaming_Map): Remove.
2258 * gcc-interface/decl.c (gnat_to_gnu_entity): Use Known_Alignment
2259 before calling Alignment. This preserve some probably buggy
2260 behavior: if the alignment is not set, it previously defaulted
2261 to Uint_0; we now make that explicit. Use Copy_Alignment,
2262 because "Set_Alignment (Y, Alignment (X));" no longer works when
2263 the Alignment of X has not yet been set.
2264 * gcc-interface/trans.c (process_freeze_entity): Use
2267 2021-07-12 Eric Botcazou <ebotcazou@adacore.com>
2269 * libgnat/s-dwalin.ads: Adjust a few comments left and right.
2270 (Line_Info_Register): Comment out unused components.
2271 (Line_Info_Header): Add DWARF 5 support.
2272 (Dwarf_Context): Likewise. Rename "prologue" into "header".
2273 * libgnat/s-dwalin.adb: Alphabetize "with" clauses.
2274 (DWARF constants): Add DWARF 5 support and reorder.
2275 (For_Each_Row): Adjust.
2276 (Initialize_Pass): Likewise.
2277 (Initialize_State_Machine): Likewise and fix typo.
2278 (Open): Add DWARF 5 support.
2279 (Parse_Prologue): Rename into...
2280 (Parse_Header): ...this and add DWARF 5 support.
2281 (Read_And_Execute_Isn): Rename into...
2282 (Read_And_Execute_Insn): ...this and adjust.
2283 (To_File_Name): Change parameter name and add DWARF 5 support.
2284 (Read_Entry_Format_Array): New procedure.
2285 (Skip_Form): Add DWARF 5 support and reorder.
2286 (Seek_Abbrev): Do not count entries and add DWARF 5 support.
2287 (Debug_Info_Lookup): Add DWARF 5 support.
2288 (Symbolic_Address.Set_Result): Likewise.
2289 (Symbolic_Address): Adjust.
2291 2021-07-12 Bob Duff <duff@adacore.com>
2293 * sem_ch13.adb (Duplicate_Clause): Add a helper routine
2294 Check_One_Attr, with a parameter for the attribute_designator we
2295 are looking for, and one for the attribute_designator of the
2296 current node (which are usually the same). For Size and
2297 Value_Size, call it twice, once for each.
2298 * errout.ads: Fix a typo.
2300 2021-07-12 Piotr Trojanek <trojanek@adacore.com>
2302 * exp_imgv.adb (Expand_Image_Attribute): Move rewriting to
2303 attribute Put_Image to the beginning of expansion of attribute
2306 2021-07-09 Eric Botcazou <ebotcazou@adacore.com>
2308 * gcc-interface/utils.c (finish_subprog_decl): Remove obsolete line.
2310 2021-07-09 Piotr Trojanek <trojanek@adacore.com>
2312 * exp_put_image.adb (Make_Put_Image_Name): Fix style.
2313 (Image_Should_Call_Put_Image): Likewise.
2314 (Build_Image_Call): Likewise.
2316 2021-07-09 Ghjuvan Lacambre <lacambre@adacore.com>
2318 * par-ch6.adb (Contains_Import_Aspect): New function.
2319 (P_Subprogram): Acknowledge `Import` aspects.
2321 2021-07-09 Bob Duff <duff@adacore.com>
2323 * exp_put_image.adb (Make_Component_Attributes): Use
2324 Implementation_Base_Type to get the parent type. Otherwise,
2325 Parent_Type_Decl is actually an internally generated subtype
2326 declaration, so we blow up on
2327 Type_Definition (Parent_Type_Decl).
2329 2021-07-09 Dmitriy Anisimkov <anisimko@adacore.com>
2331 * gsocket.h: Include net/if.h to get IF_NAMESIZE constant.
2332 * s-oscons-tmplt.c: Define IPV6_FLOWINFO for Linux.
2334 2021-07-09 Steve Baird <baird@adacore.com>
2336 * libgnat/a-cdlili.adb: Reimplement
2337 Ada.Containers.Doubly_Linked_Lists.Generic_Sorting.Sort using
2338 Mergesort instead of the previous Quicksort variant.
2340 2021-07-09 Justin Squirek <squirek@adacore.com>
2342 * exp_ch6.adb (Is_Build_In_Place_Function_Call): Add check to
2343 verify the Selector_Name of Exp_Node has been analyzed before
2344 obtaining its entity.
2346 2021-07-09 Gary Dismukes <dismukes@adacore.com>
2348 * libgnarl/s-osinte__vxworks.ads: Fix typo ("release" =>
2349 "releases") plus comment reformatting.
2350 * libgnat/s-os_lib.ads: In a comment, fix typo ("indended" =>
2351 "intended"), add a hyphen and semicolon, plus reformatting. In
2352 comment for subtype time_t, fix typo ("effect" => "affect"), add
2353 hyphens, plus reformatting.
2354 * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
2355 libgnat/s-parame__hpux.ads: Remove period from one-line comment.
2357 2021-07-09 Steve Baird <baird@adacore.com>
2359 * exp_ch5.adb (Expand_General_Case_Statement): Add new function
2360 Else_Statements to handle the case of invalid data analogously
2361 to how it is handled when casing on a discrete value.
2362 * sem_case.adb (Has_Static_Discriminant_Constraint): A new
2363 Boolean-valued function.
2364 (Composite_Case_Ops.Scalar_Part_Count): Include discriminants
2365 when traversing components.
2366 (Composite_Case_Ops.Choice_Analysis.Traverse_Discrete_Parts):
2367 Include discriminants when traversing components; the component
2368 range for a constrained discriminant is a single value.
2369 (Composite_Case_Ops.Choice_Analysis.Parse_Choice): Eliminate
2370 Done variable and modify how Next_Part is computed so that it is
2371 always correct (as opposed to being incorrect when Done is
2372 True). This includes changes in Update_Result (a local
2373 procedure). Add new local procedure
2374 Update_Result_For_Box_Component and call it not just for box
2375 components but also for "missing" components (components
2376 associated with an inactive variant).
2377 (Check_Choices.Check_Composite_Case_Selector.Check_Component_Subtype):
2378 Instead of disallowing all discriminated component types, allow
2379 those that are unconstrained or statically constrained. Check
2380 discriminant subtypes along with other component subtypes.
2381 * doc/gnat_rm/implementation_defined_pragmas.rst: Update
2382 documentation to reflect current implementation status.
2383 * gnat_rm.texi: Regenerate.
2385 2021-07-09 Justin Squirek <squirek@adacore.com>
2387 * sem_ch6.adb (Check_Pragma_Inline): Correctly use
2388 Corresponding_Spec_Of_Stub when dealing subprogram body stubs.
2390 2021-07-09 Doug Rupp <rupp@adacore.com>
2392 * Makefile.rtl: Add translations for s-parame__posix2008.ads
2393 * libgnarl/s-linux.ads: Import System.Parameters.
2394 (time_t): Declare using System.Parameters.time_t_bits.
2395 * libgnarl/s-linux__alpha.ads: Likewise.
2396 * libgnarl/s-linux__android.ads: Likewise.
2397 * libgnarl/s-linux__hppa.ads: Likewise.
2398 * libgnarl/s-linux__mips.ads: Likewise.
2399 * libgnarl/s-linux__riscv.ads: Likewise.
2400 * libgnarl/s-linux__sparc.ads: Likewise.
2401 * libgnarl/s-linux__x32.ads: Likewise.
2402 * libgnarl/s-qnx.ads: Likewise.
2403 * libgnarl/s-osinte__aix.ads: Likewise.
2404 * libgnarl/s-osinte__android.ads: Likewise.
2405 * libgnarl/s-osinte__darwin.ads: Likewise.
2406 * libgnarl/s-osinte__dragonfly.ads: Likewise.
2407 * libgnarl/s-osinte__freebsd.ads: Likewise.
2408 * libgnarl/s-osinte__gnu.ads: Likewise.
2409 * libgnarl/s-osinte__hpux-dce.ads: Likewise.
2410 * libgnarl/s-osinte__hpux.ads: Likewise.
2411 * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
2412 * libgnarl/s-osinte__lynxos178e.ads: Likewise.
2413 * libgnarl/s-osinte__qnx.ads: Likewise.
2414 * libgnarl/s-osinte__rtems.ads: Likewise.
2415 * libgnarl/s-osinte__solaris.ads: Likewise.
2416 * libgnarl/s-osinte__vxworks.ads: Likewise.
2417 * libgnat/g-sothco.ads: Likewise.
2418 * libgnat/s-osprim__darwin.adb: Likewise.
2419 * libgnat/s-osprim__posix.adb: Likewise.
2420 * libgnat/s-osprim__posix2008.adb: Likewise.
2421 * libgnat/s-osprim__rtems.adb: Likewise.
2422 * libgnat/s-osprim__x32.adb: Likewise.
2423 * libgnarl/s-osinte__linux.ads: use type System.Linux.time_t.
2424 * libgnat/s-os_lib.ads (time_t): Declare as subtype of
2426 * libgnat/s-parame.ads (time_t_bits): New constant.
2427 * libgnat/s-parame__ae653.ads (time_t_bits): Likewise.
2428 * libgnat/s-parame__hpux.ads (time_t_bits): Likewise.
2429 * libgnat/s-parame__vxworks.ads (time_t_bits): Likewise.
2430 * libgnat/s-parame__posix2008.ads: New file for 64 bit time_t.
2432 2021-07-09 Bob Duff <duff@adacore.com>
2434 * comperr.adb (Compiler_Abort): Print source file name.
2436 2021-07-09 Joffrey Huguet <huguet@adacore.com>
2438 * libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Fix layout
2441 2021-07-09 Eric Botcazou <ebotcazou@adacore.com>
2443 * repinfo.ads (JSON output format): Document adjusted key name.
2444 * repinfo.adb (List_Record_Layout): Use Original_Record_Component
2445 if the normalized position of the component is not known.
2446 (List_Structural_Record_Layout): Rename Outer_Ent parameter into
2447 Ext_End and add Ext_Level parameter. In an extension, if the parent
2448 subtype has static discriminants, call List_Record_Layout on it.
2449 Output "parent_" prefixes before "variant" according to Ext_Level.
2450 Adjust recursive calls throughout the procedure.
2452 2021-07-09 Piotr Trojanek <trojanek@adacore.com>
2454 * exp_util.ads (Map_Types): Fix typo.
2456 2021-07-09 Fedor Rybin <frybin@adacore.com>
2458 * krunch.adb: Add safeguards against index range violations.
2460 2021-07-09 Arnaud Charlet <charlet@adacore.com>
2462 * libgnat/a-strfix.adb: Take advantage of extended returns.
2464 2021-07-09 Eric Botcazou <ebotcazou@adacore.com>
2466 * doc/gnat_rm/implementation_defined_attributes.rst
2467 (Scalar_Storage_Order): Add paragraph about representation
2469 * gnat_rm.texi: Regenerate.
2471 2021-07-09 Frederic Konrad <konrad@adacore.com>
2473 * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <aarch64*-*-rtems*>: Use
2474 the wraplf variant of Aux_Long_Long_Float.
2476 2021-07-09 Piotr Trojanek <trojanek@adacore.com>
2478 * sem_ch6.adb (Analyze_Expression_Function): Initialize Orig_N
2481 2021-07-09 Arnaud Charlet <charlet@adacore.com>
2483 * sem_ch13.adb (Resolve_Aspect_Expressions): Use the same
2484 processing for Predicate, Static_Predicate and
2485 Dynamic_Predicate. Do not build the predicate function spec.
2487 (Resolve_Name): Only reset Entity when necessary to avoid
2488 spurious visibility errors.
2489 (Check_Aspect_At_End_Of_Declarations): Handle consistently all
2491 * sem_ch3.adb (Analyze_Subtype_Declaration): Fix handling of
2492 private types with predicates.
2494 2021-07-09 Justin Squirek <squirek@adacore.com>
2496 * sem_util.ads (Type_Access_Level): Add new optional parameter
2498 * sem_util.adb (Accessibility_Level): Treat access discriminants
2499 the same as components when the restriction
2500 No_Dynamic_Accessibility_Checks is enabled.
2501 (Deepest_Type_Access_Level): Remove exception for
2502 Debug_Flag_Underscore_B when returning the result of
2503 Type_Access_Level in the case where
2504 No_Dynamic_Accessibility_Checks is active.
2505 (Function_Call_Or_Allocator_Level): Correctly calculate the
2506 level of Expr based on its containing subprogram instead of
2507 using Current_Subprogram.
2508 * sem_res.adb (Valid_Conversion): Add actual for new parameter
2509 Assoc_Ent in call to Type_Access_Level, and add test of
2510 No_Dynamic_Accessibility_Checks_Enabled to ensure that static
2511 accessibility checks are performed for all anonymous access type
2514 2021-07-09 Eric Botcazou <ebotcazou@adacore.com>
2516 * exp_dbug.ads: Update documentation of various items.
2518 2021-07-09 Piotr Trojanek <trojanek@adacore.com>
2520 * sem_ch6.adb (Analyze_Expression_Function): Reorder code.
2522 2021-07-09 Piotr Trojanek <trojanek@adacore.com>
2524 * sem_ch6.adb (Analyze_Expression_Function): Reorder code.
2526 2021-07-09 Piotr Trojanek <trojanek@adacore.com>
2528 * sem_ch6.adb (Analyze_Expression_Function): Add variable to
2529 avoid repeated calls to Etype.
2531 2021-07-09 Piotr Trojanek <trojanek@adacore.com>
2533 * sem_ch6.adb (Analyze_Expression_Function): Fix comment.
2535 2021-07-09 Piotr Trojanek <trojanek@adacore.com>
2537 * sem_ch6.adb (Analyze_Expression_Function): Use Orig_N variable
2538 instead of repeated calls to Original_Node.
2540 2021-07-09 Piotr Trojanek <trojanek@adacore.com>
2542 * sem_ch6.adb (Analyze_Expression_Function): Change types local
2543 variables from Entity_Id to Node_Id.
2545 2021-07-09 Piotr Trojanek <trojanek@adacore.com>
2547 * sem_ch6.adb (Analyze_Expression_Function): A local Expr
2548 constant was shadowing a global constant with the same name and
2551 2021-07-09 Piotr Trojanek <trojanek@adacore.com>
2553 * sem_res.adb (Preanalyze_And_Resolve): Only call
2554 Set_Must_Not_Freeze when it is necessary to restore the previous
2557 2021-07-08 Piotr Trojanek <trojanek@adacore.com>
2559 * sem_ch5.adb (Analyze_Assignment): Clear Current_Assignment at
2561 (Analyze_Target_Name): Prevent AST climbing from going too far.
2563 2021-07-08 Ed Schonberg <schonberg@adacore.com>
2565 * sem_ch5.adb (Analyze_Target_Name): Properly reject a
2566 Target_Name when it appears outside of an assignment statement,
2567 or within the left-hand side of one.
2569 2021-07-08 Bob Duff <duff@adacore.com>
2571 * einfo-utils.ads, einfo-utils.adb (Unknown_Alignment,
2572 Unknown_Component_Bit_Offset, Unknown_Component_Size,
2573 Unknown_Esize, Unknown_Normalized_First_Bit,
2574 Unknown_Normalized_Position, Unknown_Normalized_Position_Max,
2575 Unknown_RM_Size): Remove these functions.
2576 * exp_pakd.adb, exp_util.adb, fe.h, freeze.adb, layout.adb,
2577 repinfo.adb, sem_ch13.adb, sem_ch3.adb, sem_util.adb: Remove
2578 calls to these functions; do "not Known_..." instead.
2579 * gcc-interface/decl.c, gcc-interface/trans.c
2580 (Unknown_Alignment, Unknown_Component_Size, Unknown_Esize,
2581 Unknown_RM_Size): Remove calls to these functions; do
2582 "!Known_..." instead.
2584 2021-07-08 Eric Botcazou <ebotcazou@adacore.com>
2586 * exp_dbug.adb (Get_Encoded_Name): Do not encode names of discrete
2587 types with custom bounds, except with -fgnat-encodings=all.
2588 * exp_pakd.adb (Create_Packed_Array_Impl_Type): Adjust comment.
2590 2021-07-08 Bob Duff <duff@adacore.com>
2592 * comperr.adb (Compiler_Abort): Call Sinput.Unlock, because if
2593 this is called late, then Source_Dump would crash otherwise.
2594 * debug.adb: Correct documentation of the -gnatd.9 switch.
2595 * exp_ch4.adb (Expand_Allocator_Expression): Add a comment.
2596 * exp_ch6.adb: Minor comment fixes. Add assertion.
2597 * exp_ch6.ads (Is_Build_In_Place_Result_Type): Correct comment.
2598 * exp_ch7.adb, checks.ads: Minor comment fixes.
2600 2021-07-08 Doug Rupp <rupp@adacore.com>
2602 * sigtramp-vxworks-target.inc: Rename to...
2603 * sigtramp-vxworks-target.h: ... this.
2604 * sigtramp-vxworks.c, Makefile.rtl: Likewise.
2606 2021-07-08 Ghjuvan Lacambre <lacambre@adacore.com>
2608 * lib-writ.ads: Mention SCOs dependency as reason for duplicates.
2609 * lib.ads (Units): Update documentation to mention duplicated
2612 2021-07-08 Ed Schonberg <schonberg@adacore.com>
2614 * style.adb (Missing_Overriding): Do not emit message when
2615 parent of subprogram is a full type declaration.
2617 2021-07-08 Arnaud Charlet <charlet@adacore.com>
2619 * par-ch5.adb (P_Iterator_Specification): Add support for access
2620 definition in loop parameter.
2621 * sem_ch5.adb (Check_Subtype_Indication): Renamed...
2622 (Check_Subtype_Definition): ... into this and check for conformance
2623 on access definitions, and improve error messages.
2624 (Analyze_Iterator_Specification): Add support for access definition
2627 2021-07-08 Arnaud Charlet <charlet@adacore.com>
2629 * sem_util.ads, sem_util.adb
2630 (Apply_Compile_Time_Constraint_Error): New parameter
2632 * sem_ch4.adb (Analyze_Selected_Component): Disable warning
2635 2021-07-08 Eric Botcazou <ebotcazou@adacore.com>
2637 * exp_imgv.adb: Add with and use clause for Restrict and Rident.
2638 (Build_Enumeration_Image_Tables): Do not generate the hash function
2639 if the No_Implicit_Loops restriction is active.
2641 2021-07-08 Piotr Trojanek <trojanek@adacore.com>
2643 * sem_ch12.adb, sem_ch6.adb, sem_ch9.adb, sprint.adb: Simplify
2644 checks for non-empty lists.
2646 2021-07-08 Piotr Trojanek <trojanek@adacore.com>
2648 * par-ch10.adb (Unit_Display): Remove redundant condition; fix
2651 2021-07-08 Piotr Trojanek <trojanek@adacore.com>
2653 * lib-load.adb (Load): Replace early return with goto to properly
2654 restore context on failure.
2656 2021-07-08 Piotr Trojanek <trojanek@adacore.com>
2658 * lib-writ.adb (Ensure_System_Dependency): Simplify condition.
2660 2021-07-08 Piotr Trojanek <trojanek@adacore.com>
2662 * lib-load.adb (Load_Unit): Fix style in comment.
2663 * par-load.adb (Load): Likewise.
2664 * scng.adb (Initialize_Scanner): Fix whitespace.
2666 2021-07-08 Piotr Trojanek <trojanek@adacore.com>
2668 * par-load.adb (Load): Don't remove unit, but flag it as
2669 erroneous and return.
2671 2021-07-08 Ghjuvan Lacambre <lacambre@adacore.com>
2673 * exp_prag.adb (Expand_Pragma_Inspection_Point): Fix error
2676 2021-07-08 Yannick Moy <moy@adacore.com>
2678 * layout.adb (Layout_Type): Do not call Number_Dimensions if the
2679 type does not have First_Index set.
2681 2021-07-08 Ghjuvan Lacambre <lacambre@adacore.com>
2683 * exp_prag.adb (Expand_Pragma_Inspection_Point): After expansion
2684 of the Inspection_Point pragma, check if referenced entities
2685 that have a freeze node are already frozen. If they aren't, emit
2686 a warning and turn the pragma into a no-op.
2688 2021-07-08 Yannick Moy <moy@adacore.com>
2690 * layout.adb (Layout_Type): Add guard before calling Expr_Value.
2692 2021-07-08 Yannick Moy <moy@adacore.com>
2694 * layout.adb (Layout_Type): Special case when RM_Size and Esize
2695 can be computed for packed arrays.
2697 2021-07-08 Steve Baird <baird@adacore.com>
2699 * rtsfind.ads, rtsfind.adb: Add support for finding the packages
2700 System.Atomic_Operations and
2701 System.Atomic_Operations.Test_And_Set and the declarations
2702 within that latter package of the type Test_And_Set_Flag and the
2703 function Atomic_Test_And_Set.
2704 * exp_ch11.adb (Expand_N_Exception_Declaration): If an exception
2705 is declared other than at library level, then we need to call
2706 Register_Exception the first time (and only the first time) the
2707 declaration is elaborated. In order to decide whether to
2708 perform this call for a given elaboration of the declaration, we
2709 used to unconditionally use a (library-level) Boolean variable.
2710 Now we instead use a variable of type
2711 System.Atomic_Operations.Test_And_Set.Test_And_Set_Flag unless
2712 either that type is unavailable or a No_Tasking restriction is
2713 in effect (in which case we use a Boolean variable as before).
2715 2021-07-08 Arnaud Charlet <charlet@adacore.com>
2717 * gcc-interface/system.ads: Add No_Tasking restriction.
2719 2021-07-08 Ed Schonberg <schonberg@adacore.com>
2721 * libgnat/a-cohama.ads: Introduce an equality operator over
2723 * libgnat/a-cohase.ads: Ditto.
2724 * libgnat/a-cohama.adb: Add body for "=" over cursors.
2725 (Insert): Do not set the Position component of the cursor that
2726 denotes the inserted element.
2727 * libgnat/a-cohase.adb: Ditto.
2729 2021-07-08 Arnaud Charlet <charlet@adacore.com>
2731 * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
2732 libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb,
2733 libgnat/a-cborma.adb, libgnat/a-cborse.adb,
2734 libgnat/a-cobove.adb, libgnat/a-textio.adb,
2735 libgnat/a-witeio.adb, libgnat/a-ztexio.adb: Make code compatible
2736 with No_Dynamic_Accessibility_Checks restriction.
2738 2021-07-08 Arnaud Charlet <charlet@adacore.com>
2740 * debug.adb, sem_util.adb: Revert meaning of -gnatd_b.
2741 * sem_res.adb: Minor reformatting.
2743 2021-07-08 Arnaud Charlet <charlet@adacore.com>
2745 * make.adb, osint.adb: Make code compatible with
2746 No_Dynamic_Accessibility_Checks restriction.
2748 2021-07-08 Piotr Trojanek <trojanek@adacore.com>
2750 * lib-writ.adb (Ensure_System_Dependency): Replace search in
2751 Lib.Units with a search in Lib.Unit_Names.
2753 2021-07-08 Piotr Trojanek <trojanek@adacore.com>
2755 * sinput-l.adb (Load_File): Simplify foreword manipulation with
2756 concatenation; similar for filename with preprocessed output.
2758 2021-07-07 Dmitriy Anisimkov <anisimko@adacore.com>
2760 * s-oscons-tmplt.c (MSG_WAITALL): Remove wrong #ifdef
2763 2021-07-07 Gary Dismukes <dismukes@adacore.com>
2765 * einfo-utils.adb (Primitive_Operations): Default to returning
2766 Direct_Primitive_Operations in the case of concurrent types
2767 (when Corresponding_Record_Type not present).
2768 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Initialize
2769 Direct_Primitive_Operations to an empty element list.
2770 (Analyze_Task_Type_Declaration): Initialize
2771 Direct_Primitive_Operations to an empty element list.
2773 2021-07-07 Piotr Trojanek <trojanek@adacore.com>
2775 * sem_eval.adb (Set_Checking_Potentially_Static_Expression):
2778 2021-07-07 Arnaud Charlet <charlet@adacore.com>
2780 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Mark Anon_Id
2781 intrinsic before calling Analyze_Instance_And_Renamings because
2782 this flag may be propagated to other nodes.
2784 2021-07-07 Dmitriy Anisimkov <anisimko@adacore.com>
2786 * s-oscons-tmplt.c (TCP_KEEPCNT TCP_KEEPIDLE, TCP_KEEPINTVL):
2787 Hardcode on Windows if undefined.
2789 2021-07-07 Bob Duff <duff@adacore.com>
2791 * checks.adb (Install_Primitive_Elaboration_Check): Do not
2792 generate elaboration checks for primitives if pragma Pure or
2793 Preelaborate is present. Misc comment fixes, including
2794 referring to the correct kind of check (elaboration, not
2796 * checks.ads, restrict.adb, sem_cat.ads, sinfo.ads: Minor
2797 reformatting and comment fixes.
2799 2021-07-07 Piotr Trojanek <trojanek@adacore.com>
2801 * sem_prag.adb (Analyze_Pragma): Simplify processing of pragma
2804 2021-07-07 Arnaud Charlet <charlet@adacore.com>
2806 * libgnat/g-debpoo.adb (Code_Address_For_Allocate_End): Default
2809 2021-07-07 Arnaud Charlet <charlet@adacore.com>
2811 * libgnat/s-atocou.ads, libgnat/s-atocou__builtin.adb: Code
2814 2021-07-07 Gary Dismukes <dismukes@adacore.com>
2816 * freeze.adb (Check_Inherited_Conditions): Setting of Ekind,
2817 LSP_Subprogram, and Is_Wrapper needs to happen for null
2818 procedures as well as other wrapper cases, so the code is moved
2819 from the else part in front of the if statement. (Fixes a
2820 latent bug encountered while working on this set of changes.)
2821 * sem_attr.adb (Resolve_Attribute): Report an error for the case
2822 of an Access attribute applied to a primitive of an abstract
2823 type when the primitive has any nonstatic Pre'Class or
2824 Post'Class expressions.
2825 * sem_ch8.adb (Analyze_Subprogram_Renaming): Report an error for
2826 the case of a actual subprogram associated with a nonabstract
2827 formal subprogram when the actual is a primitive of an abstract
2828 type and the primitive has any nonstatic Pre'Class or Post'Class
2830 * sem_disp.adb (Check_Dispatching_Context): Remove special
2831 testing for null procedures, and replace it with a relaxed test
2832 that avoids getting an error about illegal calls to abstract
2833 subprograms in cases where RM 6.1.1(7/5) applies in
2834 Pre/Post'Class aspects. Also, remove special test for
2835 Postcondition, which seems to be unnecessary, update associated
2836 comments, and fix a typo in one comment.
2837 (Check_Dispatching_Call): Remove an unneeded return statement,
2838 and report an error for the case of a nondispatching call to a
2839 nonabstract subprogram of an abstract type where the subprogram
2840 has nonstatic Pre/Post'Class aspects.
2842 (Is_Prim_Of_Abst_Type_With_Nonstatic_CW_Pre_Post): New function.
2843 (In_Pre_Post_Condition): Add a flag formal Class_Wide_Only,
2844 defaulted to False, for indicating whether the function should
2845 only test for the node being within class-wide pre- and
2848 (Is_Prim_Of_Abst_Type_With_Nonstatic_CW_Pre_Post): New function
2849 to determine whether a subprogram is a primitive of an abstract
2850 type where the primitive has class-wide Pre/Post'Class aspects
2851 specified with nonstatic expressions.
2852 (In_Pre_Post_Condition): Extend testing to account for the new
2853 formal Class_Wide_Only.
2855 2021-07-07 Piotr Trojanek <trojanek@adacore.com>
2857 * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Errors
2858 emitted via Check_Volatility_Compatibility are now emitted at
2859 Actual, just like other errors emitted by
2860 Check_Shared_Variable_Control_Aspects.
2862 2021-07-07 Piotr Trojanek <trojanek@adacore.com>
2864 * uname.adb (Get_Unit_Name): Simplify with a bounded string
2865 buffer; also, this addresses a ??? comment about the max length
2868 2021-07-07 Piotr Trojanek <trojanek@adacore.com>
2870 * uname.adb (Get_Body_Name, Get_Parent_Body_Name,
2871 Get_Parent_Spec_Name, Get_Spec_Name, Is_Child_Name,
2872 Is_Body_Name, Is_Spec_Name, Name_To_Unit_Name): Use a local
2873 instead of the global buffer.
2875 2021-07-07 Bob Duff <duff@adacore.com>
2877 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Combine
2878 processing of Size and Value_Size clauses. Ensure that
2879 Value_Size is treated the same as Size, in the cases where both
2880 are allowed (i.e. the prefix denotes a first subtype). Misc
2882 * einfo-utils.adb (Init_Size): Add assertions.
2883 (Size_Clause): Return a Value_Size clause if present, instead of
2884 just looking for a Size clause.
2885 * einfo.ads (Has_Size_Clause, Size_Clause): Change documentation
2886 to include Value_Size.
2887 * sem_ch13.ads, layout.ads, layout.adb: Comment modifications.
2889 2021-07-07 Steve Baird <baird@adacore.com>
2891 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Add
2892 TSS_Put_Image to list of predefined primitives that need special
2894 (Build_General_Calling_Stubs, Build_Subprogram_Receiving_Stubs):
2895 Remove previous hack for dealing with TSS_Put_Image procedures.
2897 2021-07-07 Dmitriy Anisimkov <anisimko@adacore.com>
2899 * libgnat/g-socket.adb (Get_Socket_Option): Add 500ms only when
2900 Minus_500ms_Windows_Timeout is True.
2901 (Set_Socket_Option): Use "* 1000" instead of "/ 0.001" to
2902 convert to milliseconds.
2904 2021-07-07 Bob Duff <duff@adacore.com>
2906 * tbuild.adb (Unchecked_Convert_To): Set the Parent of the new
2907 node to the Parent of the old node.
2908 * tbuild.ads (Unchecked_Convert_To): Document differences
2909 between Convert_To and Unchecked_Convert_To. The previous
2910 documentation claimed they are identical except for the
2911 uncheckedness of the conversion.
2913 2021-07-07 Yannick Moy <moy@adacore.com>
2915 * checks.adb (Apply_Scalar_Range_Check): Remove special case for
2917 * sem_res.adb (Resolve_Arithmetic_Op): Same.
2918 * sem_util.adb (Apply_Compile_Time_Constraint_Error): Same.
2920 2021-07-07 Piotr Trojanek <trojanek@adacore.com>
2922 * sem_ch6.adb (Check_For_Primitive_Subprogram): Move
2923 declarations of local variables after nested subprogram bodies.
2925 2021-07-07 Piotr Trojanek <trojanek@adacore.com>
2927 * exp_disp.adb (CPP_Num_Prims): Reuse List_Length.
2929 2021-07-07 Piotr Trojanek <trojanek@adacore.com>
2931 * exp_ch3.adb, exp_ch6.adb, sem_ch6.adb: Replace Ekind
2932 membership test in Private_Kind with a call to Is_Private_Type.
2934 2021-07-07 Bob Duff <duff@adacore.com>
2936 * gen_il-gen-gen_entities.adb: Remove Linker_Section_Pragma
2937 field from Record_Field_Kind. Minor comment improvement.
2939 2021-07-07 Yannick Moy <moy@adacore.com>
2941 * libgnat/a-ngelfu.ads (Cot): Fix precondition.
2943 2021-07-07 Piotr Trojanek <trojanek@adacore.com>
2945 * par.adb (Par): A local Name variable is now a renaming of a
2948 2021-07-07 Piotr Trojanek <trojanek@adacore.com>
2950 * gnat1drv.adb (Gnat1drv): Remove flagging of main unit and its
2951 corresponding spec as requiring code generation; now the flags
2952 are set much earlier.
2953 * lib-load.adb (Load_Main_Source): Set Generate_Code flag on the
2955 (Make_Instance_Unit): Copy Generate_Code flag from the main unit
2957 * lib-writ.adb (Write_ALI): Remove redundant condition;
2958 Generate_Code flag is always set for the main unit.
2959 * par-load.adb (Load): Set Generate_Code flag on the main unit's
2960 corresponding spec, if any.
2962 2021-07-07 Dmitriy Anisimkov <anisimko@adacore.com>
2964 * libgnat/g-socket.ads (Option_Name): Add Keep_Alive_Count,
2965 Keep_Alive_Idle, and Keep_Alive_Interval items to enumeration.
2966 (Option_Type): Add Keep_Alive_Count, Keep_Alive_Idle, and
2967 Keep_Alive_Interval alternatives to the case of discriminated
2969 * libgnat/g-socket.adb (Options): Add Keep_Alive_Count,
2970 Keep_Alive_Idle, and Keep_Alive_Interval to items enumerator to
2971 OS constant converter.
2972 (Set_Socket_Option): Process Keep_Alive_Count, Keep_Alive_Idle,
2973 and Keep_Alive_Interval socket options.
2974 (Get_Socket_Option): Idem.
2976 2021-07-07 Piotr Trojanek <trojanek@adacore.com>
2978 * lib-writ.adb (Write_ALI): Exit from loop after seeing first
2979 unit that violates No_Elaboration_Code restriction.
2981 2021-07-07 Piotr Trojanek <trojanek@adacore.com>
2983 * inline.adb (Instantiate_Bodies): Fix white in declaration.
2984 (Remove_Dead_Instance): Change iteration from WHILE to FOR.
2986 2021-07-07 Bob Duff <duff@adacore.com>
2988 * checks.adb, exp_attr.adb, exp_ch4.adb, exp_ch6.adb,
2989 exp_ch9.adb, exp_disp.adb, exp_util.adb, inline.adb,
2990 sem_res.adb: Change all calls to Make_Unchecked_Type_Conversion
2991 to call Unchecked_Convert_To instead. This involves removing
2992 New_Occurrence_Of on the first parameter, because
2993 Unchecked_Convert_To expects a type entity, rather than the name
2994 of one. Also, removed calls to Relocate_Node, because
2995 Unchecked_Convert_To takes care of that.
2996 * sinfo.ads: Change comment to be worded more firmly.
2998 2021-07-07 Steve Baird <baird@adacore.com>
3000 * libgnarl/s-tassta.adb (Free_Task): Acquire the Task_Lock
3001 before, rather than after, querying the task's Terminated flag.
3002 Add a corresponding Task_Unlock call.
3004 2021-07-06 Bob Duff <duff@adacore.com>
3006 * atree.ads (Current_Error_Node): Initialize to Empty.
3008 2021-07-06 Steve Baird <baird@adacore.com>
3010 * exp_put_image.adb: Eliminate references to
3011 Debug_Flag_Underscore_Z. Change the meaning of the function
3012 Enable_Put_Image. Previously, a result of False for a tagged
3013 type would mean that the type does not get a Put_Image (PI)
3014 routine at all. Now, it means that the type gets a PI routine
3015 with very abbreviated functionality (just a call to
3016 Unknown_Put_Image). This resolves problems in mixing code
3017 compiled with and without the -gnat2022 switch.
3018 * exp_ch3.adb: Enable_Put_Image no longer participates in
3019 determining whether a tagged type gets a Put_Image procedure. A
3020 tagged type does not get a Put_Image procedure if the type
3021 Root_Buffer_Type is unavailable. This is needed to support cross
3022 targets where tagged types are supported but the type
3023 Root_Buffer_Type is not available.
3024 * exp_dist.adb: Add workarounds for some problems that arise
3025 when using the (obsolete?) Garlic implementation of the
3026 distributed systems annex with Ada 2022 constructs.
3027 * libgnat/a-sttebu.ads: Workaround a bootstrapping problem.
3028 Older compilers do not support raise expressions, so revise the
3029 the Pre'Class condition to meet this requirement without
3030 changing the condition's behavior at run time.
3032 2021-07-06 Eric Botcazou <ebotcazou@adacore.com>
3034 * repinfo-input.adb (JSON_Entity_Kind, Read_Variant_Part): Fix
3037 2021-07-06 Steve Baird <baird@adacore.com>
3039 * sem_ch5.adb (Analyze_Assignment): Add new nested function,
3040 Omit_Range_Check_For_Streaming, and make call to
3041 Apply_Scalar_Range_Check conditional on the result of this new
3043 * exp_attr.adb (Compile_Stream_Body_In_Scope): Eliminate Check
3044 parameter, update callers. The new
3045 Omit_Range_Check_For_Streaming parameter takes the place of the
3046 old use of calling Insert_Action with Suppress => All_Checks,
3047 which was insufficiently precise (it did not allow suppressing
3048 checks for one component but not for another).
3049 (Expand_N_Attribute_Reference): Eliminate another "Suppress =>
3050 All_Checks" from an Insert_Action call, this one in generating
3051 the expansion of a T'Read attribute reference for a composite
3054 2021-07-06 Ghjuvan Lacambre <lacambre@adacore.com>
3056 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Check for
3057 empty loops caused by constraints.
3059 2021-07-06 Nicolas Roche <roche@adacore.com>
3061 * rtinit.c (skip_quoted_string): Handle malformed command line
3062 with no closing double quote.
3063 (skip_argument): Handle case in which a null character is
3064 encountered by skip_quote_string.
3066 2021-07-06 Piotr Trojanek <trojanek@adacore.com>
3068 * uname.adb (Add_Node_Name): Replace local constant whose
3069 initial expression was evaluated even when unnecessary with just
3070 that expression that is evaluated at most once and only when
3073 2021-07-06 Piotr Trojanek <trojanek@adacore.com>
3075 * lib.adb (Remove_Unit): Replace defensive code with an
3077 * par-load.adb (Load): Address a question mark in the comment.
3079 2021-07-06 Piotr Trojanek <trojanek@adacore.com>
3081 * sem_util.adb (Enclosing_Comp_Unit_Node): When the loop exits
3082 the Current_Node is either an N_Compilation_Unit node or Empty,
3083 so simply return it without redundant checks.
3085 2021-07-06 Piotr Trojanek <trojanek@adacore.com>
3087 * lib-load.adb (Load_Unit): Remove excessive whitespace.
3088 * lib.adb (Is_Internal_Unit, Is_Predefined_Unit): Likewise.
3089 * par-ch10.adb (P_Compilation_Unit): Simplify with membership
3091 * par-load.adb (Load): Likewise.
3092 * uname.adb (Get_Unit_Name): Likewise.
3094 2021-07-06 Piotr Trojanek <trojanek@adacore.com>
3096 * lib-writ.adb (Ensure_System_Dependency): Simplify by reusing a
3099 2021-07-06 Steve Baird <baird@adacore.com>
3102 (Expand_N_Case_Statement.Expand_General_Case_Statement.Pattern_Match):
3103 When generating an equality test for a statically known discrete
3104 value, only generate the numeric value if the discrete type is
3105 not an enumeration type. If it is an enumeration type, then
3106 call Get_Enum_Lit_From_Pos instead.
3108 2021-07-06 Justin Squirek <squirek@adacore.com>
3110 * par-ch6.adb (Get_Return_Kind): Removed.
3111 (Is_Extended): Created to identify simple and "when" return
3112 statements from extended return statements.
3113 (P_Return_Statement): Merged simple and "when" return statement
3116 2021-07-06 Gary Dismukes <dismukes@adacore.com>
3118 * sem_ch4.adb (Try_One_Prefix_Interpretation): Augment test of
3119 "not Extensions_Allowed" with test for absence of Obj_Type's
3120 primitive operations Elist, as an additional condition for early
3121 return from this procedure.
3123 2021-07-06 Gary Dismukes <dismukes@adacore.com>
3125 * exp_ch4.adb (Process_Transient_In_Expression): In one comment,
3126 fix two typos and reorder wording of one sentence, plus minor
3129 2021-07-06 Justin Squirek <squirek@adacore.com>
3131 * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Remove
3132 legacy expansion of element iterators, and use expansion form
3133 used by unconstrained element types in the general case.
3135 2021-07-06 Ed Schonberg <schonberg@adacore.com>
3137 * exp_ch4.adb (Process_Transient_In_Expression): Ensure that
3138 Fin_Context, used to insert finalization code for the
3139 expression, is a list member: the value returned by
3140 Find_Hook_Context may be an expression node when the transient
3141 is part of a larger expression and it has a non-boolean type.
3143 2021-07-06 Yannick Moy <moy@adacore.com>
3145 * sem_case.adb: Fix error message.
3147 2021-07-06 Bob Duff <duff@adacore.com>
3149 * tbuild.adb (Convert_To): Add assert, along with a comment.
3150 (Make_DT_Access): Remove this function, which is not used. It
3151 was incorrect anyway (the call to New_Occurrence_Of should not
3153 (Unchecked_Convert_To): Add assert. The previous version's test
3154 for unchecked conversion to the same type was redundant and
3155 could never be true, because the previous 'if' already checked
3156 for ANY expression of the same type. Remove that, and replace
3157 with a test for unchecked conversion to a related type.
3158 Otherwise, we somethings get things like
3159 "finalize(some_type!(some_type!(x)))" in the generated code,
3160 where x is already of type some_type, but we're converting it to
3161 the private type and then to the full type or vice versa (so the
3162 types aren't equal, so the previous 'if' doesn't catch it).
3163 Avoid updating the Parent. This is not necessary; the Parent
3164 will be updated if/when the node is attached to the tree.
3165 * tbuild.ads: Fix comments. No need to say "this is safe" when
3166 we just explained that a few lines earlier. Remove
3168 * sinfo.ads: Add comments.
3169 * exp_ch7.adb (Make_Finalize_Address_Stmts): Minor comment fix.
3170 * gen_il-gen.adb, gen_il-gen.ads, gen_il-gen-gen_nodes.adb,
3171 gen_il-internals.ads: Implement a feature where you can put:
3172 Nmake_Assert => "expr" where expr is a boolean expression in a
3173 call to Create_Concrete_Node_Type. It is added in a pragma
3174 Assert in the Nmake.Make_... function for that type.
3176 2021-07-06 Gary Dismukes <dismukes@adacore.com>
3178 * checks.adb: Remove calls of Set_Do_Tag_Check (N, False).
3179 * einfo.ads: Remove hanging unneeded ??? comment ("this real description
3181 * exp_util.ads (Insert_Actions_After): Remove ??? from spec comment.
3182 * gen_il-fields.ads (Opt_Field_Enum): Remove literals
3183 Do_Accessibility_Check and Do_Tag_Check.
3184 * gen_il-gen-gen_nodes.adb: Remove all calls to Sm for
3185 Do_Accessibility_Check and Do_Tag_Check.
3186 * sem_type.ads (Is_Subtype_Of): Remove obsolete ???
3187 comment (function is not limited to scalar subtypes).
3188 * sem_util.ads (Is_Local_Variable_Reference): Revise comment to
3189 mention out-mode parameters as well, and remove ???.
3190 (Propagate_Concurrent_Flags): Minor reformatting.
3191 (Propagate_Invariant_Attributes): Typo fix.
3192 (Propagate_Predicate_Attributes): Indicate what is propagated
3193 and remove ??? comment.
3194 * sem_util.adb (Cannot_Raise_Constraint_Error): Remove unneeded
3195 test of Do_Tag_Check.
3196 (Is_Local_Variable_Reference): Extend function to testing for
3197 formals of mode out as well.
3198 * sinfo.ads: Remove ??? comment about flag
3199 Convert_To_Return_False indicating that the flag is obsolete (in
3200 fact it's used). Remove references to Do_Accessibility_Check and
3201 Do_Tag_Check (and the two associated ??? comments), as these
3203 * sinfo-cn.adb (Change_Conversion_To_Unchecked): Remove call of
3204 Set_Do_Tag_Check (N, False).
3205 * targparm.ads (Support_Atomic_Primitives_On_Target): Remove ???
3206 comment, plus minor reformatting.
3208 2021-07-06 Justin Squirek <squirek@adacore.com>
3210 * par-ch6.adb (Get_Return_Kind): Properly handle the case of a
3211 "return when" statement in the procedure case.
3213 2021-07-06 Bob Duff <duff@adacore.com>
3215 * sem.ads (Node_To_Be_Wrapped): Minor comment fix.
3216 * exp_ch7.adb (Establish_Transient_Scope): Misc cleanups and
3217 comment improvements.
3218 (Set_Node_To_Be_Wrapped): Remove -- not worth putting this code
3219 in a separate procedure, called only once.
3220 * sem_util.adb (Requires_Transient_Scope): Assert that our
3221 parameter has the right Kind. It probably shouldn't be E_Void,
3222 but that is passed in in some cases.
3223 (Ensure_Minimum_Decoration): Move the call later, so we know Typ
3224 is Present, and remove "if Present (Typ)" from this procedure.
3225 * exp_aggr.adb (Convert_To_Assignments): Use membership test,
3226 and avoid the "if False" idiom.
3227 (Expand_Array_Aggregate): Remove a ??? comment.
3228 * sem_ch8.adb (Push_Scope): Take advantage of the full coverage
3229 rules for aggregates.
3230 * sem_res.adb (Resolve_Declare_Expression): Remove test for
3231 Is_Type -- that's all it can be. Use named notation in call to
3232 Establish_Transient_Scope.
3233 * libgnat/a-cdlili.adb (Adjust): Remove redundant code.
3234 (Clear): Remove "pragma Warnings (Off);", which wasn't actually
3235 suppressing any warnings.
3237 2021-07-06 Bob Duff <duff@adacore.com>
3239 * gen_il-gen-gen_nodes.adb: Change the parent of
3240 N_Exception_Declaration to be N_Declaration. Minor comment fix.
3242 2021-07-06 Ed Schonberg <schonberg@adacore.com>
3244 * exp_ch4.adb (Expand_N_Type_Conversion): If the conversion is
3245 the name of an assignment operation do not apply predicate check
3246 to it prior to the assignment.
3248 2021-07-06 Bob Duff <duff@adacore.com>
3250 * libgnat/a-conhel.adb: Assert that tampering counts remain
3251 between 0 and 2**31-1. This makes debugging of
3252 finalization-related bugs easier.
3254 2021-07-06 Doug Rupp <rupp@adacore.com>
3256 * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Use s-osprim__posix.adb
3257 vice s-osprim__vxworks.adb for all vxworks7r2 targets.
3259 2021-07-06 Richard Kenner <kenner@adacore.com>
3261 * gen_il-types.ads (Void_Or_Type_Kind,
3262 Exception_Or_Object_Kind): Declare.
3263 * gen_il-gen-gen_entities.adb: Likewise.
3265 2021-07-06 Gary Dismukes <dismukes@adacore.com>
3267 * doc/gnat_rm/implementation_defined_pragmas.rst: Add a
3268 description of the feature of prefixed-view calls for untagged
3269 types to the section on pragma Extensions_Allowed.
3270 * gnat_rm.texi: Regenerate.
3271 * einfo.ads: Update specification for
3272 Direct_Primitive_Operations to reflect its use for untagged
3273 types when Extensions_Allowed is True.
3274 * gen_il-gen-gen_entities.adb: Allow Direct_Primitive_Operations
3275 as a field of untagged classes of types by removing the "Pre"
3276 test of "Is_Tagged_Type (N)", and making that field generally
3277 available for all types and subtypes by defining it for
3278 Type_Kind and removing its specification for individual classes
3280 * sem_ch3.adb (Analyze_Full_Type_Declaration): Initialize the
3281 Direct_Primitive_Operations list when not already set for the
3282 new (sub)type and its base type (except when Ekind of the type
3283 is E_Void, which can happen due to errors in cases where
3284 Derived_Type_Declaration is called and perhaps in other
3286 (Analyze_Subtype_Declaration): Inherit
3287 Direct_Primitive_Operations list from the base type, for record
3289 (Build_Derived_Record_Type): Initialize the
3290 Direct_Primitive_Operations list for derived record and private
3292 (Build_Derived_Type): Initialize the Direct_Primitive_Operations
3293 list for derived types (and also for their associated base types
3295 (Process_Full_View): For full types that are untagged record and
3296 private types, copy the primitive operations of the partial view
3297 to the primitives list of the full view.
3298 * sem_ch4.adb (Analyze_Selected_Component): Allow prefixed
3299 notation for subprogram calls in the case of untagged
3300 types (when Extensions_Allowed is True). In the case where
3301 Is_Private_Type (Prefix_Type) is True, call Try_Object_Operation
3302 when a discriminant selector wasn't found. Also call
3303 Try_Object_Operation in other type kind cases (when
3304 Extensions_Allowed is True).
3305 (Try_Object_Operation.Try_One_Prefixed_Interpretation): Prevent
3306 early return in the untagged case (when Extensions_Allowed is
3307 True). Condition main call to Try_Primitive_Operation on the
3308 type having primitives, and after that, if Prim_Result is False,
3309 test for case where the prefix type is a named access type with
3310 primitive operations and in that case call
3311 Try_Primitive_Operation after temporarily resetting Obj_Type to
3312 denote the access type (and restore it to the designated type
3314 (Try_Object_Operation.Valid_First_Argument_Of): Do matching type
3315 comparison by testing Base_Type (Obj_Type) against
3316 Base_Type (Typ), rather than against just Typ, to properly
3317 handle cases where the object prefix has a constrained
3318 subtype. (Fixes a bug discovered while working on this
3321 (New_Overloaded_Entity.Check_For_Primitive_Subprogram): Add a
3322 primitive of an untagged type to the type's list of primitive
3323 operations, for both explicit and implicit (derived, so
3324 Comes_From_Source is False) subprogram declarations. In the case
3325 where the new primitive overrides an inherited subprogram,
3326 locate the primitives Elist that references the overridden
3327 subprogram, and replace that element of the list with the new
3328 subprogram (done by calling the new procedure
3329 Add_Or_Replace_Untagged_Primitive on the result type and each
3331 (Check_For_Primitive_Subprogram.Add_Or_Replace_Untagged_Primitive):
3332 New nested procedure to either add or replace an untagged
3333 primitive subprogram in a given type's list of primitive
3334 operations (replacement happens in case where the new subprogram
3335 overrides a primitive of the type).
3336 * sem_ch7.adb (New_Private_Type): When Extensions_Allowed is
3337 True, initialize the Direct_Primitive_Operations list of a
3338 private type to New_Elmt_List in the case of untagged types.
3339 * sem_ch8.adb (Find_Selected_Component): In the case where the
3340 prefix is an entity name, relax condition that tests
3341 Has_Components so that Analyze_Selected_Component will also be
3342 called when Extensions_Allowed is True and the prefix type is
3345 2021-07-06 Ed Schonberg <schonberg@adacore.com>
3347 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform
3348 conformance check when the subprogram body has been created for
3349 an expression function that is not a completion of a previous
3350 specification, because the profile of the constructed body is
3351 copied from the expression function itself.
3353 2021-07-06 Steve Baird <baird@adacore.com>
3355 * doc/gnat_rm/implementation_of_specific_ada_features.rst: Add a
3356 warning indicating that the details of the default (i.e.,
3357 selected by the compiler) implementation of T'Put_Image for a
3358 nonscalar type T are subject to change.
3359 * gnat_rm.texi: Regenerate.
3361 2021-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
3363 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Regenerate.
3365 2021-07-05 Piotr Trojanek <trojanek@adacore.com>
3367 * sem_prag.adb (Analyze_Depends_In_Decl_Part): Reject overlays
3368 in Depends and Refined_Depends contracts.
3369 (Analyze_Global_In_Decl_Part): Likewise for Global and
3371 (Analyze_Initializes_In_Decl_Part): Likewise for Initializes
3372 (when appearing both as a single item and as a initialization
3374 * sem_util.ads (Ultimate_Overlaid_Entity): New routine.
3375 * sem_util.adb (Report_Unused_Body_States): Ignore overlays.
3376 (Ultimate_Overlaid_Entity): New routine.
3378 2021-07-05 Claire Dross <dross@adacore.com>
3380 * libgnat/a-cfdlli.ads, libgnat/a-cfdlli.adb
3381 libgnat/a-cfinve.ads, libgnat/a-cfinve.adb,
3382 libgnat/a-cofove.ads, libgnat/a-cofove.adb,
3383 libgnat/a-coboho.ads, libgnat/a-coboho.adb (Constant_Reference):
3384 Get a read-only access to an element of the container.
3385 (At_End): Ghost functions used to express pledges in the
3386 postcondition of Reference.
3387 (Reference): Get a read-write access to an element of the
3389 * libgnat/a-cfhama.ads, libgnat/a-cfhama.adb,
3390 libgnat/a-cforma.ads, libgnat/a-cforma.adb: The full view of the
3391 Map type is no longer a tagged type, but a wrapper over this
3392 tagged type. This is to avoid issues with dispatching result in
3394 (Constant_Reference): Get a read-only access to an element of
3396 (At_End): Ghost functions used to express pledges in the
3397 postcondition of Reference.
3398 (Reference): Get a read-write access to an element of the
3400 * libgnat/a-cfhase.ads, libgnat/a-cfhase.adb,
3401 libgnat/a-cforse.ads, libgnat/a-cforse.adb: The full view of the
3402 Map type is no longer a tagged type, but a wrapper over this
3404 (Constant_Reference): Get a read-only access to an element of
3406 * libgnat/a-cofuse.ads, libgnat/a-cofuve.ads (Copy_Element):
3407 Expression function used to cause SPARK to make sure
3408 Element_Type is copiable.
3409 * libgnat/a-cofuma.ads (Copy_Key): Expression function used to
3410 cause SPARK to make sure Key_Type is copiable.
3411 (Copy_Element): Expression function used to cause SPARK to make
3412 sure Element_Type is copiable.
3414 2021-07-05 Yannick Moy <moy@adacore.com>
3416 * sem_prag.adb (Analyze_Global_Item): Adapt to update SPARK RM
3419 2021-07-05 Arnaud Charlet <charlet@adacore.com>
3421 * Make-generated.in: Add -f switch to ensure cp will never fail.
3423 2021-07-05 Steve Baird <baird@adacore.com>
3425 * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): When
3426 building the assignment statement corresponding to the default
3427 expression for a component, we make a copy of the expression.
3428 When making that copy (and if we have seen a component that
3429 requires late initialization), pass a Map parameter into the
3430 call to New_Copy_Tree to redirect references to the type to
3431 instead refer to the _Init formal parameter of the init proc.
3432 This includes hoisting the declaration of Has_Late_Init_Comp out
3433 one level so that it becomes available to Build_Assignment.
3434 (Find_Current_Instance): Return True for other kinds of current
3435 instance references, instead of just access-valued attribute
3436 references such as T'Access.
3437 * sem_util.adb (Is_Aliased_View): Return True for the _Init
3438 formal parameter of an init procedure. The changes in
3439 exp_ch3.adb can have the effect of replacing a "T'Access"
3440 attribute reference in an init procedure with an "_Init'Access"
3441 attribute reference. We want such an attribute reference to be
3442 legal. However, we do not simply mark the formal parameter as
3443 being aliased because that might impact callers.
3444 (Is_Object_Image): Return True if Is_Current_Instance returns
3445 True for the prefix of an Image (or related attribute) attribute
3448 2021-07-05 Piotr Trojanek <trojanek@adacore.com>
3450 * exp_ch3.adb (Stream_Operation_OK): Reuse
3451 Is_Concurrent_Interface.
3452 * sem_ch3.adb (Analyze_Interface_Declaration,
3453 Build_Derived_Record_Type): Likewise.
3454 * sem_ch6.adb (Check_Limited_Return): Likewise.
3455 * sem_util.adb (Is_Concurrent_Interface): Don't call
3456 Is_Interface because each of the Is_Protected_Interface,
3457 Is_Synchronized_Interface and Is_Task_Interface calls it anyway.
3459 2021-07-05 Ghjuvan Lacambre <lacambre@adacore.com>
3461 * sem_ch6.adb (Check_Limited_Return): Replace Comes_From_Source
3462 with Comes_From_Extended_Return_Statement.
3464 2021-07-05 Steve Baird <baird@adacore.com>
3466 * libgnat/a-stobbu.adb, libgnat/a-stobbu.ads,
3467 libgnat/a-stobfi.adb, libgnat/a-stobfi.ads,
3468 libgnat/a-stoubu.adb, libgnat/a-stoubu.ads,
3469 libgnat/a-stoufi.adb, libgnat/a-stoufi.ads,
3470 libgnat/a-stoufo.adb, libgnat/a-stoufo.ads,
3471 libgnat/a-stouut.adb, libgnat/a-stouut.ads,
3472 libgnat/a-stteou.ads: Delete files.
3473 * Makefile.rtl, impunit.adb: Remove references to deleted files.
3475 2021-07-05 Piotr Trojanek <trojanek@adacore.com>
3477 * sem_util.adb (Has_Compatible_Alignment_Internal): If the
3478 prefix of the Address expression is an entire object with a
3479 known alignment, then skip checks related to its size.
3481 2021-07-05 Doug Rupp <rupp@adacore.com>
3483 * libgnat/s-os_lib.ads: Import OS_Time comparison ops as
3485 * libgnat/s-os_lib.adb: Remove OS_TIme comparison ops
3488 2021-07-05 Doug Rupp <rupp@adacore.com>
3490 * libgnat/s-os_lib.ads: Add some comments about time_t.
3491 * libgnat/s-os_lib.adb (GM_Split/To_GM_Time): Rename formal to
3493 (GM_Time_Of/To_OS_Time): Likewise.
3495 2021-07-05 Ghjuvan Lacambre <lacambre@adacore.com>
3497 * sem_res.adb (Resolve): Insert minus sign if needed.
3499 2021-07-05 Steve Baird <baird@adacore.com>
3501 * exp_put_image.adb:
3502 (Enable_Put_Image, Preload_Root_Buffer_Type): Revert to querying
3503 the -gnatd_z switch, as opposed to testing whether Ada_Version >= Ada_2022.
3505 2021-07-05 Justin Squirek <squirek@adacore.com>
3507 * checks.adb (Accessibility_Checks_Suppressed): Add check
3508 against restriction No_Dynamic_Accessibility_Checks.
3509 (Apply_Accessibility_Check): Add assertion to check restriction
3510 No_Dynamic_Accessibility_Checks is not active.
3511 * debug.adb: Add documentation for new debugging switch to
3512 control which accessibility model gets employed under
3513 restriction No_Dynamic_Accessibility_Checks.
3514 * exp_attr.adb (Expand_N_Attribute_Reference): Disable dynamic
3515 accessibility check generation when
3516 No_Dynamic_Accessibility_Checks is active.
3517 * exp_ch4.adb (Apply_Accessibility_Check): Skip check generation
3518 when restriction No_Dynamic_Accessibility_Checks is active.
3519 (Expand_N_Allocator): Disable dynamic accessibility checks when
3520 No_Dynamic_Accessibility_Checks is active.
3521 (Expand_N_In): Disable dynamic accessibility checks when
3522 No_Dynamic_Accessibility_Checks is active.
3523 (Expand_N_Type_Conversion): Disable dynamic accessibility checks
3524 when No_Dynamic_Accessibility_Checks is active.
3525 * exp_ch5.adb (Expand_N_Assignment_Statement): Disable
3526 alternative accessibility model calculations when computing a
3527 dynamic level for a SAOAAT.
3528 * exp_ch6.adb (Add_Call_By_Copy_Code): Disable dynamic
3529 accessibility check generation when
3530 No_Dynamic_Accessibility_Checks is active.
3531 (Expand_Branch): Disable alternative accessibility model
3533 (Expand_Call_Helper): Disable alternative accessibility model
3535 * restrict.adb, restrict.ads: Add new restriction
3536 No_Dynamic_Accessibility_Checks.
3537 (No_Dynamic_Accessibility_Checks_Enabled): Created to test when
3538 experimental features (which are generally incompatible with
3539 standard Ada) can be enabled.
3540 * sem_attr.adb (Safe_Value_Conversions): Add handling of new
3541 accessibility model under the restriction
3542 No_Dynamic_Accessibility_Checks.
3543 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
3544 Disallow new restriction No_Dynamic_Accessibility_Checks from
3545 being exclusively specified within a body or subunit without
3546 being present in a specification.
3547 * sem_res.adb (Check_Fully_Declared_Prefix): Minor comment
3549 (Valid_Conversion): Omit implicit conversion checks on anonymous
3550 access types and perform static checking instead when
3551 No_Dynamic_Accessibility_Checks is active.
3552 * sem_util.adb, sem_util.ads (Accessibility_Level): Add special
3553 handling of anonymous access objects, formal parameters,
3554 anonymous access components, and function return objects.
3555 (Deepest_Type_Access_Level): When
3556 No_Dynamic_Accessibility_Checks is active employ an alternative
3557 model. Add paramter Allow_Alt_Model to override the new behavior
3559 (Type_Access_Level): When No_Dynamic_Accessibility_Checks is
3560 active employ an alternative model. Add parameter
3561 Allow_Alt_Model to override the new behavior in certain cases.
3562 (Typ_Access_Level): Created within Accessibility_Level for
3564 * libgnat/s-rident.ads, snames.ads-tmpl: Add handing for
3565 No_Dynamic_Accessibility_Checks.
3567 2021-07-05 Doug Rupp <rupp@adacore.com>
3569 * adaint.h (__gnat_set_file_time_name): Use OS_Time.
3570 * adaint.c (__gnat_set_file_time_name): Likewise.
3572 2021-07-05 Doug Rupp <rupp@adacore.com>
3574 * adaint.h (OS_Time): typedef as long long.
3575 * osint.adb (Underlying_OS_Time): Declare as 64-bit signed type.
3576 * libgnat/s-os_lib.adb ("<"): Compare OS_Time as
3581 * libgnat/s-os_lib.ads (OS_Time): Declare as 64-bit signed type.
3583 2021-07-05 Ghjuvan Lacambre <lacambre@adacore.com>
3585 * sem_ch3.adb (Check_Abstract_Overriding): Post error message on
3588 2021-07-05 Yannick Moy <moy@adacore.com>
3590 * libgnat/a-uncdea.ads: Add Depends/Post to
3591 Ada.Unchecked_Deallocation.
3592 * sem_ch4.adb (Analyze_Allocator): Remove checking of allocator
3594 * sem_res.adb (Flag_Object): Same.
3596 2021-07-05 Ghjuvan Lacambre <lacambre@adacore.com>
3598 * aspects.ads: Add GNAT_Annotate aspect.
3599 * gnat1drv.adb (Adjust_Global_Switches): Stop defining
3600 Name_Gnat_Annotate as an alias of Name_Annotate.
3601 * snames.ads-tmpl: Define Gnat_Annotate.
3602 * par-prag.adb, sem_prag.ads: Add Pragma_Gnat_Annotate to list
3604 * lib-writ.adb, sem_ch13.adb, sem_prag.adb: Handle Gnat_Annotate
3605 like Aspect_Annotate.
3607 2021-07-05 Piotr Trojanek <trojanek@adacore.com>
3609 * ttypes.ads (Target_Strict_Alignment): Fix comment.
3611 2021-07-05 Piotr Trojanek <trojanek@adacore.com>
3613 * sem_util.adb (Has_Compatible_Alignment_Internal): Fix
3614 indentation of ELSIF comments; remove explicit calls to
3615 UI_To_Int; remove extra parens around the MOD operand.
3617 2021-07-05 Ed Schonberg <schonberg@adacore.com>
3619 * sem_aggr.adb (Resolve_Record_Aggregate, Step_5): Do not check
3620 for the need to use an extension aggregate for a given component
3621 when within an instance and the type of the component hss a
3622 private ancestor: the instantiation is legal if the generic
3623 compiles, and spurious errors may be generated otherwise.
3625 2021-07-05 Ghjuvan Lacambre <lacambre@adacore.com>
3627 * errout.adb (Output_JSON_Message): Recursively call
3628 Output_JSON_Message for continuation messages instead of
3629 appending their content to the initial message.
3631 2021-07-05 Steve Baird <baird@adacore.com>
3633 * debug.adb: Remove comments about -gnatd_z switch.
3634 * exp_ch3.adb (Make_Predefined_Primitive_Specs): A one-line fix
3635 for a subtle bug that took some effort to debug. Append a new
3636 Put_Image procedure for a type extension even if it seems to
3637 already have one, just as is done for (for example) the
3638 streaming-related Read procedure.
3639 * exp_put_image.adb:
3640 (Build_Record_Put_Image_Procedure.Make_Component_Attributes): Do
3641 not treat _Parent component like just another component, for two
3642 reasons. 1. If the _parent component's type has a
3643 user-specified Put_Image procedure, then we want to generate a
3644 call to that procedure and then generate extension aggregate
3645 syntax. 2. Otherwise, we still don't want to see any mention of
3646 "_parent" in the generated image text.
3647 (Build_Record_Put_Image_Procedure.Make_Component_Name): Add
3648 assertion that we are not generating a reference to an "_parent"
3650 (Build_Record_Put_Image_Procedure): Add special treatment for
3651 null records. Add call to Duplicate_Subexpr for image attribute
3652 prefix in order to help with expansion needed in the class-wide
3653 case (where the prefix is also referenced in the call to
3654 Wide_Wide_Expanded_Name) if evaluation of the prefix has side
3655 effects. Add new local helper function, Put_String_Exp. Add
3656 support for case where prefix type is class-wide.
3657 (Enable_Put_Image, Preload_Root_Buffer_Type): Query Ada_Version
3658 > Ada_2022 instead of (indirectly) querying -gnatd_z switch.
3659 * freeze.adb (In_Expanded_Body): A one-line change to add
3660 TSS_Put_Image to the list of subprograms that have
3661 expander-created bodies.
3662 * rtsfind.ads: Add support for accessing
3663 Ada.Tags.Wide_Wide_Expanded_Name.
3664 * sem_ch3.ads, sem_ch3.adb: Delete Is_Null_Extension function,
3665 as part of moving it to Sem_Util.
3667 (Analyze_Put_Image_TSS_Definition.Has_Good_Profile): Improve
3668 diagnostic messages in cases where the result is going to be
3669 False and the Report parameter is True. Relax overly-restrictive
3670 checks in order to implement mode conformance.
3671 (Analyze_Stream_TSS_Definition.Has_Good_Profile): Add similar
3672 relaxation of parameter subtype checking for the Stream
3673 parameter of user-defined streaming subprograms.
3674 * sem_disp.adb (Check_Dispatching_Operation): A one-line
3675 change (and an accompanying comment change) to add TSS_Put_Image
3676 to the list of compiler-generated dispatching primitive
3678 * sem_util.ads, sem_util.adb: Add Ignore_Privacy Boolean
3679 parameter to Is_Null_Record_Type function (typically the
3680 parameter will be False when the function is being used in the
3681 implementation of static semantics and True for dynamic
3682 semantics; the parameter might make a difference in the case of,
3683 for example, a private type that is implemented as a null record
3684 type). Add related new routines Is_Null_Extension (formerly
3685 declared in Sem_Ch3), Is_Null_Extension_Of, and
3686 Is_Null_Record_Definition.
3688 2021-07-05 Justin Squirek <squirek@adacore.com>
3690 * freeze.adb (Freeze_Profile): Use N's Sloc, F_type's chars.
3692 2021-07-05 Bob Duff <duff@adacore.com>
3694 * checks.adb, exp_aggr.adb, exp_ch5.adb, freeze.adb,
3695 sem_util.adb, sem_util.ads: Change L and H to be First and Last,
3696 to match the attributes in the RM. Change calls from procedure
3697 to function where appropriate.
3699 2021-07-05 Bob Duff <duff@adacore.com>
3701 * sem_util.ads, sem_util.adb (Compute_Returns_By_Ref): New
3702 procedure to compute Returns_By_Ref, to avoid some code
3703 duplication. This will likely change soon, so it's good to have
3704 the code in one place.
3705 (CW_Or_Has_Controlled_Part): Move here from Exp_Ch7, because
3706 it's called by Compute_Returns_By_Ref, and this is a better
3707 place for it anyway.
3708 (Needs_Finalization): Fix comment to be vague instead of wrong.
3709 * exp_ch6.adb (Expand_N_Subprogram_Body, Freeze_Subprogram):
3710 Call Compute_Returns_By_Ref.
3711 * sem_ch6.adb (Check_Delayed_Subprogram): Call
3712 Compute_Returns_By_Ref.
3713 * exp_ch7.ads, exp_ch7.adb (CW_Or_Has_Controlled_Part): Move to
3715 (Has_New_Controlled_Component): Remove unused function.
3717 2021-07-05 Ghjuvan Lacambre <lacambre@adacore.com>
3719 * sem_ch3.adb (Check_Abstract_Overriding): Check for renamings.
3721 2021-07-05 Boris Yakobowski <yakobowski@adacore.com>
3723 * exp_ch4.adb (Expand_N_Op_Rem): Remove special case for rem -1
3726 2021-07-01 Eric Botcazou <ebotcazou@adacore.com>
3729 * exp_attr.adb (Get_Integer_Type): Return an integer type with the
3730 same signedness as the input type.
3732 2021-06-29 Richard Kenner <kenner@adacore.com>
3734 * sem_util.adb (Visit_Node): Add handling for N_Block_Statement
3737 2021-06-29 Piotr Trojanek <trojanek@adacore.com>
3740 (Unknown_Alignment): Simply negate the Known_ counterpart.
3741 (Unknown_Component_Bit_Offset): Likewise.
3742 (Unknown_Esize): Likewise.
3743 (Unknown_Normalized_First_Bit): Likewise.
3744 (Unknown_Normalized_Position): Likewise.
3745 (Unknown_Normalized_Position_Max): Likewise.
3746 (Unknown_RM_Size): Likewise.
3748 2021-06-29 Boris Yakobowski <yakobowski@adacore.com>
3750 * exp_ch4.adb (Expand_N_Op_Mod): Remove special case for mod -1
3753 2021-06-29 Aleksandra Pasek <pasek@adacore.com>
3755 * libgnat/s-objrea.adb (EM_AARCH64): New Constant.
3756 (Initialize): Handle EM_AARCH64 case.
3757 (Read_Address): Handle AARCH64 case.
3758 * libgnat/s-objrea.ads (Object_Arch): Add AARCH64 record
3761 2021-06-29 Bob Duff <duff@adacore.com>
3763 * sem_ch13.adb (Analyze_Record_Representation_Clause): Call
3764 Set_Entity_With_Checks instead of Set_Entity, so we perform the
3765 check for correct casing.
3766 * style.adb (Check_Identifier): Minor comment improvement.
3767 Cleanup overly complicated code.
3769 2021-06-29 Ed Schonberg <schonberg@adacore.com>
3771 * exp_aggr.adb (Convert_Aggr_In_Object_Decl): After expansion of
3772 the aggregate, the expression can be removed from the
3773 declaration, except if the object is class-wide, in which case
3774 the aggregate provides the actual type. In other cases the
3775 presence of the expression may lead to spurious freezing issue.
3776 * exp_ch3.adb (Expand_N_Object_Declaration): If the expression
3777 in the declaration is an aggregate with delayed expansion (as is
3778 the case for objects of a limited type, or a subsequent address
3779 specification) the aggregate must be resolved at this point.
3780 This resolution must not include expansion, because the
3781 expansion of the enclosing declaration will construct the
3782 necessary aggregate expansion.
3784 2021-06-29 Piotr Trojanek <trojanek@adacore.com>
3786 * errout.ads (Adjust_Name_Case): Remove obsolete and now unused
3788 * errout.adb (Adjust_Name_Case): Likewise; fix variant that uses
3789 a custom buffer to also use it for names in Standard_Location.
3791 2021-06-29 Eric Botcazou <ebotcazou@adacore.com>
3793 * sem_ch12.adb (Freeze_Subprogram_Body): Add missing "freeze".
3794 (Install_Body): Likewise.
3796 2021-06-29 Piotr Trojanek <trojanek@adacore.com>
3798 * adaint.c (__gnat_portable_spawn): Revert change that
3799 introduced setting of __gnat_in_child_after_fork.
3801 2021-06-29 Patrick Bernardi <bernardi@adacore.com>
3803 * libgnarl/s-tasdeb.ads (Known_Tasks): Add Atomic_Components
3806 2021-06-29 Doug Rupp <rupp@adacore.com>
3808 * Makefile.rtl (x86_64-vx7r2) [EXTRA_GNATRTL_TASKING_OBJS]: Move
3809 i-vxinco.o out of RTP runtime.
3811 2021-06-29 Claire Dross <dross@adacore.com>
3813 * libgnat/a-cfdlli.ads: Use pragma Assertion_Policy to disable
3814 pre and postconditions.
3815 * libgnat/a-cfhama.ads: Likewise.
3816 * libgnat/a-cfhase.ads: Likewise.
3817 * libgnat/a-cfinve.ads: Likewise.
3818 * libgnat/a-cforma.ads: Likewise.
3819 * libgnat/a-cforse.ads: Likewise.
3820 * libgnat/a-cofove.ads: Likewise.
3822 2021-06-29 Piotr Trojanek <trojanek@adacore.com>
3824 * sem_util.ads (Get_Fullest_View): Refill comment; remove extra
3826 * sem_util.adb (Get_Fullest_View): Fix style.
3828 2021-06-29 Piotr Trojanek <trojanek@adacore.com>
3830 * sem_ch3.adb (Analyze_Declarations): Remove explicit check for
3831 missing, because a subsequent call to Is_Empty_List will detect
3834 2021-06-29 Piotr Trojanek <trojanek@adacore.com>
3836 * freeze.adb (Freeze_All): Simplify by reusing
3837 Is_Subprogram_Or_Entry.
3838 * sem_ch11.adb (Analyze_Handled_Statement): Likewise.
3840 2021-06-29 Piotr Trojanek <trojanek@adacore.com>
3842 * sem_warn.adb (Warn_On_Overlapping_Actuals): Prevent cascaded
3843 errors once for the subprogram call, not for every pair of
3846 2021-06-29 Piotr Trojanek <trojanek@adacore.com>
3848 * sem_ch3.adb (Is_Local_Type): Simplify by reusing Scope_Within.
3850 2021-06-29 Gary Dismukes <dismukes@adacore.com>
3852 * sem_ch6.ads (Can_Override_Operator): Function declaration
3853 moved from package body to package spec.
3854 * sem_ch6.adb (Check_Overriding_Indicator): Now use test of
3855 whether the subprogram's Chars is an operator name, to handle
3856 cases of function instances whose entity is
3857 N_Defining_Identifier rather than N_Defining_Operator_Symbol.
3858 (Can_Override_Operator): Function declaration moved to package
3859 spec. Now use test of whether the subprogram's Chars is an
3860 operator name, to handle cases of function instances whose
3861 entity is N_Defining_Identifier rather than
3862 N_Defining_Operator_Symbol.
3863 * sem_ch8.adb (Analyze_Renamed_Subprogram): Check for
3864 possibility of an overridden predefined operator, and suppress
3865 the "not overriding" message in that case.
3867 2021-06-29 Doug Rupp <rupp@adacore.com>
3869 * Makefile.rtl: Add a new ifeq for vx7r2 shared gnatlib.
3871 2021-06-29 Piotr Trojanek <trojanek@adacore.com>
3873 * exp_attr.adb (Build_Array_VS_Func): Restore uses of
3875 (Build_Record_VS_Func): Likewise.
3876 (Expand_N_Attribute_Reference): Likewise.
3877 * sem_util.adb (Validated_View): Behave as an identity function
3878 for arrays and scalars.
3880 2021-06-29 Bob Duff <duff@adacore.com>
3882 * atree.adb, atree.ads (Parent, Set_Parent): Assert node is
3884 (Copy_Parent, Parent_Kind): New helper routines.
3885 * gen_il-gen.adb: Add with clause.
3886 * nlists.adb (Parent): Assert Parent of list is Present.
3887 * aspects.adb, checks.adb, exp_aggr.adb, exp_ch6.adb,
3888 exp_util.adb, lib-xref-spark_specific.adb, osint.ads,
3889 sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch6.adb,
3890 sem_dim.adb, sem_prag.adb, sem_res.adb, sem_util.adb,
3891 treepr.adb: Do not call Parent and Set_Parent on the Empty node.
3892 * libgnat/a-stwiun__shared.adb, libgnat/a-stzunb__shared.adb:
3893 Minor: Fix typos in comments.
3894 * einfo.ads: Minor comment update.
3895 * sinfo-utils.ads, sinfo-utils.adb (Parent_Kind, Copy_Parent):
3898 2021-06-29 Eric Botcazou <ebotcazou@adacore.com>
3900 * repinfo-input.adb (Read_JSON_Stream): Fix typo.
3902 2021-06-29 Eric Botcazou <ebotcazou@adacore.com>
3904 * rtsfind.ads (RE_Id): Change RE_Valid_Enumeration_Value_NN into
3905 RE_Valid_Value_Enumeration_NN.
3906 (RE_Unit_Table): Adjust to above renaming.
3907 * exp_imgv.adb (Expand_Valid_Value_Attribute): Likewise.
3908 * libgnat/s-valuen.ads (Invalid): Remove.
3909 (Value_Enumeration_Pos): Move to...
3910 * libgnat/s-valuen.adb (Value_Enumeration_Pos): ...here.
3911 Return -1 instead of Invalid.
3912 (Value_Enumeration): Compare against 0 instead of Invalid.
3913 (Valid_Enumeration_Value): Likewise. Rename to...
3914 (Valid_Value_Enumeration): ...this.
3915 * libgnat/s-vaenu8.ads (Valid_Enumeration_Value_8): Rename into...
3916 (Valid_Value_Enumeration_8): ...this.
3917 * libgnat/s-vaen16.ads (Valid_Enumeration_Value_16): Rename into...
3918 (Valid_Value_Enumeration_16): ...this.
3919 * libgnat/s-vaen32.ads (Valid_Enumeration_Value_32): Rename into...
3920 (Valid_Value_Enumeration_32): ...this.
3922 2021-06-29 Bob Duff <duff@adacore.com>
3924 * einfo.ads (Component_Bit_Offset, Component_Size): Update
3925 documentation: Repinfo is the package where these negative
3926 values are documented.
3927 * einfo-utils.adb (Known_Component_Size,
3928 Known_Static_Component_Size, Unknown_Component_Size): Remove
3929 calls to Implementation_Base_Type, because Component_Size is an
3930 Impl_Base_Type_Only field (see Gen_Entities).
3931 * sem_ch13.ads, sem_ch13.adb (Check_Size): Do not set Esize and
3932 RM_Size. This is unnecessary in the case of Size. For
3933 Component_Size, it is wrong, because we would be setting the
3934 Esize and RM_Size of the component type.
3936 2021-06-29 Pascal Obry <obry@adacore.com>
3938 * s-oscons-tmplt.c: Add some OS constants.
3940 2021-06-29 Piotr Trojanek <trojanek@adacore.com>
3942 * sem_util.ads (Validated_View): Fix style in comment.
3943 * sem_util.adb (Validated_View): Rewrite in recursive style.
3945 2021-06-29 Eric Botcazou <ebotcazou@adacore.com>
3947 * Make-generated.in (ada/stamp-gen_il): Ignore errors from
3948 running gen_il-main.
3950 2021-06-29 Richard Kenner <kenner@adacore.com>
3952 * gen_il-gen-gen_entities.adb (Record_Field_Kind,
3953 Allocatable_Kind): Add new abstract kinds.
3954 (Constant_Or_Variable_Kind): Likewise.
3955 (E_Constant, E_Variable, E_Loop_Parameter): Use them.
3956 (E_Discriminant, E_Component): Likewise.
3957 * gen_il-types.ads (type Opt_Type_Enum): Add them.
3959 2021-06-29 Bob Duff <duff@adacore.com>
3961 * gen_il-gen.adb (Put_C_Type_And_Subtypes): Put the correct
3963 * gen_il-internals.ads, gen_il-internals.adb: (Pos): Remove this
3964 function. It was assuming that the order of the enumeration
3965 literals in Type_Enum is the same as the order of the generated
3966 types Node_Kind and Entity_Kind, which is not true.
3968 2021-06-29 Piotr Trojanek <trojanek@adacore.com>
3970 * exp_attr.adb (Expand_N_Attribute_Reference): Explicitly use
3971 Validated_View for record objects.
3973 2021-06-28 Martin Sebor <msebor@redhat.com>
3975 * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
3976 Replace TREE_NO_WARNING with suppress_warning.
3977 (gnat_gimplify_expr): Same.
3978 * gcc-interface/utils.c (gnat_pushdecl): Same.
3980 2021-06-21 Gary Dismukes <dismukes@adacore.com>
3982 * checks.adb (Selected_Range_Checks): In the case of a
3983 qualified_expression where the qualifying subtype is an
3984 unconstrained array subtype with fixed lower bounds for some of
3985 its indexes, generate tests to check that those bounds are equal
3986 to the corresponding lower bounds of the qualified array object.
3988 2021-06-21 Bob Duff <duff@adacore.com>
3990 * libgnat/s-valuen.ads (Value_Enumeration,
3991 Valid_Enumeration_Value): Inline.
3992 (Value_Enumeration_Pos): Add Pure_Function.
3994 2021-06-21 Justin Squirek <squirek@adacore.com>
3996 * doc/gnat_rm/implementation_defined_pragmas.rst: Document new
3997 feature under pragma Extensions_Allowed.
3998 * gnat_rm.texi: Regenerate.
3999 * errout.adb, errout.ads (Error_Msg_GNAT_Extension): Created to
4000 issue errors when parsing extension only constructs.
4001 * exp_ch11.adb, exp_ch11.ads (Expand_N_Raise_When_Statement):
4002 Created to expand raise ... when constucts.
4003 * exp_ch5.adb, exp_ch5.ads (Expand_N_Goto_When_Statement):
4004 Created to expand goto ... when constructs.
4005 * exp_ch6.adb, exp_ch6.ads (Expand_N_Return_When_Statement):
4006 Created to expand return ... when constructs.
4007 * expander.adb (Expand): Add case entries for "when" constructs.
4008 * gen_il-gen-gen_nodes.adb, gen_il-types.ads: Add entries for
4010 * par-ch11.adb (P_Raise_Statement): Add processing for raise ...
4012 * par-ch5.adb (Missing_Semicolon_On_Exit): Renamed to
4013 Missing_Semicolon_On_When and moved to par-util.adb.
4014 * par-ch6.adb (Get_Return_Kind): Renamed from Is_Simple and
4015 processing added for "return ... when" return kind.
4016 (Is_Simple): Renamed to Get_Return_Kind.
4017 (P_Return_Statement): Add case for return ... when variant of
4019 * par-util.adb, par.adb (Missing_Semicolon_On_When): Added to
4020 centeralize parsing of "when" keywords in the context of "when"
4022 * sem.adb (Analyze): Add case for "when" constructs.
4023 * sem_ch11.adb, sem_ch11.ads (Analyze_Raise_When_Statement):
4024 Created to analyze raise ... when constructs.
4025 * sem_ch5.adb, sem_ch5.ads (Analyzed_Goto_When_Statement):
4026 Created to analyze goto ... when constructs.
4027 * sem_ch6.adb, sem_ch6.ads (Analyze_Return_When_Statement):
4028 Created to analyze return ... when constructs.
4029 * sprint.adb (Sprint_Node_Actual): Add entries for new "when"
4032 2021-06-21 Steve Baird <baird@adacore.com>
4034 * Make-generated.in (GEN_IL_FLAGS): Keep only GNAT flags.
4035 (ada/stamp-gen_il): Remove dependencies on libgnat/ sources. Do not
4036 copy libgnat/ sources locally and tidy up.
4037 * Makefile.rtl: Include object files for new Text_Buffer units
4038 in the GNATRTL_NONTASKING_OBJS list.
4039 * exp_put_image.ads, exp_put_image.adb: Update Rtsfind calls to
4040 match new specs. For example, calls to RE_Sink are replaced with
4041 calls to RE_Root_Buffer_Type. Update comments and change
4042 subprogram names accordingly (e.g., Preload_Sink is changed to
4043 Preload_Root_Buffer_Type).
4044 * impunit.adb: Add 6 new predefined units (Text_Buffers and 5
4045 child units thereof).
4046 * rtsfind.ads, rtsfind.adb: Add interfaces for accessing the
4047 Ada.Strings.Text_Buffers package and declarations
4048 therein (including the Unbounded child unit). Do not (yet)
4049 delete interfaces for accessing the old Text_Output package.
4050 * sem_attr.adb (Check_Put_Image_Attribute): Replace RE_Sink uses
4051 with RE_Root_Buffer_Type and update comments accordingly.
4052 * sem_ch10.adb (Analyze_Compilation_Unit): Update call to
4053 reflect name change of callee (that is, the former Preload_Sink
4054 is now Preload_Root_Buffer_Type).
4055 * sem_ch13.adb (Has_Good_Profile): Replace RE_Sink use with
4056 RE_Root_Buffer_Type.
4057 (Build_Spec): Update comment describing a parameter type.
4058 * gen_il.ads: Remove clauses for the old Text_Output package and
4059 add them for Ada.Streams.Stream_IO.
4061 (Create_File): Likewise.
4062 (Increase_Indent): Likewise.
4063 (Decrease_Indent): Likewise.
4066 * gen_il.adb: Add clauses for Ada.Streams.Stream_IO.
4067 (Create_File): New procedure.
4068 (Increase_Indent): Likewise.
4069 (Decrease_Indent): Likewise.
4070 (Put): New procedures.
4071 * gen_il-gen.adb: Add clauses for Ada.Text_IO. Replace
4072 Sink'Class with Sink throughout. Use string concatenation and
4073 LF marker instead of formatted strings and "\n" marker. Update
4074 Indent/Outdent calls to use new Increase_Indent/Decrease_Indent
4076 (Put_Membership_Query_Decl): Remove.
4077 * gen_il-internals.ads: Replace Sink'Class with Sink throughout.
4079 (Pfields): Likewise.
4080 * gen_il-internals.adb: Remove clauses for GNAT.OS_Lib and
4081 Ada.Strings.Text_Buffers.Files. Replace Sink'Class with Sink
4082 throughout. Use string concatenation and LF marker instead of
4083 formatted strings and "\n" marker.
4086 (Pfields): Likewise.
4087 * libgnarl/s-putaim.ads: Modify context clause, update
4088 declaration of subtype Sink to refer to
4089 Text_Buffers.Root_Buffer_Type instead of the old
4090 Text_Output.Sink type.
4091 * libgnarl/s-putaim.adb: Modify context clause and add use
4092 clause to refer to Text_Buffers package.
4093 * libgnat/a-cbdlli.ads, libgnat/a-cbdlli.adb,
4094 libgnat/a-cbhama.ads, libgnat/a-cbhama.adb,
4095 libgnat/a-cbhase.ads, libgnat/a-cbhase.adb,
4096 libgnat/a-cbmutr.ads, libgnat/a-cbmutr.adb,
4097 libgnat/a-cborma.ads, libgnat/a-cborma.adb,
4098 libgnat/a-cborse.ads, libgnat/a-cborse.adb,
4099 libgnat/a-cdlili.ads, libgnat/a-cdlili.adb,
4100 libgnat/a-cidlli.ads, libgnat/a-cidlli.adb,
4101 libgnat/a-cihama.ads, libgnat/a-cihama.adb,
4102 libgnat/a-cihase.ads, libgnat/a-cihase.adb,
4103 libgnat/a-cimutr.ads, libgnat/a-cimutr.adb,
4104 libgnat/a-ciorma.ads, libgnat/a-ciorma.adb,
4105 libgnat/a-ciormu.ads, libgnat/a-ciormu.adb,
4106 libgnat/a-ciorse.ads, libgnat/a-ciorse.adb,
4107 libgnat/a-coboho.ads, libgnat/a-coboho.adb,
4108 libgnat/a-cobove.ads, libgnat/a-cobove.adb,
4109 libgnat/a-cohama.ads, libgnat/a-cohama.adb,
4110 libgnat/a-cohase.ads, libgnat/a-cohase.adb,
4111 libgnat/a-coinho.ads, libgnat/a-coinho.adb,
4112 libgnat/a-coinho__shared.ads, libgnat/a-coinho__shared.adb,
4113 libgnat/a-coinve.ads, libgnat/a-coinve.adb,
4114 libgnat/a-comutr.ads, libgnat/a-comutr.adb,
4115 libgnat/a-convec.ads, libgnat/a-convec.adb,
4116 libgnat/a-coorma.ads, libgnat/a-coorma.adb,
4117 libgnat/a-coormu.ads, libgnat/a-coormu.adb,
4118 libgnat/a-coorse.ads, libgnat/a-coorse.adb,
4119 libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
4120 libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.ads,
4121 libgnat/a-nbnbre.adb, libgnat/a-strunb.ads,
4122 libgnat/a-strunb.adb, libgnat/a-strunb__shared.ads,
4123 libgnat/a-strunb__shared.adb, libgnat/s-rannum.ads,
4124 libgnat/s-rannum.adb: Modify Put_Image procedure used in
4125 Put_Image aspect specification to conform to Ada profile
4126 rules (in particular, the first parameter shall be of type
4127 Ada.Strings.Text_Buffers.Root_Buffer_Type'Class).
4128 * libgnat/a-sttebu.ads, libgnat/a-sttebu.adb,
4129 libgnat/a-stbubo.ads, libgnat/a-stbubo.adb,
4130 libgnat/a-stbufi.ads, libgnat/a-stbufi.adb,
4131 libgnat/a-stbufo.ads, libgnat/a-stbufo.adb,
4132 libgnat/a-stbuun.ads, libgnat/a-stbuun.adb,
4133 libgnat/a-stbuut.ads, libgnat/a-stbuut.adb: A new predefined
4134 unit, Ada.Strings.Text_Buffers, and five child units. Two of
4135 the five are RM-defined: Bounded and Unbounded. The remaining
4136 three are GNAT-defined: Files, Utils, and Formatting. The buffer
4137 type corresponding to an output file, type Files.File_Buffer, is
4138 simpler (and perhaps therefore slower) than its predecessor.
4139 Caching similar to what was being done before could be added
4140 later if that seems appropriate.
4141 * libgnat/s-putima.ads: Modify context clause, update
4142 declaration of subtype Sink to refer to
4143 Text_Buffers.Root_Buffer_Type instead of the old
4144 Text_Output.Sink type.
4145 * libgnat/s-putima.adb: Modify context clause. Update
4146 Indent/Outdent calls to use new Increase_Indent/Decrease_Indent
4147 names; ditto for "Put_String => Put" name change.
4148 * libgnat/a-stteou__bootstrap.ads: Delete.
4150 2021-06-21 Eric Botcazou <ebotcazou@adacore.com>
4152 * exp_ch5.adb (Expand_Assign_Array_Bitfield_Fast): If big-endian
4153 ordering is in effect for the operands and they are small,
4154 adjust the unchecked conversions done around them.
4156 2021-06-21 Richard Kenner <kenner@adacore.com>
4158 * einfo.ads (Return_Statement): Add documentation.
4159 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Set it.
4160 * gen_il-fields.ads: Add it.
4161 * gen_il-gen-gen_entities.adb: Add it.
4163 2021-06-21 Bob Duff <duff@adacore.com>
4165 * rtsfind.ads, libgnat/s-bitfie.ads, libgnat/s-bituti.adb,
4166 libgnat/s-bituti.ads (Fast_Copy_Bitfield): New run-time library
4167 function to copy bit fields faster than Copy_Bitfield. Cannot be
4168 called with zero-size bit fields. Remove obsolete ??? comments
4169 from s-bituti.adb; we already do "avoid calling this if
4170 Forwards_OK is False".
4171 * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield,
4172 Expand_Assign_Array_Bitfield_Fast): Generate calls to
4173 Fast_Copy_Bitfield when appropriate.
4174 * sem_util.adb, sem_util.ads (Get_Index_Bounds): Two new
4175 functions for getting the index bounds. These are more
4176 convenient than the procedure of the same name, because they can
4177 be used to initialize constants.
4179 2021-06-21 Ed Schonberg <schonberg@adacore.com>
4181 * gen_il-fields.ads: Add Default_Subtype_Mark to enumeration
4183 * gen_il-gen-gen_nodes.adb: Add call to create new field for
4184 Formal_Type_Declaration node.
4185 * par-ch12.adb (P_Formal_Type_Declaration): in Ada_2022 mode,
4186 recognize new syntax for default: "or use subtype_mark".
4187 (P_Formal_Type_Definition): Ditto for the case of a formal
4189 * sinfo.ads: Add field Default_Subtype_Mark to
4190 N_Formal_Type_Declaration.
4191 * sem_ch12.adb (Validate_Formal_Type_Default): New procedure, to
4192 apply legality rules to default subtypes in formal type
4193 declarations. Some legality rules apply to all defaults, such as
4194 the requirement that the default for a formal type that depends
4195 on previous formal entities must itself be a previously declared
4196 formal of the same unit. Other checks are kind- specific.
4197 (Analyze_Associations): Use specified default if there is no
4198 actual provided for a formal type in an instance.
4199 (Analyze_Formal_Type_Declaration): Call
4200 Validate_Formal_Type_Default when default subtype is present.
4202 2021-06-21 Bob Duff <duff@adacore.com>
4204 * libgnat/s-valuen.ads, libgnat/s-valuen.adb
4205 (Value_Enumeration_Pos): New function to compute the 'Pos of the
4206 enumeration literal for a given String. Return a special value
4207 instead of raising an exception on invalid input. Called by both
4208 Valid_Enumeration_Image and Value_Enumeration.
4209 (Valid_Enumeration_Image): Return a Boolean indicating whether
4210 the String is a valid Image for the given enumeration type.
4211 (Value_Enumeration): Implement in terms of
4212 Value_Enumeration_Pos.
4213 * libgnat/s-vaenu8.ads, libgnat/s-vaen16.ads,
4214 libgnat/s-vaen32.ads: Rename Valid_Enumeration_Image from the
4216 * libgnat/s-valuti.ads: Correct documentation (it was not true
4217 for the null string).
4218 * libgnat/s-valuti.adb (Normalize_String): Do not raise
4219 Constraint_Error for the null string, nor strings containing
4220 nothing but blanks, so that Valid_Enumeration_Image can return
4221 False in these cases, rather than raising an exception.
4222 * rtsfind.ads (RE_Value_Enumeration_8, RE_Value_Enumeration_16,
4223 RE_Value_Enumeration_32): New functions.
4224 (RTE_Available): Improve comment (E doesn't have to be a
4225 subprogram, although that's the usual case).
4226 * sem_attr.adb (nalid_Value): Semantic analysis for new
4228 * exp_attr.adb: Call Expand_Valid_Value_Attribute for new
4230 * exp_imgv.ads, exp_imgv.adb (Expand_Valid_Value_Attribute): New
4231 procedure to expand Valid_Value into a call to
4232 Valid_Enumeration_Image_NN.
4233 (Expand_Value_Attribute): Misc code cleanups. Remove two ???
4234 mark comments. RTE_Available won't work here. For one thing,
4235 RTE_Available (X) shouldn't be called until the compiler has
4236 decided to make use of X (see comments on RTE_Available), and in
4237 this case we're trying to AVOID calling something.
4238 * snames.ads-tmpl: New attribute name.
4239 * doc/gnat_rm/implementation_defined_attributes.rst: Document
4241 * gnat_rm.texi: Regenerate.
4243 2021-06-21 Eric Botcazou <ebotcazou@adacore.com>
4245 * fe.h (Assume_No_Invalid_Values): Declare.
4246 * opt.ads (Assume_No_Invalid_Values): Add warning comment.
4248 2021-06-21 Bob Duff <duff@adacore.com>
4250 * libgnat/s-bituti.ads (Small_Size): Do not include 0 in this
4252 * libgnat/s-bituti.adb (Copy_Bitfield): Do nothing for 0-bit
4255 2021-06-21 Ghjuvan Lacambre <lacambre@adacore.com>
4257 * exp_ch9.adb (Build_Simple_Entry_Call): Add comment.
4258 * libgnat/s-rannum.adb (Random): Update comment.
4259 * libgnat/s-rannum.ads (Generator): Update comment.
4261 2021-06-21 Piotr Trojanek <trojanek@adacore.com>
4263 * doc/gnat_rm/representation_clauses_and_pragmas.rst (Address
4264 Clauses): Fix unbalanced parens.
4265 * gnat_rm.texi: Regenerate.
4267 2021-06-21 Ghjuvan Lacambre <lacambre@adacore.com>
4269 * errout.adb (Handle_Serious_Error): Capitalize comment.
4270 * exp_dbug.adb (Set_Entity_Name): Capitalize sentence.
4271 * exp_dist.adb (Expand_All_Calls_Remote_Subprogram_Call): Fix
4273 * sem_ch3.adb (Modular_Type_Declaration): Add space after comma.
4275 2021-06-21 Ghjuvan Lacambre <lacambre@adacore.com>
4277 * debug.adb: Document -gnatd_U as taken.
4278 * err_vars.ads (Warning_Doc_Switch): Set to True.
4279 * errout.ads (Errout): Update documentation.
4280 * gnat1drv.adb (Adjust_Global_Switches): React to -gnatd_U.
4281 * hostparm.ads (Tag_Errors): Set to True.
4282 * opt.ads (Unique_Error_Tag): Document -gnatd_U.
4284 2021-06-21 Eric Botcazou <ebotcazou@adacore.com>
4286 * urealp.ads (UR_Write_To_JSON): Declare.
4287 * urealp.adb (Decimal_Exponent_Hi): Treat numbers in base 10
4288 specially and rewrite handling of numbers in other bases.
4289 (Decimal_Exponent_Lo): Likewise.
4290 (Normalize): Minor tweak.
4291 (UR_Write_To_JSON): New wrapper procedure around UR_Write.
4292 * repinfo.adb (List_Type_Info): When the output is to JSON, call
4293 UR_Write_To_JSON instead of UR_Write.
4295 2021-06-21 Piotr Trojanek <trojanek@adacore.com>
4297 * sem_util.adb (Indexed_Component_Bit_Offset): Return an unknown
4298 offset for components within multidimensional arrays; remove
4301 2021-06-21 Piotr Trojanek <trojanek@adacore.com>
4303 * sem_util.adb (Find_Overlaid_Entity): Ignore references to
4304 components and discriminants.
4306 2021-06-21 Doug Rupp <rupp@adacore.com>
4308 * Makefile.rtl (aarch64-linux) [LIBGNAT_TARGET_PAIRS]: Add
4309 $(TRASYM_DWARF_UNIX_PAIRS).
4310 [EXTRA_GNAT_RTL_NONTASKING_OBJS]: Add $(TRASYM_DWARF_UNIX_OBJS)
4312 2021-06-21 Gary Dismukes <dismukes@adacore.com>
4314 * exp_util.adb (Expand_Sliding_Conversion): Only perform
4315 expansion when Expander_Active is True. Add a comment about this
4316 and refine existing comment regarding string literals.
4318 2021-06-21 Piotr Trojanek <trojanek@adacore.com>
4320 * sem_util.adb (Denotes_Same_Object): Simplify handling of
4323 2021-06-21 Piotr Trojanek <trojanek@adacore.com>
4325 * sem_util.adb (Is_Object_Renaming): Rename from Is_Renaming;
4326 simplify; adapt callers.
4328 2021-06-21 Frederic Konrad <konrad@adacore.com>
4330 * Makefile.rtl: Compiles both static and dynamic libgnat for
4331 powerpc64-wrs-vxworks7r2.
4333 2021-06-18 Gary Dismukes <dismukes@adacore.com>
4335 * sem_ch3.adb (Constrain_Array): Add error checking for
4336 fixed-lower-bound and constrained index ranges applied
4337 inappropriately on subtypes of unconstrained and
4338 fixed-lower-bound array types.
4339 (Constrain_Index): Correct and refine comment related to
4340 fixed-lower-bound index ranges.
4342 2021-06-18 Bob Duff <duff@adacore.com>
4344 * gen_il-gen.adb: Improve comments.
4345 * snames.ads-tmpl (Convention_Id): Remove "-- Plenty of space
4346 for expansion", because that's irrelevant now that we are no
4347 longer laying out node fields by hand.
4349 2021-06-18 Piotr Trojanek <trojanek@adacore.com>
4351 * sem_util.adb (Denotes_Same_Object): Handle character literals
4352 just like integer literals.
4354 2021-06-18 Piotr Trojanek <trojanek@adacore.com>
4356 * sem_util.adb (Denotes_Same_Object): Explicitly test for node
4357 kinds being the same; deal with renamings one-by-one; adjust
4358 numbers in references to the Ada RM.
4360 2021-06-18 Bob Duff <duff@adacore.com>
4362 * sprint.adb (Write_Source_Line): Check for EOF in
4363 Line_Terminator loop. Note that when a source file is read in,
4364 an EOF character is added to the end.
4366 2021-06-18 Piotr Trojanek <trojanek@adacore.com>
4368 * sem_aux.adb (Package_Specification): Add assertions to confirm
4369 the kind of the of parameter and returned node.
4370 * sem_ch12.adb (Remove_Parent): Reorder conditions; this change
4371 appears to be semantically neutral, but is enough to avoid the
4372 problematic call to Package_Specification.
4373 * sem_util.adb (Is_Incomplete_Or_Private_Type): Replace loop
4374 with a call to Package_Specification.
4376 2021-06-18 Bob Duff <duff@adacore.com>
4378 * sem_attr.adb (Eval_Attribute): For Enum_Lit'Size, use
4379 Enum_Type'Object_Size.
4381 2021-06-18 Olivier Hainque <hainque@adacore.com>
4383 * sigtramp-vxworks-target.inc (__aarch64__): Sync
4384 REGNO_PC_OFFSET with the back-end DWARF_ALT_FRAME_RETURN_COLUMN.
4385 In CFI_COMMON_REGS, leave r18 alone, VxWorks private.
4387 2021-06-18 Javier Miranda <miranda@adacore.com>
4389 * contracts.adb (Process_Spec_Postconditions): Add missing
4390 support for aliased subprograms and handle wrappers of
4391 class-wide pre/post conditions.
4392 (Process_Inherited_Preconditions): Add missing support for
4393 aliased subprograms and handle wrappers of class-wide pre/post
4395 * einfo.ads (Class_Wide_Clone): Fix typo.
4396 (Is_Class_Wide_Clone): Removed since it is not referenced.
4397 (Is_Wrapper): Documenting new flag.
4398 (LSP_Subprogram): Documenting new attribute.
4399 * exp_ch3.adb (Make_Controlling_Function_Wrappers): Decorate
4400 wrapper as Is_Wrapper and adjust call to
4401 Override_Dispatching_Operation.
4402 * freeze.adb (Build_Inherited_Condition_Pragmas): Fix typo in
4404 (Check_Inherited_Conditions): Handle LSP wrappers; ensure
4405 correct decoration of LSP wrappers.
4406 * gen_il-fields.ads (Is_Class_Wide_Clone): Removed.
4407 (Is_Wrapper): Added.
4408 (LSP_Subprogram): Added.
4409 * gen_il-gen-gen_entities.adb (Is_Class_Wide_Clone): Removed.
4410 (Is_Wrapper): Added.
4411 (LSP_Subprogram): Added.
4412 * gen_il-internals.adb (Image): Adding uppercase image of
4414 * sem_ch6.adb (New_Overloaded_Entity): Fix decoration of LSP
4416 * sem_disp.ads (Override_Dispatching_Operation): Remove
4417 parameter Is_Wrapper; no longer needed.
4418 * sem_disp.adb (Check_Dispatching_Operation): Adjust assertion.
4419 (Override_Dispatching_Operation): Remove parameter Is_Wrapper;
4421 * treepr.adb (Image): Adding uppercase image of LSP_Subprogram.
4423 2021-06-18 Arnaud Charlet <charlet@adacore.com>
4425 * exp_ch4.adb (Expand_N_Quantified_Expression): Ensure the type
4426 of the name of a "for of" loop is frozen.
4427 * exp_disp.adb (Check_Premature_Freezing): Complete condition to
4428 take into account a private type completed by another private
4429 type now that the freezing rule are better implemented.
4430 * freeze.adb (Freeze_Entity.Freeze_Profile): Do not perform an
4431 early freeze on types if not in the proper scope. Special case
4432 expression functions that requires access to the dispatch table.
4433 (Should_Freeze_Type): New.
4434 * sem_ch13.adb (Resolve_Aspect_Expressions): Prevent assert
4435 failure in case of an invalid tree (previous errors detected).
4436 * sem_res.adb (Resolve): Remove kludge related to entities
4437 causing incorrect premature freezing.
4438 * sem_util.adb (Ensure_Minimum_Decoration): Add protection
4439 against non base types.
4441 2021-06-18 Gary Dismukes <dismukes@adacore.com>
4443 * sem_ch3.adb (Constrain_Index): Set the High_Bound of a
4444 fixed-lower-bound subtype's range to T (the subtype of the FLB
4445 index being constrained) rather than Base_Type (T).
4447 2021-06-18 Bob Duff <duff@adacore.com>
4449 * ada_get_targ.adb, aspects.ads, checks.adb, cstand.adb,
4450 einfo.ads, exp_attr.adb, freeze.adb, get_targ.adb,
4451 libgnat/a-textio.ads, libgnat/g-memdum.ads,
4452 libgnat/s-scaval__128.adb, libgnat/s-scaval.adb, make.adb,
4453 osint.ads, par-prag.adb, sem_ch13.adb, sem_prag.adb,
4454 sem_prag.ads, set_targ.adb, set_targ.ads, snames.ads-tmpl,
4455 targparm.ads, types.ads: Remove AAMP-specific code.
4456 * switch.ads: Minor reformatting.
4457 * gen_il-fields.ads, gen_il-gen.adb,
4458 gen_il-gen-gen_entities.adb, gen_il-types.ads, einfo-utils.adb,
4459 einfo-utils.ads: Package Types now contains "type Float_Rep_Kind
4460 is (IEEE_Binary);", which used to also have an enumeral AAMP.
4461 Gen_IL can't handle fields of this type, which would be zero
4462 sized. Therefore, we move the Float_Rep field into Einfo.Utils
4463 as a synthesized attribute. (We do not delete the field
4464 altogether, in case we want new floating-point representations
4466 * doc/gnat_rm/implementation_defined_pragmas.rst,
4467 doc/gnat_rm/implementation_defined_aspects.rst,
4468 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
4469 doc/gnat_ugn/the_gnat_compilation_model.rst: Remove
4470 AAMP-specific documentation.
4471 * gnat_rm.texi, gnat_ugn.texi: Regenerate.
4473 2021-06-18 Gary Dismukes <dismukes@adacore.com>
4475 * exp_util.adb (Expand_Sliding_Conversion): Move test of
4476 Is_Fixed_Lower_Bound_Subtype to an assertion. Exclude string
4477 literals from sliding expansion.
4479 2021-06-18 Piotr Trojanek <trojanek@adacore.com>
4481 * sem_warn.adb (Warn_On_Overlapping_Actuals): Cleanup conditions
4482 related to Ada_Version.
4484 2021-06-18 Piotr Trojanek <trojanek@adacore.com>
4486 * sem_util.adb (Address_Value): Simplify.
4488 2021-06-18 Bob Duff <duff@adacore.com>
4490 * sem_attr.adb (Check_Array_Or_Scalar_Type): Use Expr_Value
4491 instead of Intval, because the latter only exists in literals.
4492 Remove Set_Etype on E1; setting the type is done elsewhere.
4494 2021-06-18 Piotr Trojanek <trojanek@adacore.com>
4496 * sem_warn.adb (Warn_On_Overlapping_Actuals): Examine types of
4497 both formal parameters; refactor a complex detection of
4500 2021-06-18 Arnaud Charlet <charlet@adacore.com>
4502 * gnatcmd.adb: Fix handling of check and test commands.
4504 2021-06-18 Gary Dismukes <dismukes@adacore.com>
4506 * doc/gnat_rm/implementation_defined_pragmas.rst: Add
4507 documentation for the array fixed-lower-bound feature.
4508 * gnat_rm.texi: Regenerate.
4510 2021-06-18 Bob Duff <duff@adacore.com>
4512 * debug.adb: Document switch.
4513 * exp_aggr.adb: If -gnatd_g was given, then do not bump the
4516 2021-06-18 Bob Duff <duff@adacore.com>
4518 * sem_util.ads, sem_util.adb (Has_Access_Values): Remove
4519 Include_Internal parameter that was added in previous change.
4520 * sem_warn.adb (Warnings_Off_E1): Back out E_Out_Parameter ==>
4521 Formal_Kind change made previously. Check Is_Private_Type to
4522 avoid warnings on private types. Misc cleanup.
4523 * sem_attr.adb (Attribute_Has_Access_Values): Remove
4524 Include_Internal parameter.
4526 2021-06-18 Piotr Trojanek <trojanek@adacore.com>
4528 * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove dead branch
4529 for overlapping actuals in prefix notation.
4531 2021-06-18 Eric Botcazou <ebotcazou@adacore.com>
4533 * sem_prag.adb (Process_Import_Or_Interface): Do not
4534 artificially record a possible modification for a constant.
4536 2021-06-18 Arnaud Charlet <charlet@adacore.com>
4538 * exp_ch6.adb (Expand_Call_Helper): Code cleanups.
4540 2021-06-18 Arnaud Charlet <charlet@adacore.com>
4542 * exp_aggr.adb, exp_dist.adb, exp_unst.adb, sa_messages.ads,
4543 sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_eval.adb,
4544 sem_util.adb, sem_util.ads, sinfo.ads: Update comments.
4546 2021-06-18 Ghjuvan Lacambre <lacambre@adacore.com>
4548 * back_end.adb (Scan_Back_End_Switches): Set Opt.JSON_Output to
4549 True if -fdiagnostics-format=json option is found.
4550 * back_end.ads (Scan_Compiler_Arguments): Mention
4552 * errout.adb (Output_JSON_Message): New procedure.
4553 (Output_Messages): If Opt.JSON_Output is True, print messages
4554 with new Output_JSON_Message procedure.
4555 * opt.ads: Declare JSON_Output variable.
4556 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
4557 Mention new -fdiagnostics-format option.
4558 * gnat_ugn.texi: Regenerate.
4560 2021-06-18 Arnaud Charlet <charlet@adacore.com>
4562 * sem_ch6.adb (Null_Exclusions_Match): Relax null exclusion
4563 mismatch check when Relaxed_RM_Semantics is set.
4565 2021-06-18 Arnaud Charlet <charlet@adacore.com>
4567 * fe.h, opt.adb, opt.ads, par-prag.adb, sem_prag.adb,
4568 switch-c.adb (Extensions_Allowed): Replace by a function.
4569 (Ada_Version_Type): Add new value Ada_With_Extensions, to
4570 replace setting of Extensions_Allowed. Update setting of
4573 2021-06-18 Arnaud Charlet <charlet@adacore.com>
4575 * bindgen.adb (Gen_Output_File_Ada): Generate a new constant
4576 GNAT_Version_Address.
4577 * libgnat/g-comver.adb (GNAT_Version_Address): New;
4578 (GNAT_Version): Use GNAT_Version_Address to disable LTO warning.
4580 2021-06-18 Javier Miranda <miranda@adacore.com>
4582 * einfo.ads (Is_Ada_2022_Only): Adding documentation.
4583 * gen_il-fields.ads (Is_Ada_2022_Only): New flag.
4584 * gen_il-gen-gen_entities.adb (Is_Ada_2022_Only): New flag.
4585 * itypes.adb (Create_Null_Excluding_Itype): Inherit
4587 * sem_ch3.adb (Check_Abstract_Overriding): Skip reporting error
4588 on Ada 2022 only subprograms that require overriding if we are
4589 not in Ada 2022 mode.
4590 (Derive_Subprogram): Inherit Is_Ada_2022_Only.
4591 * sem_ch6.adb (Check_Overriding_Indicator): Inherit
4593 (New_Overloaded_Entity): Inherit Is_Ada_2022_Only.
4594 * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Inherit
4596 (Preserve_Full_Attributes): Inherit Is_Ada_2022_Only.
4597 * sem_disp.adb (Find_Hidden_Overridden_Primitive): Inherit
4599 (Override_Dispatching_Operation): Inherit Is_Ada_2022_Only.
4600 * sem_prag.adb (Analyze_Pragma): Allow form with argument for
4602 * sem_type.adb: (Disambiguate): Deal with Is_Ada_2022_Only
4603 * lib-xref.adb (Generate_Reference): Error on static and
4604 dispatching calls to Ada 2022 subprograms that require
4605 overriding if we are not in Ada 2022 mode; warn on other
4606 references to Ada 2022 entities when not in Ada 2022 mode.
4607 * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): Inherit
4609 * libgnat/a-cdlili.ads (Empty): Adding pragma Ada_2022.
4610 * libgnat/a-cidlli.ads (Empty): Adding pragma Ada_2022.
4611 * libgnat/a-ciorma.ads (Empty): Adding pragma Ada_2022.
4612 * libgnat/a-cobove.ads (Empty): Adding pragma Ada_2022.
4613 * libgnat/a-coorma.ads (Empty): Adding pragma Ada_2022.
4614 (New_Vector): Adding pragma Ada_2022.
4615 (Insert_Vector): Adding pragma Ada_2022.
4616 (Prepend_Vector): Adding pragma Ada_2022.
4617 (Append_Vector): Adding pragma Ada_2022.
4619 2021-06-17 Arnaud Charlet <charlet@adacore.com>
4621 * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Protect against
4622 no Primitive_Operations.
4624 2021-06-17 Vadim Godunko <godunko@adacore.com>
4626 * libgnat/a-strunb__shared.ads (Allocate): Additional parameter
4627 to provide additional amount of space to be allocated.
4628 * libgnat/a-strunb__shared.adb (Aligned_Max_Length): Limit
4629 length to Natural'Last when requested length is larger than it.
4630 (Allocate): Merge two slightly different implementations into
4633 2021-06-17 Gary Dismukes <dismukes@adacore.com>
4635 * checks.adb (Discrete_Range_Cond): For an index subtype that
4636 has a fixed lower bound, require that the range's lower bound
4637 match that of the subtype.
4638 (Selected_Range_Checks): Warn about the case where a static
4639 lower bound does not equal an index subtype's fixed lower bound.
4640 * einfo.ads (Is_Fixed_Lower_Bound_Array_Subtype,
4641 Is_Fixed_Lower_Bound_Index_Subtype): Document new entity flag.
4642 * exp_ch4.adb (Expand_N_Type_Conversion): If the operand is of
4643 an unconstrained array subtype with fixed lower bound, then
4644 Expand_Sliding_Conversion is applied to the operand.
4645 * exp_ch6.adb (Expand_Simple_Function_Return): If the result
4646 subtype is an unconstrained array subtype with fixed lower
4647 bound, then Expand_Sliding_Conversion is applied to the return
4649 * exp_util.ads (Expand_Sliding_Conversion): New procedure for
4650 applying a sliding subtype conversion to an array object of a
4651 fixed-lower-bound subtype when needed.
4652 * exp_util.adb: Add with_clause for Freeze.
4653 (Expand_Sliding_Conversion): New procedure for applying a
4654 sliding subtype conversion to an array object of a
4655 fixed-lower-bound subtype when needed. It traverses the indexes
4656 of the unconstrained array type/subtype to create a target
4657 constrained subtype and rewrites the array object to be a
4658 conversion to that subtype, when there's at least one index
4659 whose lower bound does not statically match the fixed-lower
4660 bound of the target subtype.
4661 * gen_il-fields.ads (type Opt_Field_Enum): Add literals
4662 Is_Fixed_Lower_Bound_Array_Subtype and
4663 Is_Fixed_Lower_Bound_Index_Subtype for new flags on type
4665 * gen_il-gen-gen_entities.adb: Add calls to
4666 Create_Semantic_Field for the new fixed-lower-bound flags on
4668 * par-ch3.adb (P_Array_Type_Definition): Add handling for
4669 parsing of fixed-lower-bound index ranges in unconstrained array
4670 types. Report an error if such an index is encountered and GNAT
4671 language extensions are not enabled.
4672 (P_Index_Subtype_Def_With_Fixed_Lower_Bound): Support procedure
4673 for parsing unconstrained index ranges.
4674 (P_Index_Or_Discriminant_Constraint): Add handling for parsing
4675 of index constraints that specify ranges with fixed lower
4676 bounds. Report an error if such an index is encountered and GNAT
4677 language extensions are not enabled.
4678 * sem_ch3.adb (Analyze_Object_Declaration): If the object's
4679 nominal subtype is an array subtype with fixed lower bound, then
4680 Expand_Sliding_Conversion is applied to the object.
4681 (Array_Type_Declaration): Mark the array type and the subtypes
4682 of any indexes that specify a fixed lower bound as being
4683 fixed-lower-bound subtypes, and set the High_bound of the range
4684 of such an index to the upper bound of the named subtype.
4685 (Constrain_Array): For an array subtype with one or more index
4686 ranges specifying a fixed lower bound, set Is_Constrained to
4687 False and set the array subtype's
4688 Is_Fixed_Lower_Bound_Array_Subtype flag to True.
4689 (Constrain_Index): Mark the subtypes of an index that specifies
4690 a fixed lower bound as being a fixed-lower-bound index subtype,
4691 and set the High_bound of the range of such an index to the
4692 upper bound of the base type of the array type's corresponding
4694 * sem_res.adb (Resolve_Actuals): If a formal is of an
4695 unconstrained array subtype with fixed lower bound, then
4696 Expand_Sliding_Conversion is applied to the actual.
4697 * sem_util.adb (Build_Actual_Subtype): If the actual subtype
4698 corresponds to an unconstrained array subtype having any indexes
4699 with fixed lower bounds, then set the lower bounds of any such
4700 indexes of the actual subtype to the appropriate fixed lower
4701 bound of the formal subtype (rather than taking it from the
4703 * sprint.adb (Sprint_Node_Actual, case N_Range): If a range's
4704 Etype has a fixed lower bound, then print "<>" rather than the
4705 High_Bound of the range.
4707 2021-06-17 Bob Duff <duff@adacore.com>
4709 * sem_util.adb, sem_util.ads (Has_Access_Values): New formal
4710 Include_Internal to indicate whether internal types should be
4712 * sem_warn.adb (Check_References): Change E_Out_Parameter to
4713 Formal_Kind, to match the comment about Spec_Entity. Pass
4714 Include_Internal => False to Has_Access_Values, so that we warn
4715 on types with access values that happen to be in internal types,
4716 such as Unbounded_String.
4717 * sem_attr.adb (Attribute_Has_Access_Values): Pass
4718 Include_Internal => True to Has_Access_Values, to preserve
4720 * libgnat/g-rewdat.adb (Do_Output): Change B from 'in out' to
4721 'in', to avoid warning enabled by the change to sem_warn.adb.
4722 * libgnat/s-objrea.adb (Check_Read_Offset): Change S from 'in
4723 out' to 'in', to avoid warning enabled by the change to
4726 2021-06-17 Steve Baird <baird@adacore.com>
4729 (Expand_N_Case_Statement.Expand_General_Case_Statement): New
4731 (Expand_N_Case_Statement): If extensions are allowed and the
4732 case selector is not of a discrete type, then call
4733 Expand_General_Case_Statement to generate expansion instead of
4734 flagging the non-discrete selector as an error.
4735 * sem_case.ads (Is_Case_Choice_Pattern): New Boolean-valued
4736 function for testing whether a given expression occurs as part
4737 of a case choice pattern.
4738 * sem_case.adb (Composite_Case_Ops): New package providing
4739 support routines for the new form of case statements. This
4740 includes a nested package, Composite_Case_Ops.Value_Sets, which
4741 encapsulates the "representative values" implementation of
4742 composite value sets.
4743 (Check_Choices.Check_Case_Pattern_Choices): New procedure for
4744 semantic checking of non-discrete case choices. This includes
4745 the checks pertaining to coverage and overlapping.
4746 (Check_Choices.Check_Composite_Case_Selector): New procedure for
4747 semantic checking of non-discrete case selectors.
4748 (Check_Choices): If extensions are allowed then a non-discrete
4749 selector type no longer implies that an error must have been
4750 flagged earlier. Instead of simply returning, call
4751 Check_Composite_Case_Selector and Check_Case_Pattern_Choices.
4752 (Is_Case_Choice_Pattern): Body of new function declared in
4754 * sem_ch5.adb (Analyze_Case_Statement): If extensions are
4755 allowed, then we can't use RM 5.4's "The selecting_expression is
4756 expected to be of any discrete type" name resolution rule.
4757 Handle the case where the type of the selecting expression is
4758 not discrete, as well as the new ambiguous-name-resolution error
4759 cases made possible by this change.
4760 * sem_res.adb (Resolve_Entity_Name): It is ok to treat the name
4761 of a type or subtype as an expression if it is part of a case
4762 choice pattern, as in "(Field1 => Positive, Field2 => <>)".
4763 * exp_aggr.adb (Expand_Record_Aggregate): Do not expand case
4765 * gen_il-fields.ads: Define two new node attributes,
4766 Binding_Chars and Multidefined_Bindings.
4767 * gen_il-gen-gen_nodes.adb: The new Multidefined_Bindings
4768 attribute is Boolean-valued and may be set on
4769 N_Case_Statement_Alternative nodes. The new Binding_Chars
4770 attribute is Name_Id-valued and may be set on
4771 N_Component_Association nodes.
4772 * par-ch4.adb (P_Record_Or_Array_Component_Association): When
4773 parsing a component association, check for both new syntax forms
4774 used to specify a bound value in a case-choice aggregate. In
4775 the case of a box value, an identifier may occur within the box,
4776 as in "Foo => <Abc>" instead of "Foo => <>". In the more general
4777 case, an expression (or a box) may be followed by "is
4778 <identifier>", as in
4779 "Foo => Bar is Abc" instead of just "Foo => Bar".
4780 * sem_aggr.adb (Resolve_Record_Aggregate): Do not transform box
4781 component values in a case-choice aggregate.
4782 * sinfo.ads: Provide comments for the new attributes added in
4784 * doc/gnat_rm/implementation_defined_pragmas.rst: Describe this
4785 new feature in documentation for pragma Extensions_Allowed.
4786 * gnat_rm.texi: Regenerate.
4788 2021-06-17 Arnaud Charlet <charlet@adacore.com>
4790 * exp_ch4.adb (Expand_N_Expression_With_Actions.Process_Action):
4791 Do not abandon processing on a nested N_Expression_With_Actions
4792 or N_Loop_Statement, otherwise we may miss some transient
4795 2021-06-17 Arnaud Charlet <charlet@adacore.com>
4797 * exp_util.adb (Find_Hook_Context): Do not stop on an aggregate
4800 2021-06-17 Piotr Trojanek <trojanek@adacore.com>
4802 * sem_util.adb (Is_Valid_Renaming): Check not only indexed
4803 components, but slices too.
4805 2021-06-17 Piotr Trojanek <trojanek@adacore.com>
4807 * sem_ch3.adb (Analyze_Private_Extension_Declaration): Check
4808 No_Wide_Characters restriction after rejecting illegal parent
4810 (Derived_Type_Declaration): Likewise.
4811 (Find_Type_Of_Subtype_Indic): Remove check for
4812 No_Wide_Characters restriction, which was done too early.
4814 2021-06-17 Piotr Trojanek <trojanek@adacore.com>
4816 * sem_util.adb (Is_Valid_Renaming): Body moved from its nested
4819 2021-06-17 Gary Dismukes <dismukes@adacore.com>
4821 * sem_ch12.adb (Instantiate_Type): If the actual type for an
4822 incomplete formal type is also incomplete, but has a Full_View,
4823 use the Full_View of the actual type rather than the incomplete
4826 2021-06-17 Piotr Trojanek <trojanek@adacore.com>
4828 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
4829 (-gnatw.I): Remove double period at the end of sentence.
4830 * gnat_ugn.texi: Regenerate.
4832 2021-06-17 Piotr Trojanek <trojanek@adacore.com>
4834 * sem_util.adb (Denotes_Same_Object): Call Get_Index_Bounds with
4835 the range of a slice object, not its type.
4837 2021-06-17 Piotr Trojanek <trojanek@adacore.com>
4839 * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix style;
4840 refactor repeated calls to Nkind; remove early RETURN.
4842 2021-06-17 Piotr Trojanek <trojanek@adacore.com>
4844 * sem_warn.adb (Warn_On_Overlapping_Actuals): Ignore formal of
4845 generic types, but keep examining other parameters.
4847 2021-06-17 Piotr Trojanek <trojanek@adacore.com>
4849 * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove dead code.
4851 2021-06-17 Piotr Trojanek <trojanek@adacore.com>
4853 * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove repeated
4856 2021-06-17 Piotr Trojanek <trojanek@adacore.com>
4858 * checks.adb (Overlap_Check): Replace Set_Casing with
4859 Adjust_Name_Case and adapt surrounding code as needed.
4861 2021-06-17 Arnaud Charlet <charlet@adacore.com>
4863 * libgnat/s-putaim.ads, libgnat/s-putaim.adb: Move...
4864 * libgnarl/s-putaim.ads, libgnarl/s-putaim.adb: ... here.
4866 2021-06-17 Arnaud Charlet <charlet@adacore.com>
4868 * uintp.ads, uintp.adb (UI_To_Unsigned_64): New.
4870 2021-06-17 Piotr Trojanek <trojanek@adacore.com>
4872 * sem_prag.adb (Get_Overflow_Mode): Reword error message.
4873 * switch-c.adb (Get_Overflow_Mode): Likewise.
4875 2021-06-17 Richard Kenner <kenner@adacore.com>
4877 * exp_util.adb (Expand_Static_Predicates_In_Choices): Handle
4878 Others_Discrete_Choices in N_Others_Choice.
4880 2021-06-17 Arnaud Charlet <charlet@adacore.com>
4882 * atree.adb: Remove redundant comment with spec.
4883 * sem_warn.adb: Fix typo in comment.
4885 2021-06-17 Arnaud Charlet <charlet@adacore.com>
4887 * atree.adb: Do not suppress checks.
4889 2021-06-17 Justin Squirek <squirek@adacore.com>
4891 * exp_ch3.adb (Check_Missing_Others): Add comment.
4892 (Build_Initialization_Call): Remove inaccurate accessibility
4894 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Remove
4896 (Analyze_Package_Instantiation): Remove speculative comment.
4897 (Inline_Instance_Body): Add comments for loops.
4898 (Build_Subprogram_Renaming): Remove comment about fix being
4900 (Instantiate_Subprogram_Body): Remove comment referencing DEC
4901 related internal issue.
4902 (Subtypes_Match): Add comment and simplify anonymous access
4904 (Is_Global): Add test for when E is an expanded name, and
4905 calculate the scope accordingly.
4906 * sem_ch6.adb (Analyze_Function_Return): Update comment
4907 regarding accessibility, and add check for
4908 Warn_On_Ada_2012_Compatibility.
4909 (Mask_Type_Refs): Add comments.
4910 (Analyze_Subprogram_Declaration): Remove mysterious suppression
4911 of elaboration checks.
4912 * sem_ch7.adb (Preserve_Full_Attributes): Preserve Is_Atomic
4914 * sem_ch8.adb (Most_Descendant_Use_Clause): Remove comment.
4915 (Note_Redundant_Use): Fix calls to Find_First_Use to be
4917 (Get_Object_Name): Modify error message to be more descriptive.
4918 (Known_But_Visible): Remove mysterious special case for
4920 (Find_First_Use): Removed.
4921 (Find_Most_Prev): Renamed from Find_First_Use.
4922 * sem_prag.adb (Check_Static_Constraint): Add comments to
4925 2021-06-17 Bob Duff <duff@adacore.com>
4927 * treepr.adb (Print_Node): Display the Entity or Associated_Node
4928 fields if appropriate.
4929 * sinfo-utils.ads (F_Associated_Node, F_Entity): Remove. These
4930 are no longer needed.
4932 2021-06-17 Piotr Trojanek <trojanek@adacore.com>
4934 * checks.adb (Apply_Parameter_Aliasing_Checks): Replace calls to
4935 Is_Object_Reference with calls to Is_Name_Reference; remove
4936 asymmetric condition that only detected an aggregate as the
4937 first actual (aggregate objects were just a special case of an
4938 object reference that was not a name).
4940 2021-06-17 Bob Duff <duff@adacore.com>
4942 * gen_il-gen.adb, gen_il-internals.ads: Generate field
4943 enumeration literals with "F_" prefix. Update all generated
4944 references accordingly.
4945 * atree.adb, einfo-utils.adb, sem_ch3.adb, sem_ch5.adb,
4946 sem_ch6.adb, sem_ch8.adb, sinfo-cn.adb, sinfo-utils.adb,
4947 sinfo-utils.ads, treepr.adb: Add "F_" prefix to all uses of the
4948 field enumeration literals.
4950 2021-06-17 Arnaud Charlet <charlet@adacore.com>
4952 * libgnat/i-c.ads, libgnat/i-cexten.ads,
4953 libgnat/i-cexten__128.ads: bool renamed C_bool.
4955 2021-06-17 Piotr Trojanek <trojanek@adacore.com>
4957 * sem_ch4.adb (Analyze_Allocator): Reject allocators in
4958 restricted contexts.
4960 2021-06-17 Arnaud Charlet <charlet@adacore.com>
4962 * gcc-interface/Make-lang.in: Use libgnat.so if libgnat.a cannot
4965 2021-06-16 Piotr Trojanek <trojanek@adacore.com>
4967 * sem_util.adb (Is_Volatile_Function): Follow the exact wording
4968 of SPARK (regarding volatile functions) and Ada (regarding
4969 protected functions).
4971 2021-06-16 Piotr Trojanek <trojanek@adacore.com>
4973 * sem_util.adb (Is_OK_Volatile_Context): All references to
4974 volatile objects are legal in preanalysis.
4975 (Within_Volatile_Function): Previously it was wrongly called on
4976 Empty entities; now it is only called on E_Return_Statement,
4977 which allow the body to be greatly simplified.
4979 2021-06-16 Yannick Moy <moy@adacore.com>
4981 * sem_res.adb (Set_Slice_Subtype): Revert special-case
4982 introduced previously, which is not needed as Itypes created for
4983 slices are precisely always used.
4985 2021-06-16 Eric Botcazou <ebotcazou@adacore.com>
4987 * urealp.adb (Scale): Change first paramter to Uint and adjust.
4988 (Equivalent_Decimal_Exponent): Pass U.Den directly to Scale.
4989 * libgnat/s-exponr.adb (Negative): Rename to...
4990 (Safe_Negative): ...this and change its lower bound.
4991 (Exponr): Adjust to above renaming and deal with Integer'First.
4993 2021-06-16 Piotr Trojanek <trojanek@adacore.com>
4995 * sem_res.adb (Flag_Effectively_Volatile_Objects): Detect also
4996 allocators within restricted contexts and not just entity names.
4997 (Resolve_Actuals): Remove duplicated code for detecting
4998 restricted contexts; it is now exclusively done in
4999 Is_OK_Volatile_Context.
5000 (Resolve_Entity_Name): Adapt to new parameter of
5001 Is_OK_Volatile_Context.
5002 * sem_util.ads, sem_util.adb (Is_OK_Volatile_Context): Adapt to
5003 handle contexts both inside and outside of subprogram call
5005 (Within_Subprogram_Call): Remove; now handled by
5006 Is_OK_Volatile_Context itself and its parameter.
5008 2021-06-16 Piotr Trojanek <trojanek@adacore.com>
5010 * sinput.adb (Sloc_Range): Refactor several repeated calls to
5011 Sloc and two comparisons with No_Location.
5013 2021-06-16 Piotr Trojanek <trojanek@adacore.com>
5015 * checks.adb (Apply_Scalar_Range_Check): Fix handling of check depending
5016 on the parameter passing mechanism. Grammar adjustment ("has"
5018 (Parameter_Passing_Mechanism_Specified): Add a hyphen in a comment.
5020 2021-06-16 Piotr Trojanek <trojanek@adacore.com>
5022 * exp_ch3.adb (Build_Slice_Assignment): Remove unused
5025 2021-06-16 Piotr Trojanek <trojanek@adacore.com>
5027 * restrict.adb, sem_attr.adb, types.ads: Fix typos in
5028 "occuring"; refill comment as necessary.
5030 2021-06-16 Piotr Trojanek <trojanek@adacore.com>
5032 * sem_util.ads (Is_Actual_Parameter): Update comment.
5033 * sem_util.adb (Is_Actual_Parameter): Also detect entry parameters.
5035 2021-06-16 Arnaud Charlet <charlet@adacore.com>
5037 * rtsfind.ads, libgnarl/s-taskin.ads, exp_ch3.adb, exp_ch4.adb,
5038 exp_ch6.adb, exp_ch9.adb, sem_ch6.adb: Move master related
5039 entities to the expander directly.
5041 2021-06-16 Piotr Trojanek <trojanek@adacore.com>
5043 * sem_res.adb (Is_Assignment_Or_Object_Expression): Whitespace
5045 (Is_Attribute_Expression): Prevent AST climbing from going to
5046 the root of the compilation unit.
5048 2021-06-16 Steve Baird <baird@adacore.com>
5050 * doc/gnat_rm/implementation_advice.rst: Add a section for RM
5052 * gnat_rm.texi: Regenerate.
5054 2021-06-16 Justin Squirek <squirek@adacore.com>
5056 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Add
5057 check for the mixing of entries.
5059 2021-06-16 Justin Squirek <squirek@adacore.com>
5061 * sem_ch13.adb (Make_Aitem_Pragma): Check for static expressions
5062 in Priority aspect arguments for restriction Static_Priorities.
5064 2021-06-16 Justin Squirek <squirek@adacore.com>
5066 * sem_util.adb (Accessibility_Level): Take into account
5067 renamings of loop parameters.
5069 2021-06-16 Matthieu Eyraud <eyraud@adacore.com>
5071 * par_sco.adb (Set_Statement_Entry): Change sloc for dominance
5073 (Traverse_One): Fix typo.
5074 (Output_Header): Fix comment.
5076 2021-06-16 Richard Kenner <kenner@adacore.com>
5078 * exp_unst.adb (Register_Subprogram): Don't look for aliases for
5079 subprograms that are generic. Reorder tests for efficiency.
5081 2021-06-16 Eric Botcazou <ebotcazou@adacore.com>
5083 * sem_util.adb (Incomplete_Or_Partial_View): Retrieve the scope of
5084 the parameter and use it to find its incomplete view, if any.
5086 2021-06-16 Eric Botcazou <ebotcazou@adacore.com>
5088 * freeze.adb (Check_No_Parts_Violations): Return earlier if the
5089 type is elementary or does not come from source.
5091 2021-06-16 Bob Duff <duff@adacore.com>
5093 * ghost.adb: Add another special case where full analysis is
5094 needed. This bug is due to quirks in the way
5095 Mark_And_Set_Ghost_Assignment works (it happens very early,
5096 before name resolution is done).
5098 2021-06-16 Eric Botcazou <ebotcazou@adacore.com>
5100 * sem_util.adb (Current_Entity_In_Scope): Reimplement.
5102 2021-06-16 Piotr Trojanek <trojanek@adacore.com>
5104 * sem_ch8.adb (End_Scope): Remove extra parens.
5106 2021-06-16 Javier Miranda <miranda@adacore.com>
5108 * exp_disp.adb (Build_Class_Wide_Check): Ensure that evaluation
5109 of actuals is side effects free (since the check duplicates
5112 2021-06-16 Ed Schonberg <schonberg@adacore.com>
5114 * sem_res.adb (Resolve_Raise_Expression): Apply Ada_2020 rules
5115 concerning the need for parentheses around Raise_Expressions in
5118 2021-06-16 Piotr Trojanek <trojanek@adacore.com>
5120 * sem_ch13.adb (Validate_Unchecked_Conversion): Move detection
5121 of generic types before switching to their private views; fix
5122 style in using AND THEN.
5124 2021-06-16 Arnaud Charlet <charlet@adacore.com>
5126 * sem_ch3.adb (Analyze_Component_Declaration): Do not special
5127 case raise expressions.
5129 2021-06-16 Sergey Rybin <rybin@adacore.com>
5131 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
5132 Instead of referring to the formatting of the Ada examples in
5133 Ada RM add use the list of checks that are actually performed.
5134 * gnat_ugn.texi: Regenerate.
5136 2021-06-16 Eric Botcazou <ebotcazou@adacore.com>
5138 * initialize.c: Do not include vxWorks.h and fcntl.h from here.
5139 (__gnat_initialize) [__MINGW32__]: Remove #ifdef and attribute
5140 (__gnat_initialize) [init_float]: Delete.
5141 (__gnat_initialize) [VxWorks]: Likewise.
5142 (__gnat_initialize) [PA-RISC HP-UX 10]: Likewise.
5143 * runtime.h: Add comment about vxWorks.h include.
5145 2021-06-16 Eric Botcazou <ebotcazou@adacore.com>
5147 * libgnat/s-except.ads (ZCX_By_Default): Delete.
5148 (Require_Body): Likewise.
5149 * libgnat/s-except.adb: Replace body with pragma No_Body.
5151 2021-06-15 Steve Baird <baird@adacore.com>
5153 * exp_util.adb (Kill_Dead_Code): Generalize the existing
5154 handling of if statements to handle case statements similarly.
5156 2021-06-15 Eric Botcazou <ebotcazou@adacore.com>
5158 * raise.h (_gnat_builtin_longjmp): Delete.
5159 (set_gnat_exit_status): Likewise.
5161 2021-06-15 Piotr Trojanek <trojanek@adacore.com>
5163 * exp_util.adb (Possible_Side_Effect_In_SPARK): Handle component
5164 declaration just like full type and subtype declarations.
5166 2021-06-15 Yannick Moy <moy@adacore.com>
5168 * errout.adb (First_And_Last_Node): Also apply to arbitrary late
5169 declarations, not only subprogram specs.
5171 2021-06-15 Bob Duff <duff@adacore.com>
5173 * sem_ch3.adb (Make_Class_Wide_Type): Make sure all the calls to
5174 Reinit_Field_To_Zero are for the correct Ekinds.
5176 2021-06-15 Bob Duff <duff@adacore.com>
5178 * aspects.ads (No_Task_Parts): New aspect.
5179 * snames.ads-tmpl: Add the aspect name.
5180 * exp_ch6.adb (Might_Have_Tasks): Return False if this is a
5181 class-wide type whose specific type has No_Task_Parts.
5182 * freeze.adb (Check_No_Parts_Violations): This is an adaptation
5183 of the procedure formerly known as
5184 Check_No_Controlled_Parts_Violations, which now supports both
5185 No_Controlled_Parts and No_Task_Parts. It takes a parameter
5186 indicating which aspect is being checked.
5187 (Freeze_Entity): Call Check_No_Parts_Violations for both
5189 * sem_ch13.adb (Analyze_Aspect_Specifications): The code for
5190 Aspect_No_Controlled_Parts already works as is with
5191 Aspect_No_Task_Parts.
5192 * libgnat/a-iteint.ads: Add No_Task_Parts aspect to the two
5194 * doc/gnat_rm/implementation_defined_aspects.rst: Add
5195 documentation for the No_Task_Parts aspect.
5196 * gnat_rm.texi: Regenerate.
5198 2021-06-15 Arnaud Charlet <charlet@adacore.com>
5200 * exp_unst.adb (Unnest_Subprogram.Build_Table.Visit_Node): Fix
5201 handling of scopes for subprogram calls.
5203 2021-06-15 Piotr Trojanek <trojanek@adacore.com>
5205 * sem_prag.adb: Fix typos in comments related to access types.
5206 * sem_util.adb (Is_Access_Variable): Stronger condition.
5208 2021-06-15 Arnaud Charlet <charlet@adacore.com>
5210 * Make-generated.in: Add rule to copy runtime files needed
5212 * raise.c: Remove obsolete symbols used during bootstrap.
5213 * gcc-interface/Make-lang.in: Do not use libgnat sources during
5215 (GNAT_ADA_OBJS, GNATBIND_OBJS): Split in two parts, the common
5216 part and the part only used outside of stage1.
5217 (ADA_GENERATED_FILES): Add runtime files needed during bootstrap
5218 when recent APIs are needed.
5219 (ada/b_gnatb.adb): Remove prerequisite.
5220 * gcc-interface/system.ads: Remove obsolete entries.
5222 2021-06-15 Eric Botcazou <ebotcazou@adacore.com>
5224 * raise-gcc.c (__gnat_personality_seh0): Use PERSONALITY_FUNCTION.
5226 2021-06-15 Ed Schonberg <schonberg@adacore.com>
5228 * sem_util.adb (Is_Confirming): Separate the handling of
5229 Implicit_Dereference, for which no pragma is generated but which
5230 is already checked for legality in Sem_Ch13, including renamed
5231 discriminants in a derived type.
5232 (Is_Confirming, Same_Name): For expanded names, only check
5233 matching of selector, because prefix may correspond to original
5234 and derived types with different names and/or scopes. Semantic
5235 checks on aspect expression have already verified its legality.
5236 Add comments regarding possible gaps in RM description of the
5239 2021-06-15 Gary Dismukes <dismukes@adacore.com>
5241 * freeze.adb (Freeze_Subprogram): Don't propagate conventions
5242 Intrinsic or Entry to anonymous access-to-subprogram types
5243 associated with subprograms having those conventions. Update
5245 * sem_attr.adb (Resolve_Attribute, Attribute_*Access): Remove
5246 special-case warning code for cases where a called subprogram
5247 has convention Intrinsic as well as its formal's type (the
5248 expected type for the Access attribute), since this case can no
5251 2021-06-15 Piotr Trojanek <trojanek@adacore.com>
5253 * exp_imgv.adb (Expand_User_Defined_Enumeration_Image): Fix
5256 2021-06-15 Bob Duff <duff@adacore.com>
5258 * einfo-utils.adb (Known_Component_Size,
5259 Known_Static_Component_Size, Unknown_Component_Size): Use
5260 Implementation_Base_Type instead of Base_Type.
5262 2021-06-15 Bob Duff <duff@adacore.com>
5264 * gen_il-gen-gen_entities.adb (E_Loop_Parameter): Add
5265 Interface_Name field.
5267 2021-06-15 Bob Duff <duff@adacore.com>
5269 * sem_cat.adb (Check_Non_Static_Default_Expr): Allow nonstatic
5270 expression in predefined unit with pragma Preelaborate.
5272 2021-06-15 Yannick Moy <moy@adacore.com>
5274 * doc/gnat_rm/intrinsic_subprograms.rst: More details on shift
5275 operations for signed types. Also add the missing Import and
5276 Convention on the example.
5277 * gnat_rm.texi: Regenerate.
5279 2021-06-15 Eric Botcazou <ebotcazou@adacore.com>
5281 * raise-gcc.c: Include <cstdarg> instead of <stdarg.h> in C++.
5282 Include <stdbool.h> and unconditionally <stdlib.h> in C.
5284 2021-06-15 Piotr Trojanek <trojanek@adacore.com>
5286 * sem_util.ads (Find_Overlaid_Entity): Simplify comment for
5288 * sem_util.adb (Find_Overlaid_Entity): Remove defensive code
5291 2021-06-15 Eric Botcazou <ebotcazou@adacore.com>
5293 * argv.c: Add include of <stdlib.h> for the runtime.
5294 (gnat_argv): Change type to char ** and initialize to NULL.
5295 (gnat_envp): Likewise.
5296 * argv-lynxos178-raven-cert.c: Add include of <stdlib.h>.
5297 (gnat_argv): Change type to char ** and initialize to NULL.
5298 (gnat_envp): Likewise.
5300 2021-06-15 Bob Duff <duff@adacore.com>
5302 * gen_il-gen.adb (Setter_Needs_Parent): Add missing
5303 Then_Actions. Fix self-contradictory comment.
5304 * exp_util.adb (Insert_Actions): Minor comment improvments.
5306 2021-06-15 Arnaud Charlet <charlet@adacore.com>
5308 * sem_eval.adb (Eval_Logical_Op, Test_Expression_Is_Foldable):
5309 Add support for folding more "and"/"or" expressions.
5310 * exp_util.adb (Side_Effect_Free): Fix handling of membership
5313 2021-06-15 Piotr Trojanek <trojanek@adacore.com>
5315 * sem_res.adb (Resolve_Actual): Replace repeated calls to
5316 "Etype (F)" with references to "F_Typ", which keeps the results
5317 of exactly that call.
5319 2021-06-15 Bob Duff <duff@adacore.com>
5321 * gen_il-gen.adb (To_Bit_Offset): Use 'Base to avoid overflow in
5322 computations in Last_Bit when Offset = 'Last.
5323 (Choose_Offset): Give a better error message when we run out of
5324 fields. In particular, point out that
5325 Gen_IL.Internals.Bit_Offset'Last needs to be increased.
5327 2021-06-15 Bob Duff <duff@adacore.com>
5329 * atree.ads, einfo-utils.ads, einfo-utils.adb, fe.h, gen_il.adb,
5330 gen_il.ads, gen_il-gen-gen_entities.adb,
5331 gen_il-gen-gen_nodes.adb, sem_ch12.adb, sem_ch3.adb,
5332 sem_util.adb, sinfo-utils.ads, treepr.adb, types.ads: Clean up
5333 ??? comments and other comments.
5334 * atree.adb: Clean up ??? comments and other comments.
5335 (Validate_Node): Fix bug: "Off_0 (N) < Off_L (N)"
5336 should be "Off_0 (N) <= Off_L (N)".
5337 * gen_il-gen.adb, gen_il-gen.ads: Clean up ???
5338 comments and other comments. Add support for getter-specific
5339 and setter-specific preconditions. Detect the error of putting
5340 a field in the wrong subrange. Misc cleanup.
5341 (Node_Field vs. Entity_Field): Clean up Nmake. Improve
5343 * gen_il-utils.ads: Misc cleanup. Move...
5344 * gen_il-internals.ads: ... here.
5345 * gen_il-utils.adb: Misc cleanup. Move...
5346 * gen_il-internals.adb: ... here.
5347 * gen_il-fields.ads: Move Was_Default_Init_Box_Association,
5348 which was in the wrong subrange. Add comments. Misc cleanup.
5349 * gen_il-types.ads: Add Named_Access_Kind.
5350 * sinfo-cn.adb: Clean up ??? comments and other comments.
5351 Remove redundant assertions.
5352 * einfo.ads, sinfo.ads: Clean up ??? comments and other
5353 comments. Remove all the comments indicating field offsets.
5354 These are obsolete now that Gen_IL computes the offsets
5357 2021-06-15 Arnaud Charlet <charlet@adacore.com>
5359 * einfo.ads, errout.adb, errout.ads, exp_aggr.adb, exp_ch5.adb,
5360 exp_ch6.adb, exp_ch8.adb, exp_ch9.adb, exp_imgv.adb,
5361 exp_put_image.adb, fe.h, impunit.adb, impunit.ads,
5362 libgnat/a-cobove.ads, libgnat/a-convec.ads, opt.ads,
5363 par-ch12.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
5364 par-ch6.adb, par-prag.adb, par-util.adb, scans.ads, scng.adb,
5365 sem_aggr.adb, sem_attr.adb, sem_ch10.adb, sem_ch12.adb,
5366 sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb,
5367 sem_ch8.adb, sem_elab.adb, sem_eval.adb, sem_prag.adb,
5368 sem_res.adb, sem_type.adb, sem_util.adb, sem_util.ads,
5369 sinfo.ads, snames.ads-tmpl, sprint.adb, switch-c.adb, usage.adb,
5370 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
5371 doc/gnat_rm/implementation_defined_aspects.rst,
5372 gcc-interface/trans.c: Update all references to Ada 2020 to Ada
5373 2022. Rename pragma Ada_2020 to Ada_2022. Update documentation
5375 * gnat_ugn.texi, gnat_rm.texi: Regenerate.
5377 2021-06-15 Steve Baird <baird@adacore.com>
5379 * sem_util.adb (Gather_Components): Factor the test that was
5380 already being used to govern emitting a pre-Ada_2020 error
5381 message into an expression function,
5382 OK_Scope_For_Discrim_Value_Error_Messages. Call that new
5383 function in two places: the point where the same test was being
5384 performed previously, and in governing emission of a newer
5385 Ada_2020 error message. In both cases, the out-mode parameter
5386 Gather_Components.Report_Errors is set to True even if no error
5387 messages are generated within Gather_Components.
5388 * sem_util.ads: Correct a comment.
5390 2021-06-15 Richard Kenner <kenner@adacore.com>
5392 * sem_ch3.adb (Array_Type_Declaration, Build_Derived_Type):
5393 Reinitialize Stored_Constraint when needed.
5394 (Set_Modular_Size): Likewise.
5395 * atree.adb: (Check_Vanishing_Fields): Add node id to debugging
5398 2021-06-15 Bob Duff <duff@adacore.com>
5400 * sem_util.adb (Propagate_Invariant_Attributes): Call
5401 Set_Has_Own_Invariants on the base type, because these are
5402 Base_Type_Only. The problem is that the base type of a type is
5403 indeed a base type when Set_Base_Type is called, but then the
5404 type is mutated into a subtype in rare cases.
5405 * atree.ads, atree.adb (Is_Entity): Export. Correct subtype of
5407 * gen_il-gen.adb: Improve getters so that "Pre => ..." can refer
5408 to the value of the field. Put Warnings (Off) on some with
5409 clauses that are not currently used, but might be used by such
5412 2021-06-15 Piotr Trojanek <trojanek@adacore.com>
5414 * sem_ch3.adb (Access_Type_Declaration): Add comments to explain
5415 the ordering of Mutate_Kind and Set_Directly_Designated_Type;
5416 remove temporary setting of Ekind to E_Access_Type for building
5417 _master objects, since now the Ekind is already set to its final
5418 value. Move repeated code into Setup_Access_Type routine and use
5419 it so that Process_Subtype is executed before mutating the kind
5421 * gen_il-gen-gen_entities.adb (Gen_Entities): Remove
5422 Directly_Designated_Type from E_Void, E_Private_Record,
5423 E_Limited_Private_Type and Incomplete_Kind; now it only belongs
5424 to Access_Kind entities.
5425 * sem_util.adb: Minor reformatting.
5427 2021-06-03 Eric Botcazou <ebotcazou@adacore.com>
5429 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Add PAT
5430 local constant and use it throughout. If it is set, use a ref-all
5431 pointer type for the pointer-to-array field of the fat pointer type.
5432 <E_Array_Subtype>: Add PAT local constant and use it throughout.
5434 2021-05-26 Jakub Jelinek <jakub@redhat.com>
5436 * init.c (__gnat_error_handler): Remove register keyword.
5438 2021-05-25 Martin Liska <mliska@suse.cz>
5440 * doc/share/conf.py: Fix Sphinx 4.0.x error.
5442 2021-05-21 Piotr Trojanek <trojanek@adacore.com>
5444 * gcc-interface/trans.c (Raise_Error_to_gnu): Add an assertion.
5446 2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
5448 * gcc-interface/utils.c (gnat_pushdecl): Fix typo in comment.
5449 * gcc-interface/utils2.c (build_simple_component_ref): Build NULL_EXPR
5450 if the offset of the field has overflowed.
5451 (build_component_ref): Add gigi checking assertion that the reference
5452 has been built and replace the discriminant check by a Program_Error.
5454 2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
5456 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Named_Integer>: Do
5457 not pass default value in call to create_var_decl.
5458 <E_Variable>: Likewise.
5459 <E_Record_Subtype>: Both pass true for const_flag and false for
5460 const_decl_allowed_p in call to create_var_decl.
5461 Small tweaks in the generic record type case.
5462 (elaborate_expression): Rename need_debug into need_for_debug and
5464 (elaborate_expression_1): Likewise. Pass Needs_Debug_Info instead
5465 of need_for_debug in call to create_var_decl.
5466 (elaborate_expression_2): Likewise.
5467 * gcc-interface/utils.c (maybe_pad_type): Pass false for
5468 const_decl_allowed_p in call to create_var_decl.
5470 2021-05-21 Ghjuvan Lacambre <lacambre@adacore.com>
5472 * gcc-interface/decl.c (gnat_to_gnu_entity): Replace ? with ??.
5473 (gnat_to_gnu_param): Likewise.
5474 (gnat_to_gnu_subprog_type): Likewise.
5475 (warn_on_field_placement): Likewise.
5476 (intrin_arglists_compatible_p): Likewise.
5477 * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
5478 (gnat_to_gnu): Likewise.
5479 (validate_unchecked_conversion): Likewise.
5480 * gcc-interface/utils.c (maybe_pad_type): Likewise.
5482 2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
5484 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Process
5485 the implementation type of a packed type implemented specially.
5487 2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
5489 * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Always translate
5490 the Is_Pure flag into the "pure" attribute of GNU C.
5492 2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
5494 * gcc-interface/trans.c (Call_to_gnu): Restrict previous change
5495 to bitfields whose size is not equal to the type size.
5496 (gnat_to_gnu): Likewise.
5498 2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
5500 * gcc-interface/trans.c (Call_to_gnu): Minor tweaks.
5501 (gnat_to_gnu_external): Likewise.
5502 (Raise_Error_to_gnu): Return an empty statement list if there is a
5503 condition and it is always false.
5504 (gnat_to_gnu): Do not check for elaboration code a priori during the
5505 translation but a posteriori instead.
5507 2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
5509 * gcc-interface/trans.c (gnat_to_gnu) <N_Simple_Return_Statement>:
5510 Put a SLOC on the assignment from the return value to the return
5511 object in the copy-in/copy-out case.
5513 2021-05-21 Eric Botcazou <ebotcazou@adacore.com>
5515 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Replace
5516 CEIL_DIV_EXPR with EXACT_DIV_EXPR.
5517 * gcc-interface/misc.c (gnat_type_max_size): Likewise.
5518 * gcc-interface/utils.c (maybe_pad_type): Likewise.
5519 (finish_record_type): Likewise. And always compute the unit size.
5521 2021-05-14 Martin Liska <mliska@suse.cz>
5523 * doc/Makefile: Add gnat-style target.
5524 * doc/share/conf.py: Likewise.
5525 * doc/gnat-style.rst: New file.
5527 2021-05-12 Bob Duff <duff@adacore.com>
5530 * atree.adb (Change_Node): Do not call Zero_Slots on a Node_Id
5531 when the Nkind has not yet been set; call the other Zero_Slots
5532 that takes a range of slot offsets. Call the new Mutate_Kind
5533 that takes an Old_Size, for the same reason -- the size cannot
5534 be computed without the Nkind.
5535 (Mutate_Nkind): New function that allows specifying the Old_Size.
5536 (Size_In_Slots): Assert that the Nkind has proper (nonzero) value.
5537 * atree.ads: Minor reformatting.
5539 2021-05-12 Martin Liska <mliska@suse.cz>
5541 * doc/share/conf.py: Do not use binary mode.
5542 Do not use u' literals as Python3 uses unicode by default.
5544 2021-05-11 Martin Liska <mliska@suse.cz>
5546 * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): Use builtins
5548 (BUILT_IN_UNLIKELY): Likewise.
5550 2021-05-11 Eric Botcazou <ebotcazou@adacore.com>
5552 * gnatvsn.adb (Version_String): Rename to...
5553 (C_Version_String): ...this.
5554 (Gnat_Version_String): Adjust to above renaming.
5555 * version.c : Fix formatting glitches.
5557 2021-05-10 Martin Liska <mliska@suse.cz>
5560 * Make-generated.in: Replace version.c with ada/version.c.
5561 * gcc-interface/Make-lang.in: Add version.o to GNAT1_C_OBJS and
5563 * gcc-interface/Makefile.in: Replace version.c with ada/version.c.
5564 Add version.o to TOOLS_LIBS.
5565 * gnatvsn.adb: Replace version_string with gnat_version_string.
5566 * version.c: New file.
5568 2021-05-10 Eric Botcazou <ebotcazou@adacore.com>
5570 * einfo-utils.ads (Classification Attributes): Add pragma Inline.
5571 (Synthesized Attribute Functions): Move pragma Inline around.
5572 (Type Representation Attribute Predicates): Likewise.
5573 (Field Initialization Routines): Likewise.
5574 (Miscellaneous Subprogram): Likewise.
5576 2021-05-10 Eric Botcazou <ebotcazou@adacore.com>
5578 * atree.ads (Slot): Remove pragma Provide_Shift_Operators.
5579 (Shift_Left): New intrinsic function.
5580 (Shift_Right): Likewise.
5581 * atree.adb (Get_1_Bit_Val): Use Natural instead of Integer.
5582 (Get_2_Bit_Val): Likewise.
5583 (Get_4_Bit_Val): Likewise.
5584 (Get_8_Bit_Val): Likewise.
5585 (Set_1_Bit_Val): Likewise.
5586 (Set_2_Bit_Val): Likewise.
5587 (Set_4_Bit_Val): Likewise.
5588 (Set_8_Bit_Val): Likewise.
5590 2021-05-10 Eric Botcazou <ebotcazou@adacore.com>
5592 * atree.adb (Zero_Slots): Remove obsolete comment and add header.
5594 2021-05-10 Eric Botcazou <ebotcazou@adacore.com>
5596 * atree.h (Get_32_Bit_Field): Tidy up.
5597 (Get_32_Bit_Field_With_Default): Likewise.
5599 2021-05-10 Eric Botcazou <ebotcazou@adacore.com>
5601 * Make-generated.in (do_gen_il): Replace with...
5602 (ada/stamp-gen_il): ...this. Do not copy files into generated/.
5604 2021-05-10 Martin Liska <mliska@suse.cz>
5606 * gcc-interface/utils.c (def_builtin_1): Use startswith
5607 function instead of strncmp.
5609 2021-05-07 Piotr Trojanek <trojanek@adacore.com>
5611 * einfo-utils.adb (Is_Access_Object_Type): Use
5612 Directly_Designated_Type.
5613 (Is_Access_Subprogram_Type): Use Directly_Designated_Type.
5614 (Set_Convention): Use plain Ekind.
5615 * gen_il-gen-gen_entities.adb (Type_Kind): Use plain Ekind.
5616 * sem_ch3.adb (Access_Type_Declaration): When seeing an illegal
5617 completion with an access type don't attempt to decorate the
5618 completion entity; previously the entity had its Ekind set to
5619 E_General_Access_Type or E_Access_Type, but its Designated_Type
5620 was empty, which caused a crash in freezing. (Actually, the
5621 error recovery in the surrounding context is still incomplete,
5622 e.g. we will crash when the illegal completion is an access to
5623 an unknown identifier).
5625 2021-05-07 Bob Duff <duff@adacore.com>
5627 * par_sco.adb: Align with/use clauses.
5628 (Traverse_Declarations_Or_Statements): Minor comment fix.
5629 * aspects.adb, atree.adb, atree.ads, checks.adb, comperr.adb,
5630 contracts.adb, cstand.adb, debug_a.adb, einfo-utils.adb,
5631 errout.adb, eval_fat.adb, exp_aggr.adb, expander.adb,
5632 exp_atag.adb, exp_attr.adb, exp_cg.adb, exp_ch11.adb,
5633 exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb,
5634 exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb,
5635 exp_ch9.adb, exp_code.adb, exp_dbug.adb, exp_disp.adb,
5636 exp_dist.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb,
5637 exp_pakd.adb, exp_prag.adb, exp_put_image.adb, exp_sel.adb,
5638 exp_smem.adb, exp_spark.adb, exp_strm.adb, exp_tss.adb,
5639 exp_unst.adb, exp_util.adb, exp_util.ads, freeze.adb,
5640 frontend.adb, ghost.adb, gnat1drv.adb, gnat_cuda.adb,
5641 impunit.adb, inline.adb, itypes.adb, itypes.ads, layout.adb,
5642 lib.adb, lib-load.adb, lib-writ.adb, lib-xref.adb,
5643 lib-xref-spark_specific.adb, live.adb, nlists.adb, par.adb,
5644 par-ch11.adb, par-ch3.adb, par-ch5.adb, par-ch6.adb, pprint.adb,
5645 repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, scn.adb,
5646 sem.adb, sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_case.adb,
5647 sem_cat.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb,
5648 sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
5649 sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
5650 sem_dim.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb,
5651 sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_mech.adb,
5652 sem_prag.adb, sem_res.adb, sem_scil.adb, sem_smem.adb,
5653 sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
5654 sinfo-cn.adb, sinfo-utils.ads, sinput.adb, sinput-l.adb,
5655 sprint.adb, style.adb, styleg.adb, tbuild.adb, tbuild.ads,
5656 treepr.adb, uname.adb: Align with/use clauses.
5658 2021-05-07 Bob Duff <duff@adacore.com>
5660 * atree.ads, atree.adb, gen_il-gen.ads: Fix comments and clean
5661 up ??? marks. Rename Set_Ekind to be Mutate_Ekind.
5662 * einfo.ads, sinfo.ads: Likewise. Change "definitive
5663 definition" to "official definition", because the former sounds
5664 redundant. Rename Set_Ekind to be Mutate_Ekind.
5665 * checks.adb, contracts.adb, cstand.adb, exp_aggr.adb,
5666 exp_attr.adb, exp_ch11.adb, exp_ch3.adb, exp_ch5.adb,
5667 exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_disp.adb,
5668 exp_dist.adb, exp_imgv.adb, exp_intr.adb, exp_prag.adb,
5669 exp_unst.adb, exp_util.adb, gen_il-gen.adb, inline.adb,
5670 lib-writ.adb, lib-xref-spark_specific.adb, sem_aggr.adb,
5671 sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb,
5672 sem_ch3.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
5673 sem_ch9.adb, sem_dist.adb, sem_elab.adb, sem_prag.adb,
5674 sem_util.adb: Rename Set_Ekind to be Mutate_Ekind.
5676 2021-05-07 Bob Duff <duff@adacore.com>
5678 * atree.adb: Move nnd-related code from here, and leave a
5679 comment pointing to sinfo-utils.adb.
5680 * sinfo-utils.ads, sinfo-utils.adb: Move nnd-related code to
5683 2021-05-07 Piotr Trojanek <trojanek@adacore.com>
5685 * einfo.ads: Move Corresponding_Protected_Entry...
5686 * sinfo.ads: ... here.
5687 * exp_ch9.adb (Build_Entry_Body): Link procedure and entry
5689 * gen_il-fields.ads (Opt_Field_Enum): Add
5690 Corresponding_Entry_Body field to nodes; remove
5691 Corresponding_Protected_Entry field from entities.
5692 * gen_il-gen-gen_entities.adb (Gen_Entities): Remove
5693 Corresponding_Protected_Entry field from E_Void and
5695 * gen_il-gen-gen_nodes.adb (Gen_Nodes): Add
5696 Corresponding_Entry_Body field to N_Subprogram_Body.
5697 * sem_ch6.adb (Analyze_Subprogram_Specification): Remove
5698 manipulation of Ekind and Corresponding_Protected_Entry added as
5699 part of the support for varsize-nodes.
5701 2021-05-07 Bob Duff <duff@adacore.com>
5703 * sem_ch3.adb (Process_Incomplete_Dependents): Reset
5704 Private_Dependents field to zero before calling Set_Ekind. Also
5705 move Set_Etype to after Set_Ekind, because it's always best to
5706 set the Ekind as early as possible.
5707 * atree.adb: Improve debugging facilities for vanishing fields.
5709 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
5711 * atree.ads (Slot): Change to modular type.
5712 (Slot_1_Bit): Delete.
5713 (Slot_2_Bit): Likewise.
5714 (Slot_4_Bit): Likewise.
5715 (Slot_8_Bit): Likewise.
5716 (Slot_32_Bit): Likewise.
5717 * atree.adb (Get_1_Bit_Val): Adjust to above change.
5718 (Get_2_Bit_Val): Likewise.
5719 (Get_4_Bit_Val): Likewise.
5720 (Get_8_Bit_Val): Likewise.
5721 (Get_32_Bit_Val): Likewise.
5722 (Set_1_Bit_Val): Likewise.
5723 (Set_2_Bit_Val): Likewise.
5724 (Set_4_Bit_Val): Likewise.
5725 (Set_8_Bit_Val): Likewise.
5726 (Set_32_Bit_Val): Likewise.
5727 (Print_Atree_Info): Likewise.
5729 * atree.h (Get_1_Bit_Field): Likewise.
5730 (Get_2_Bit_Field): Likewise.
5731 (Get_4_Bit_Field): Likewise.
5732 (Get_8_Bit_Field): Likewise.
5733 (Get_32_Bit_Field): Likewise.
5734 (Get_32_Bit_Field_With_Default): Likewise.
5735 * types.h (slot_1_bit): Delete.
5736 (slot_2_bit): Likewise.
5737 (slot_4_bit): Likewise.
5738 (slot_8_bit): Likewise.
5739 (slot_32_bit): Likewise.
5740 (any_slot): Change to unsigned int.
5741 (Slot_Size): New macro.
5743 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
5745 * gcc-interface/gigi.h (enum standard_datatype): Remove
5746 ADT_exception_data_name_id and add ADT_not_handled_by_others_name_id.
5747 (exception_data_name_id): Delete.
5748 (not_handled_by_others_name_id): New macro.
5749 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Exception>: Remove old
5750 kludge for exceptions.
5751 <E_Record_Type>: Likewise.
5752 (gnat_to_gnu_field): Force character type on Not_Handled_By_Others.
5753 * gcc-interface/misc.c (gnat_argv): Change type to char **.
5754 (gnat_init_options): Adjust accordingly.
5755 * gcc-interface/trans.c (gigi): Set not_handled_by_others_name_id
5756 and use it to set not_handled_by_others_decl.
5757 (Exception_Handler_to_gnu_fe_sjlj): Fix indentation.
5759 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
5761 * raise-gcc.c (__gnat_others_value): Remove const qualifier.
5762 (__gnat_all_others_value): Likewise.
5763 (__gnat_unhandled_others_value): Likewise.
5764 (GNAT_OTHERS): Cast to Exception_Id instead of _Unwind_Ptr.
5765 (GNAT_ALL_OTHERS): Likewise.
5766 (GNAT_UNHANDLED_OTHERS): Likewise.
5767 (Is_Handled_By_Others): Change parameter type to Exception_Id.
5768 (Language_For): Likewise.
5769 (Foreign_Data_For): Likewise.
5770 (is_handled_by): Likewise. Adjust throughout, remove redundant
5771 line and fix indentation.
5772 * libgnat/a-exexpr.adb (Is_Handled_By_Others): Remove pragma and
5773 useless qualification from parameter type.
5774 (Foreign_Data_For): Likewise.
5775 (Language_For): Likewise.
5777 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
5779 * libgnat/s-stalib.ads (Exception_Data): Mark components as aliased.
5780 * stand.ads (Standard_Entity_Type): Enhance comments.
5781 * cstand.adb (Make_Component): Rename into...
5782 (Make_Aliased_Component): ...this; set Is_Aliased and Is_Independent
5783 flags on the component.
5784 (Create_Standard): Adjust the types of the component of the record
5785 Standard_Exception_Type and mark them as aliased.
5786 * exp_ch11.adb (Expand_N_Exception_Declaration): Use OK
5787 conversion to Standard_Address for Full_Name component, except
5788 in CodePeer_Mode (set it to 0).
5789 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Likewise.
5790 * raise.h (struct Exception_Data): Change the type of Full_Name,
5791 HTable_Ptr and Foreign_Data.
5793 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
5795 * atree.h (Slots_Ptr): Change pointed-to type to any_slot.
5796 * fe.h (Get_RT_Exception_Name): Change type of parameter.
5797 * namet.ads (Name_Entry): Mark non-boolean components as aliased,
5798 reorder the boolean components and add an explicit Spare component.
5799 * namet.adb (Name_Enter): Adjust aggregate accordingly.
5800 (Name_Find): Likewise.
5801 (Reinitialize): Likewise.
5802 * namet.h (struct Name_Entry): Adjust accordingly.
5803 (Names_Ptr): Use correct type.
5804 (Name_Chars_Ptr): Likewise.
5805 (Get_Name_String): Fix declaration and adjust to above changes.
5806 * types.ads (RT_Exception_Code): Add pragma Convention C.
5807 * types.h (Column_Number_Type): Fix original type.
5808 (slot): Rename union type to...
5809 (any_slot): ...this and adjust assertion accordingly.
5810 (RT_Exception_Code): New enumeration type.
5811 * uintp.ads (Uint_Entry): Mark components as aliased.
5812 * uintp.h (Uints_Ptr): Use correct type.
5813 (Udigits_Ptr): Likewise.
5814 * gcc-interface/gigi.h (gigi): Adjust name and type of parameter.
5815 * gcc-interface/cuintp.c (UI_To_gnu): Adjust references to Uints_Ptr
5817 * gcc-interface/trans.c (Slots_Ptr): Adjust pointed-to type.
5818 (gigi): Adjust type of parameter.
5819 (build_raise_check): Add cast in call to Get_RT_Exception_Name.
5821 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
5823 * init.c (__gnat_raise_program_error): Fix parameter type.
5824 (Raise_From_Signal_Handler): Likewise and mark as no-return.
5825 * raise-gcc.c (__gnat_others_value): Fix type.
5826 (__gnat_all_others_value): Likewise.
5827 (__gnat_unhandled_others_value): Likewise.
5828 * seh_init.c (Raise_From_Signal_Handler): Fix parameter type.
5829 * libgnat/a-except.ads (Raise_From_Signal_Handler): Use convention C
5830 and new symbol name, move declaration to...
5831 (Raise_From_Controlled_Operation): Minor tweak.
5832 * libgnat/a-except.adb (Raise_From_Signal_Handler): ...here.
5833 * libgnat/a-exexpr.adb (bool): New C compatible boolean type.
5834 (Is_Handled_By_Others): Use it as return type for the function.
5836 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
5838 * errout.ads (Set_Identifier_Casing): Add pragma Convention C.
5839 * eval_fat.ads (Rounding_Mode): Likewise.
5840 (Machine): Add WARNING comment line.
5841 * exp_code.ads (Clobber_Get_Next): Add pragma Convention C.
5842 * fe.h (Compiler_Abort): Fix return type.
5843 (Set_Identifier_Casing): Change type of parameters.
5844 (Clobber_Get_Next): Change return type.
5845 * gcc-interface/trans.c (gnat_to_gnu) <N_Code_Statement>: Add cast.
5847 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
5849 * atree.h (Parent): Remove duplicate declaration.
5850 (Get_1_Bit_Field): Also use INLINE specifier in the declaration,
5851 fix formatting and use gcc_unreachable for the default case.
5852 (Get_2_Bit_Field): Likewise.
5853 (Get_4_Bit_Field): Likewise.
5854 (Get_8_Bit_Field): Likewise.
5855 (Get_32_Bit_Field): Likewise.
5856 (Get_32_Bit_Field_With_Default): Likewise.
5858 2021-05-07 Bob Duff <duff@adacore.com>
5860 * atree.ads, atree.adb: Major rewrite to support variable-sized
5861 node types. Add pragmas Suppress and Assertion_Policy. We now
5862 have an extra level of indirection: Node_Offsets is a table
5863 mapping Node_Ids to the offset of the start of each node in
5864 Slots. Slots is a table containing one or more contiguous slots
5865 for each node. Each slot is a 32-bit unchecked union that can
5866 contain any mixture of 1, 2, 4, 8, and 32-bit fields that fits.
5867 The old low-level getters and setters (e.g. Flag123) are
5869 * gen_il-fields.ads, gen_il-gen-gen_entities.adb,
5870 gen_il-gen-gen_nodes.adb, gen_il-gen.adb, gen_il-gen.ads,
5871 gen_il-main.adb, gen_il-types.ads, gen_il-utils.adb,
5872 gen_il-utils.ads, gen_il.adb, gen_il.ads: New gen_il program
5873 that generates various Ada and C++ files. In particular, the
5874 following files are generated by gen_il: einfo-entities.adb
5875 einfo-entities.ads, gnatvsn.ads, nmake.adb, nmake.ads,
5876 seinfo.ads, seinfo_tables.adb, seinfo_tables.ads,
5877 sinfo-nodes.adb, sinfo-nodes.ads, einfo.h, and sinfo.h.
5878 * sinfo-utils.adb, sinfo-utils.ads, einfo-utils.adb,
5879 einfo-utils.ads: New files containing code that needs to refer
5880 to Sinfo.Nodes and Einfo.Entities. This code is mostly moved
5881 here from Sinfo and Einfo to break cycles.
5882 * back_end.adb: Pass node_offsets_ptr and slots_ptr to gigi,
5883 instead of nodes_ptr and flags_ptr. The Nodes and Flags tables
5884 no longer exist. (Note that gigi never used the Flags table.)
5885 * sinfo-cn.ads (Change_Identifier_To_Defining_Identifier,
5886 Change_Character_Literal_To_Defining_Character_Literal,
5887 Change_Operator_Symbol_To_Defining_Operator_Symbol): Turn N into
5889 * sinfo-cn.adb: Update. Add assertions, which can be removed at
5890 some point. Rewrite to use higher-level facilities. Make sure
5891 vanishing fields are zeroed out. Add with/use for new packages.
5892 * sem_util.adb: Remove "Assert(False)" immediately followed by
5893 "raise Program_Error". Use higher-level facilities such as
5894 Walk_Sinfo_Fields instead of depending on low-level Set_FieldN
5895 routines that no longer exist. Use Get_Comes_From_Source_Default
5896 instead of Default_Node.Comes_From_Source (Default_Node no
5897 longer exists). Use Set_Basic_Convention instead of
5898 Basic_Set_Convention. Add with/use for new packages.
5899 * sem_util.ads: The Convention field had getter Convention and
5900 setter Basic_Set_Convention. Make that more uniform: there is
5901 now a field called Basic_Convention, with Basic_Convention and
5902 Set_Basic_Convention as getter/setter, and write Convention and
5903 Set_Convention here.
5904 * nlists.adb: Rewrite to use abstractions, rather then depending
5905 on low-level implementation details of Atree. Necessary because
5906 those details have changed. Add with/use for new packages.
5907 * sem_ch12.adb: Use higher-level facilities such as
5908 Walk_Sinfo_Fields instead of depending on low-level Set_FieldN
5909 routines that no longer exist. Add with/use for new packages.
5910 * exp_cg.adb, sem_ch10.adb, sem_ch4.adb, sem_eval.adb,
5911 sem_prag.adb, sem_warn.adb: Change expanded names to refer to
5912 the new packages for things that moved. Add with/use for new
5914 * sem_ch3.adb: Likewise. Reinitialize vanishing fields.
5915 * exp_disp.adb: Likewise. Remove failing assertion.
5916 * sinfo.ads, einfo.ads: Remove code that is now generated into
5917 Sinfo.Nodes and Einfo.Entities.
5918 * sinfo.adb, einfo.adb: Replace bodies with "pragma No_Body;".
5919 We should delete these at some point, but No_Body makes make
5920 files easier. Some code is moved to Sinfo.Nodes, Einfo.Entities,
5921 Sinfo.Utils, and Einfo.Utils. Some is no longer necessary.
5922 * treepr.adb: Rewrite to use new tables. We no longer need
5924 * treepr.ads: Add comment.
5925 * types.ads: Move types Component_Alignment_Kind and
5926 Float_Rep_Kind here.
5927 * atree.h: Major update to match atree.ads changes. Add slot
5928 types, for use by getters/setters.
5929 * types.h: Move types Component_Alignment_Kind and
5930 Float_Rep_Kind here.
5931 * fe.h: Rewrite to deal with code that has changed or moved from
5932 Atree, Sinfo, Einfo.
5933 * nlists.h: Move some code to fe.h.
5934 * alloc.ads: Split Nodes_* constants into Node_Offsets and
5935 Slots, because Atree has two separate tables. Increase values.
5936 Remove Nodes_Release_Threshold. Improve comment.
5937 * debug.adb, gnat1drv.adb: Remove obsolete gnatd.A and gnatd.N
5938 switches. Add with/use for new packages.
5939 * opt.ads: Minor comment fix.
5940 * aspects.adb, checks.adb, comperr.adb, contracts.adb,
5941 cstand.adb, debug_a.adb, errout.adb, eval_fat.adb, exp_aggr.adb,
5942 exp_atag.adb, exp_attr.adb, exp_ch11.adb, exp_ch12.adb,
5943 exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb,
5944 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb,
5945 exp_code.adb, exp_dbug.adb, exp_dist.adb, exp_fixd.adb,
5946 exp_imgv.adb, exp_intr.adb, exp_pakd.adb, exp_prag.adb,
5947 exp_put_image.adb, exp_sel.adb, exp_smem.adb, exp_spark.adb,
5948 exp_strm.adb, exp_tss.adb, exp_unst.adb, exp_util.adb,
5949 exp_util.ads, expander.adb, freeze.adb, frontend.adb,
5950 get_targ.ads, ghost.adb, gnat_cuda.adb, impunit.adb, inline.adb,
5951 itypes.adb, itypes.ads, layout.adb, lib.adb, lib-load.adb,
5952 lib-writ.adb, lib-xref.adb, lib-xref.ads,
5953 lib-xref-spark_specific.adb, live.adb, par.adb, par_sco.adb,
5954 pprint.adb, repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb,
5955 scn.adb, sem.adb, sem.ads, sem_aggr.adb, sem_attr.adb,
5956 sem_aux.adb, sem_case.adb, sem_cat.adb, sem_ch11.adb,
5957 sem_ch13.adb, sem_ch2.adb, sem_ch5.adb, sem_ch6.adb,
5958 sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_dim.adb,
5959 sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_elim.adb,
5960 sem_intr.adb, sem_mech.adb, sem_res.adb, sem_scil.adb,
5961 sem_smem.adb, sem_type.adb, set_targ.ads, sinput.adb,
5962 sinput-l.adb, sprint.adb, style.adb, styleg.adb, tbuild.adb,
5963 tbuild.ads, uname.adb: Add with/use for new packages.
5964 * libgnat/a-stoubu.adb, libgnat/a-stouut.adb: Simplify to ease
5966 * libgnat/a-stobfi.adb, libgnat/a-stoufi.adb (Create_File,
5967 Create_New_File): Create file in binary format, to avoid
5968 introducing unwanted text conversions on Windows. Simplify to
5970 * libgnat/a-stteou__bootstrap.ads: New.
5971 * ceinfo.adb, csinfo.adb, nmake.adt, treeprs.adt, xeinfo.adb,
5972 xnmake.adb, xsinfo.adb, xtreeprs.adb: Delete.
5973 * Make-generated.in: Build and run the gen_il program to
5974 generate files. The files are generated in the ada/gen_il
5975 subdirectory, and then moved up to ada. We rely on gnatmake (as
5976 opposed to make) to build the gen_il program efficiently (i.e.
5977 don't do anything if the sources didn't change).
5978 * gcc-interface/Makefile.in (ADAFLAGS): Add -gnatU.
5979 (GNATMAKE_OBJS): Add new object files.
5980 (GENERATED_FILES_FOR_TOOLS): New variable.
5981 (../stamp-tools): Create a link for all
5982 GENERATED_FILES_FOR_TOOLS.
5983 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add new object
5984 files. Remove ada/treeprs.o.
5985 (GNATBIND_OBJS): Add new object files.
5986 (ada.mostlyclean): Remove ada/sdefault.adb and add
5988 (ada.maintainer-clean): Remove ada/treeprs.ads.
5989 (update-sources): Remove obsolete target.
5990 (ada_generated_files): Rename to...
5991 (ADA_GENERATED_FILES): ... this. Add new source files. Add
5993 * gcc-interface/trans.c: Remove obsolete Nodes_Ptr and
5994 Flags_ptr. Add Node_Offsets_Ptr and Slots_Ptr, which point to
5995 the corresponding tables in Atree.
5996 * gcc-interface/gigi.h (gigi): New parameters for initializing
5997 Node_Offsets_Ptr and Slots_Ptr.
5998 * gcc-interface/decl.c: Numeric_Kind,
5999 Discrete_Or_Fixed_Point_Kind, and Record_Kind were
6000 nonhierarchical, and were therefore removed for simplicity.
6001 Replace uses with calls to Is_In_... functions.
6003 2021-05-07 Ed Schonberg <schonberg@adacore.com>
6005 * exp_ch4.adb (Unconstrained_UU_In_Component_Declaration): A
6006 component declaration whose subtype indication is an entity name
6007 without an explicit constraint is an Unchecked_Union type only
6008 if the entity has an unconstrained nominal subtype (record type
6009 or private type) whose parent type is an Unchecked_Union.
6011 2021-05-07 Piotr Trojanek <trojanek@adacore.com>
6013 * sem_res.adb (Flag_Object): Ignore prefixes of attribute
6016 2021-05-07 Yannick Moy <moy@adacore.com>
6018 * opt.ads: Update comment for Warn_On_Suspicious_Modulus_Value.
6019 * sem_res.adb (Resolve_Unary_Op): Generate warning.
6020 * usage.adb: Refine doc for -gnatw.m/M switch.
6021 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
6022 Update doc on -gnatw.m switch.
6023 * gnat_ugn.texi: Regenerate.
6025 2021-05-07 Piotr Trojanek <trojanek@adacore.com>
6027 * sem_res.adb (Flag_Object): Replace chained IF with a CASE;
6028 remove repeated calls to Entity; do not traverse into
6029 N_Identifier and N_Expanded_Name, because only need to examine
6030 their Entity field anyway.
6032 2021-05-07 Piotr Trojanek <trojanek@adacore.com>
6034 * sem_ch4.adb (Analyze_Call): Remove call to End_Interp_List.
6035 (Process_Overloaded_Indexed_Component): Remove call to
6037 * sem_util.adb (Insert_Explicit_Dereference): Remove call to
6039 * sem_type.ads (End_Interp_List): Remove.
6040 * sem_type.adb (Add_Entry): The guard against duplicate entries
6041 is now checked before other conditions, so that EXIT statements
6042 do not bypass this guard.
6043 (End_Interp_List): Remove.
6045 2021-05-07 Ed Schonberg <schonberg@adacore.com>
6047 * exp_util.adb (Remove_Init_Call): If a simple initialization
6048 call is present, and the next statement is an initialization
6049 block (that contains a call to a Deep_ Initialize routine),
6050 remove the block as well, and insert the first initialization
6051 call in it, in case it is needed for later relocation.
6053 2021-05-07 Gary Dismukes <dismukes@adacore.com>
6055 * errout.ads (Size_Too_Small_Message): Remove low-value ???
6057 * exp_util.ads: Remove ??? in part of overall package comments
6058 and restructure comment to clarify.
6059 (Duplicate_Subexpr): Remove ??? comment that seems unnecessary.
6060 * sem_ch3.ads (Analyze_Declarations): Remove two parenthesized
6061 ??? comments and add more description of the procedure's
6063 (Get_Discriminant_Value): Remove ??? comment requesting more
6064 documentation, expanding description of the function's actions.
6065 * sem_disp.ads (Check_Operation_From_Incomplete_Type): Add more
6066 semantic description of the procedure and remove ??? comment
6068 (Propagate_Tag): Refine comment to indicate meaning of formal
6069 parameters and generally improve the spec comment (and remove
6070 ??? comment asking about the parameters).
6072 2021-05-07 Arnaud Charlet <charlet@adacore.com>
6074 * sem_eval.adb (Fold_Shift): Fix computation of Shift_Left
6075 resulting in negative signed values.
6077 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
6079 * sem_util.ads (Defining_Entity): Remove Empty_On_Errors parameter.
6080 (Defining_Entity_Or_Empty): New function.
6081 * sem_util.adb (Defining_Entity): Move bulk of implementation to...
6082 (Defining_Entity_Or_Empty): ...here. Do not raise Program_Error.
6083 (Innermost_Master_Scope_Depth): Call Defining_Entity_Or_Empty.
6085 2021-05-07 Justin Squirek <squirek@adacore.com>
6087 * aspects.ads: Add entries to register
6088 Aspect_No_Controlled_Parts.
6089 * freeze.adb (Check_No_Controlled_Parts_Violations): Added to
6090 check requirements of aspect No_Controlled_Parts after a type
6092 (Freeze_Entity): Add call to
6093 Check_No_Controlled_Parts_Violations.
6094 (Find_Aspect_No_Controlled_Parts): Created to obtain the aspect
6095 specification for No_Controlled_Parts on a given type when
6097 (Find_Aspect_No_Controlled_Parts_Value): Protect against invalid
6099 (Has_Aspect_No_Controlled_Parts): Created as a prediate function
6100 to check if No_Controlled_Parts has been specified on a type for
6101 Get_Anacestor_Types_With_Specification.
6102 (Get_Aspect_No_Controlled_Parts_Value): Created to obtain the
6103 value of the aspect No_Controlled_Parts when specified on a
6105 (Get_Generic_Formal_Types_In_Hierarchy): Created to collect
6106 formal types in a given type's hierarchy.
6107 (Get_Types_With_Aspect_In_Hierarchy): Created to collect types
6108 in a given type's hierarchy with No_Controlled_Parts specified.
6109 * sem_ch13.adb (Analyze_One_Aspect): Add processing for
6110 No_Controlled_Parts, and fix error in check for allowed pragmas
6112 (Check_Expr_Is_OK_Static_Expression): Created to enforce
6113 checking of static expressions in the same vein as
6114 Analyze_Pragma.Check_Expr_OK_Static_Expression.
6115 * sem_util.adb (Collect_Types_In_Hierarchy): Created to collect
6116 types in a given type's hierarchy that match a given predicate
6118 * sem_util.ads: Fix typo.
6119 * snames.ads-tmpl: Add entry for No_Controlled_Parts.
6121 2021-05-07 Eric Botcazou <ebotcazou@adacore.com>
6123 * libgnat/s-fatgen.adb (Scaling): Raise Constraint_Error in the
6124 overflow case when T'Machine_Overflows is True.
6126 2021-05-07 Bob Duff <duff@adacore.com>
6128 * libgnat/a-conhel.adb (TC_Check): Move the Assert into the
6131 2021-05-07 Frederic Konrad <konrad@adacore.com>
6133 * sigtramp-vxworks-target.inc: Use a local label for the TOC.
6135 2021-05-07 Claire Dross <dross@adacore.com>
6137 * exp_ch4.adb (Has_Inferable_Discriminants): Moved to Sem_Util.
6138 * sem_util.ads, sem_util.adb (Has_Inferable_Discriminants):
6141 2021-05-07 Ed Schonberg <schonberg@adacore.com>
6143 * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity):
6144 Add guard to verify that the enclosing pragma is a precondition.
6146 2021-05-06 Javier Miranda <miranda@adacore.com>
6148 * exp_disp.adb (Build_Class_Wide_Check): Extending the
6149 functionality of this routine to climb to the ancestors
6150 searching for the enclosing overridden dispatching primitive
6151 that has a class-wide precondition to generate the check.
6153 2021-05-06 Piotr Trojanek <trojanek@adacore.com>
6155 * sem_ch3.adb (Constraint_Index): Remove redundant problematic
6158 2021-05-06 Arnaud Charlet <charlet@adacore.com>
6160 * exp_unst.adb (Note_Uplevel_Bound): Exclude
6161 E_Enumeration_Literal.
6163 2021-05-06 Arnaud Charlet <charlet@adacore.com>
6165 * exp_ch4.adb (Expand_N_If_Expression):
6166 Apply_Arithmetic_Overflow_Check will not deal with
6167 Then/Else_Actions so skip minimizing overflow checks if any
6168 actions are present.
6170 2021-05-06 Boris Yakobowski <yakobowski@adacore.com>
6172 * gnat1drv.adb (Adjust_Global_Switches): Simplify logic.
6174 2021-05-06 Arnaud Charlet <charlet@adacore.com>
6176 * libgnat/i-c.ads (bool): New type.
6177 * libgnat/i-cexten.ads, libgnat/i-cexten__128.ads (bool): Now
6178 a subtype of Interfaces.C.bool.
6179 * libgnarl/s-interr__vxworks.adb (Interrupt_Manager): Qualify
6181 * libgnarl/s-interr.adb, libgnarl/s-interr__hwint.adb,
6182 libgnarl/s-tasini.adb, libgnarl/s-tasren.adb,
6183 libgnarl/s-tassta.adb, libgnarl/s-tpobmu.adb,
6184 libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb: Replace
6185 Assert (False) by Assert (Standard.False).
6187 2021-05-06 Ghjuvan Lacambre <lacambre@adacore.com>
6189 * make.adb (Compute_Executable): Document parameter.
6191 2021-05-06 Eric Botcazou <ebotcazou@adacore.com>
6193 * libgnat/s-fatgen.adb (Scaling): Use single handling of
6194 underflow. Add pragma Annotate.
6196 2021-05-06 Ghjuvan Lacambre <lacambre@adacore.com>
6198 * sem_eval.adb (Is_OK_Static_Subtype): Call Is_Static_Subtype,
6199 remove redundant checks.
6201 2021-05-06 Piotr Trojanek <trojanek@adacore.com>
6203 * sem_res.adb (First_Last_Ref): Simplify "if [condition] then
6204 return True" in "return [condition]".
6205 (Resolve_Range): Remove calls appearing in IF condition from the
6208 2021-05-06 Piotr Trojanek <trojanek@adacore.com>
6210 * sem_case.adb (Missing_Choice): Fix typo in comment.
6211 (Lit_Of): Simplify with Make_Character_Literal.
6212 (Check_Choices): Remove extra spaces in parameter
6214 * sem_case.ads: Same reformatting.
6216 2021-05-06 Ed Schonberg <schonberg@adacore.com>
6218 * exp_aggr.adb (Expand_Array_Aggregate): If the expression in an
6219 Others_Clause has not been analyzed because previous analysis of
6220 the enclosing aggregate showed the clause to be ineffective i.e.
6221 cover a null range, analyze it now to detect a possible type
6224 2021-05-06 Eric Botcazou <ebotcazou@adacore.com>
6226 * libgnat/s-fatgen.adb (Scaling): Fix off-by-one bug for underflow.
6228 2021-05-06 Arnaud Charlet <charlet@adacore.com>
6230 * sem_ch6.adb (Is_Inline_Pragma): Protect against N not being a
6231 list member in both branches.
6233 2021-05-06 Piotr Trojanek <trojanek@adacore.com>
6235 * libgnat/a-cofove.adb (Insert_Space): Remove hardcoded pragma
6238 2021-05-06 Piotr Trojanek <trojanek@adacore.com>
6240 * sem_ch4.adb (Analyze_Selected_Component): Remove explicit call
6241 to Set_Raises_Constraint_Error on statically missing component.
6242 * sem_eval.adb (Eval_Arithmetic_Op): Likewise for static
6243 divisions by integer and real zeros.
6244 * sem_util.adb (Apply_Compile_Time_Constraint_Error): Call
6245 Set_Raises_Constraint_Error before exiting early in GNATprove
6248 2021-05-06 Justin Squirek <squirek@adacore.com>
6250 * checks.adb (Make_Discriminant_Constraint_Check): Add check for
6251 null when the type being converted is an access type.
6253 2021-05-06 Arnaud Charlet <charlet@adacore.com>
6255 * exp_pakd.adb (Expand_Packed_Eq): Fix handling of PATs.
6257 2021-05-06 Piotr Trojanek <trojanek@adacore.com>
6259 * osint.adb (Read_Library_Info_From_Full): Cleanup unused
6262 2021-05-06 Eric Botcazou <ebotcazou@adacore.com>
6264 * doc/gnat_rm/implementation_defined_characteristics.rst (3.5.7):
6265 Mention the IEEE standard explicitly. Use current format names.
6266 Document assumed rounding mode and new features of I/O support.
6267 * gnat_rm.texi: Regenerate.
6269 2021-05-06 Eric Botcazou <ebotcazou@adacore.com>
6271 * init.c (__gnat_init_float): Use full version on Linux too.
6273 2021-05-06 Eric Botcazou <ebotcazou@adacore.com>
6275 * libgnat/s-fatgen.adb (Valid): Do a bit comparison with 0.0
6276 when denormalized numbers are not supported.
6278 2021-05-06 Piotr Trojanek <trojanek@adacore.com>
6280 * sem_attr.adb (Check_Enum_Image): Reword comment; add
6281 Check_Enumeration_Maps parameter. Now this routine combines
6282 both referencing enumeration literals and checking restriction
6283 No_Enumeration_Maps, if required.
6284 (Analyze_Attribute): Remove duplicated code and instead call
6287 2021-05-06 Piotr Trojanek <trojanek@adacore.com>
6289 * sem_attr.adb (Analyze_Image_Attribute): Remove redundant
6290 condition; add a missing header box.
6292 2021-05-06 Gary Dismukes <dismukes@adacore.com>
6294 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add
6295 mention of underscore and fix grammar error in doc for -gnatd.
6296 * gnat_ugn.texi: Regenerate.
6298 2021-05-06 Eric Botcazou <ebotcazou@adacore.com>
6300 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-exponr, s-exnflt
6302 * exp_ch4.adb (Expand_N_Op_Expon): Use RE_Exn_Float for Short_Float.
6303 * rtsfind.ads (RTU_Id): Add System_Exn_Flt and System_Exn_LFlt.
6304 (RE_Id): Adjust entries for RE_Exn_Float and RE_Exn_Long_Float.
6305 (RE_Unit_Table): Likewise.
6306 * libgnat/s-exnflt.ads: New file.
6307 * libgnat/s-exnlfl.ads: Likewise.
6308 * libgnat/s-exnllf.ads: Change to mere instantiation.
6309 * libgnat/s-exnllf.adb: Move implementation to...
6310 * libgnat/s-exponr.ads: New generic unit.
6311 * libgnat/s-exponr.adb: ...here and also make it generic.
6312 (Expon): Do the computation in double precision internally.
6314 2021-05-06 Piotr Trojanek <trojanek@adacore.com>
6316 * lib-writ.adb, osint.adb, osint.ads: Cleanup.
6318 2021-05-06 Piotr Trojanek <trojanek@adacore.com>
6320 * exp_ch3.adb (Expand_Freeze_Array_Type): Remove excessive
6322 (Expand_N_Object_Declaration): Likewise.
6323 (Build_Equivalent_Aggregate): Likewise.
6324 (Initialization_Warning): Likewise; change another excessive
6325 condition into assertion.
6326 * freeze.adb (Freeze_Entity): Remove excessive condition.
6328 2021-05-06 Ed Schonberg <schonberg@adacore.com>
6330 * sem_res.adb (Resolve_If_Expression): If the context of the
6331 expression is an indexed_component, resolve the expression and
6332 its dependent_expressions with the base type of the index, to
6333 ensure that an index check is generated when resolving the
6334 enclosing indexxed_component, and avoid an improper use of
6335 discriminants out of scope, when the index type is
6336 discriminant-dependent.
6338 2021-05-06 Arnaud Charlet <charlet@adacore.com>
6340 * einfo.ads, exp_prag.adb, exp_util.adb: Fix typos.
6342 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6344 * exp_attr.adb (Expand_N_Attribute_Reference): Fix expansion of
6345 attributes Input and Output for unchecked unions.
6346 * sem_case.ads: Fix typo "disriminant" and refill comment.
6348 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6350 * exp_attr.adb, exp_ch9.adb, sem_ch3.adb: Reuse
6351 Has_Defaulted_Discriminants.
6352 * sem_ch4.adb (Analyze_Allocator): Reuse
6353 Has_Defaulted_Discriminants (after reordering conjuncts); remove
6354 redundant IF statement, whose condition is implied by
6355 Has_Defaulted_Discriminants.
6356 * sem_util.adb (Has_Defaulted_Discriminants): Has_Discriminants
6357 implies that the First_Discriminant is present.
6358 (Is_Fully_Initialized_Type): Reuse Has_Defaulted_Discriminants.
6360 2021-05-05 Justin Squirek <squirek@adacore.com>
6362 * exp_ch6.adb (Expand_Call_Helper): Add condition to check for
6363 expanded actuals and remove dead code.
6365 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6367 * exp_ch4.adb (Has_Unconstrained_UU_Component): Rewrite to
6368 follow the Ada RM grammar.
6370 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6372 * exp_ch4.adb (User_Defined_Primitive_Equality_Op): Refine type
6373 of a local variable.
6374 * exp_dbug.adb (Scope_Contains): Refine all types from Node_Id
6375 to Entity_Id; rename parameters to match those of the
6376 Scope_Within routine (which is similar but not the same); also,
6377 simplify an OR ELSE into a membership test.
6379 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6381 * exp_ch4.adb (Component_Is_Unconstrained_UU): Detect both
6382 qualified and unqualified names of unchecked union components.
6384 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6386 * exp_ch4.adb (Variant_Is_Unconstrained_UU): Remove redundant
6387 check for empty list.
6388 * exp_disp.adb (Find_Entry_Index): Simplify by removing
6389 redundant check and counting from zero; fix type of a local
6391 * sem_ch12.adb (Save_Global_Descendant): Remove an unnecessary
6392 special-case for empty lists.
6394 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6396 * exp_ch4.adb (Apply_Accessibility_Check): Skip a statically
6397 true condition in expanded raise statement.
6399 2021-05-05 Bob Duff <duff@adacore.com>
6401 * libgnat/s-os_lib.adb (Missed_Drive_Letter): Simplify the code.
6403 2021-05-05 Ed Schonberg <schonberg@adacore.com>
6405 * sem_ch5.adb (Analyze_Assignment): Do not emit the warning that
6406 a previous value of the target object is useless if the
6407 right-hand side of the assignment includes target names.
6409 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
6411 * exp_imgv.adb: Add with/use clauses for Targparm.
6412 (Build_Enumeration_Image_Tables): Set type of Threshold to Nat and
6413 initialize it to Nat'Last if the type is local and the target does
6414 not support descriptors. Adjust Threshold_For_Size similarly.
6415 (Expand_Value_Attribute): Minor tweaks.
6417 2021-05-05 Ghjuvan Lacambre <lacambre@adacore.com>
6419 * exp_ch7.adb (Expand_N_Package_Body): Add CUDA init call.
6420 * sem_ch7.adb (Analyze_Package_Body_Helper): Remove CUDA init
6423 2021-05-05 Ghjuvan Lacambre <lacambre@adacore.com>
6425 * par-ch5.adb (P_Condition): Check if expression is declare
6428 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6430 * make.adb (Make): Use GNAT.Ctrl_C.Install_Handler instead of a
6431 custom imported procedure.
6433 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
6435 * exp_imgv.adb (Is_User_Defined_Enumeration_Type): Delete.
6436 (Expand_Image_Attribute): Move inline expansion into normal flow of
6437 control, move down declarations and remove superfluous processing.
6439 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6441 * libgnat/g-alleve.adb (Bit_Operation): Now a not-null type.
6442 * libgnat/g-sechas.adb (Fill_Buffer_Access): Likewise.
6443 * libgnat/s-dwalin.adb (Callback): Likewise.
6445 2021-05-05 Ghjuvan Lacambre <lacambre@adacore.com>
6447 * exp_util.adb (Is_Possibly_Unaligned_Object): Remove commented
6450 2021-05-05 Ed Schonberg <schonberg@adacore.com>
6452 * sem_ch3.adb (Find_Type_Of_Object): When In_Spec_Expression is
6453 set and the object declaration generates a subtype indication,
6454 build the corresponding subtype declaration and place it in tree
6455 without the use of Insert_Actions, which is disabled in this
6458 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
6460 * debug.adb (d_x): Document extended usage.
6461 * exp_imgv.adb (Expand_Standard_Boolean_Image): New procedure.
6462 (Expand_Image_Attribute): Call it to expand in line the attribute
6463 for standard boolean by default.
6465 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
6467 * debug.adb (d_x): Document new usage.
6468 * exp_imgv.adb (Expand_User_Defined_Enumeration_Image): Add Typ
6469 parameter and use it throughout the processing.
6470 (Expand_Image_Attribute): Retrieve the underlying type of the
6471 prefix and use the inline expansion for user-defined enumeration
6472 types with a literal string by default.
6474 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
6476 * libgnat/s-dorepr.adb (Split): Declare a per-size temporary.
6477 Add pragma Annotate.
6479 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6481 * exp_ch4.adb, sem_ch13.adb, sem_eval.adb, sem_res.adb: Remove
6482 redundant calls to UI_From_Int.
6484 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
6486 * exp_imgv.ads (Build_Enumeration_Image_Tables): Adjust comment.
6487 * exp_imgv.adb (Build_Enumeration_Image_Tables): Add the
6488 declaration nodes of the 4 tables to the declaration list of the
6491 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6493 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-imagen, s-imen16,
6494 s-imen32, s-imenu8, s-pehage, s-valuen, s-vaen16, s-vaen32 and
6495 s-vaenu8. Remove s-imenne, s-imgenu and s-valenu.
6496 * debug.adb (d_h): Document new usage.
6497 * einfo.ads (Lit_Hash): New attribute for enumeration types.
6498 (Set_Lit_Hash): Declare.
6499 * einfo.adb (Lit_Hash): New function.
6500 (Set_Lit_Hash): New procedure.
6501 (Write_Field21_Name): Print Lit_Hash for Enumeration_Kind.
6502 * exp_imgv.ads (Build_Enumeration_Image_Tables): Fix description
6503 and document the hash function and its tables.
6504 * exp_imgv.adb: Add with/use clauses for Debug. Add with clause
6505 for System.Perfect_Hash_Generators.
6506 (Append_Table_To): New helper routine.
6507 (Build_Enumeration_Image_Tables): Call it to build the tables.
6508 In the main unit, register the literals with the hash generator.
6509 If they are sufficiently many and -gnatd_h is not passed, generate
6510 a perfect hash function and its tables; otherwise, generate a dummy
6511 hash function. For the other units, generate only the declaration.
6512 In all cases, set Lit_Hash to the entity of the function, if any.
6513 (Expand_Value_Attribute): Pass the 'Unrestricted_Access of Lit_Hash,
6514 if any, as third argument to the Value_Enumeration_NN function.
6515 * gnat1drv.adb (Adjust_Global_Switches): force simpler implementation
6516 of 'Value in CodePeer_Mode.
6517 * lib.ads (Synchronize_Serial_Number): Add SN parameter.
6518 * lib.adb (Synchronize_Serial_Number): Assert that it is larger than
6519 the serial number of the current unit and set the latter to it only
6521 * rtsfind.ads (RTU_Id): Add System_Img_Enum_8, System_Img_Enum_16,
6522 System_Img_Enum_32, System_Val_Enum_8, System_Val_Enum_16 and
6523 System_Val_Enum_32. Remove System_Img_Enum, System_Img_Enum_New
6524 and System_Val_Enum.
6525 * sem_attr.adb (Analyze_Access_Attribute): Do not flag a compiler
6526 generated Unrestricted_Access attribute as illegal in a declare
6528 (RE_Unit_Table): Adjust to above changes.
6529 * libgnat/g-heasor.ads: Add pragma Compiler_Unit_Warning.
6530 * libgnat/g-table.ads: Likewise.
6531 * libgnat/g-pehage.ads: Add with clause and local renaming for
6532 System.Perfect_Hash_Generators.
6533 (Optimization): Turn into derived type.
6534 (Verbose): Turn into renaming.
6535 (Too_Many_Tries): Likewise.
6536 (Table_Name): Move to System.Perfect_Hash_Generators.
6539 * libgnat/g-pehage.adb: Remove with clause for Ada.Directories,
6540 GNAT.Heap_Sort_G and GNAT.Table. Move bulk of implementation
6541 to System.Perfect_Hash_Generators, only keep the output part.
6542 * libgnat/s-imagen.ads: New generic unit.
6543 * libgnat/s-imagen.adb: New body.
6544 * libgnat/s-imen16.ads: New unit.
6545 * libgnat/s-imen32.ads: Likewise.
6546 * libgnat/s-imenu8.ads: Likewise.
6547 * libgnat/s-imenne.ads: Adjust description.
6548 * libgnat/s-imgenu.ads: Delete.
6549 * libgnat/s-imgenu.adb: Likewise.
6550 * libgnat/s-pehage.ads: New unit from GNAT.Perfect_Hash_Generators.
6551 * libgnat/s-pehage.adb: New body from GNAT.Perfect_Hash_Generators.
6552 * libgnat/s-valuen.ads: New generic unit.
6553 * libgnat/s-valuen.adb: New body.
6554 * libgnat/s-vaen16.ads: New unit.
6555 * libgnat/s-vaen32.ads: Likewise.
6556 * libgnat/s-vaenu8.ads: Likewise.
6557 * libgnat/s-valenu.ads: Delete.
6558 * libgnat/s-valenu.adb: Likewise.
6559 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add s-pehage.o.
6560 (GNATBIND_OBJS): Remove s-imgenu.o.
6562 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6564 * sem_util.ads (Apply_Compile_Time_Constraint_Error): Remove
6565 parameter Rep from the function spec and "and if the flag Rep is
6566 set" from the comment.
6567 * sem_util.adb (Apply_Compile_Time_Constraint_Error): Remove
6570 2021-05-05 Ed Schonberg <schonberg@adacore.com>
6572 * sem_aggr.adb (Resolve_Indexed_Aggregate): For indexed
6573 aggregates with component associations verify that if there is
6574 more than one component association then all the choices are
6575 static, that the set of choices define a continuous sequence of
6576 values, and that if loop specfications appear, they do not
6577 include iterator filters or key expressions.
6579 2021-05-05 Eric Botcazou <ebotcazou@adacore.com>
6581 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-dourea, s-imager,
6582 s-imgflt, s-imglfl and s-imgllf.
6583 (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorks]: Use s-dorepr__fma.adb.
6584 (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorksAE]: Likewise.
6585 (LIBGNAT_TARGET_PAIRS) [Aarch64/VxWorks]: Likewise.
6586 (LIBGNAT_TARGET_PAIRS) [Aarch64/QNX]: Likewise.
6587 (LIBGNAT_TARGET_PAIRS) [Aarch64/FreeBSD]: Likewise.
6588 (LIBGNAT_TARGET_PAIRS) [PowerPC/Linux]: Likewise.
6589 (LIBGNAT_TARGET_PAIRS) [Aarch64/Linux]: Likewise.
6590 (LIBGNAT_TARGET_PAIRS) [IA-64/Linux]: Likewise.
6591 (LIBGNAT_TARGET_PAIRS) [IA-64/HP-UX]: Likewise.
6592 (LIBGNAT_TARGET_PAIRS) [RISC-V/Linux]: Likewise.
6593 (LIBGNAT_TARGET_PAIRS) [PowerPC/Darwin]: Likewise.
6594 * exp_attr.adb (Expand_N_Attribute_Reference) [Attribute_Fore]: Use
6595 Fixed suffix and Long_Float type.
6596 * exp_imgv.adb (Expand_Image_Attribute): For floating-point types,
6597 use the routine of the corresponding root type. For ordinary fixed
6598 point types, use Fixed suffix and Long_Float type.
6599 (Expand_Value_Attribute): Revert latest change for Long_Long_Float.
6600 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove libgnat units
6601 g-hesora.o and s-imgenu.o, add g-heasor.o, g-table.o and s-pehage.o.
6602 (GNATBIND_OBJS): Remove libgnat unit s-imgenu.o.
6603 * rtsfind.ads (RTU_Id): Add System_Img_Flt, System_Img_LFlt and
6604 System_Img_LLF. Remove System_Img_Real.
6605 (RE_Id): Rename RE_Fore_Real to RE_Fore_Fixed. Add RE_Image_Float,
6606 RE_Image_Long_Float and RE_Image_Long_Long_Float. Rename
6607 RE_Image_Ordinary_Fixed_Point to RE_Image_Fixed.
6608 (RE_Unit_Table): Adjust to above changes.
6609 * libgnat/a-nbnbre.adb (Fixed_Conversions): Use Long_Float instead
6611 * libgnat/a-textio.ads (Field): Remove obsolete comment.
6612 * libgnat/a-ticoau.ads (Aux): Adjust ancestor package.
6613 * libgnat/a-ticoau.adb: Remove with/use clause for System.Img_Real.
6614 (Puts): Call Aux.Set_Image instead of Set_Image_Real.
6615 * libgnat/a-ticoio.adb: Add with/use clauses for System.Img_Flt,
6616 System.Img_LFlt and System.Img_LLF.
6617 (Scalar_Float): Add third actual parameter.
6618 (Scalar_Long_Float): Likewise.
6619 (Scalar_Long_Long_Float): Likewise.
6620 * libgnat/a-tifiio.adb: Add with/use clauses for System.Img_LFlt
6621 and System.Val_LFlt. Remove the one for System.Val_LLF. Replace
6622 Long_Long_Float with Long_Float throughout.
6623 * libgnat/a-tifiio__128.adb: Likewise.
6624 * libgnat/a-tiflau.ads: Add Set_Image formal parameter.
6625 * libgnat/a-tiflau.adb: Add with/use clause for System.Img_Util,
6626 remove the one for System.Img_Real.
6627 (Put): Call Set_Image instead of Set_Image_Real.
6629 * libgnat/a-tiflio.adb: Add with/use clause for System.Img_Flt,
6630 System.Img_LFlt and System.Img_LLF.
6631 (Aux_Float): Add third actual parameter.
6632 (Aux_Long_Float): Likewise.
6633 (Aux_Long_Long_Float): Likewise.
6634 * libgnat/a-witeio.ads (Field): Remove obsolete comment.
6635 * libgnat/a-wtcoau.ads (Aux): Adjust ancestor package.
6636 * libgnat/a-wtcoau.adb: Remove with/use clause for System.Img_Real.
6637 (Puts): Call Aux.Set_Image instead of Set_Image_Real.
6638 * libgnat/a-wtcoio.adb: Add with/use clauses for System.Img_Flt,
6639 System.Img_LFlt and System.Img_LLF.
6640 (Scalar_Float): Add third actual parameter.
6641 (Scalar_Long_Float): Likewise.
6642 (Scalar_Long_Long_Float): Likewise.
6643 * libgnat/a-wtfiio.adb: Add with/use clauses for System.Img_LFlt
6644 and System.Val_LFlt. Remove the one for System.Val_LLF. Replace
6645 Long_Long_Float with Long_Float throughout.
6646 * libgnat/a-wtfiio__128.adb: Likewise.
6647 * libgnat/a-wtflau.ads: Add Set_Image formal parameter.
6648 * libgnat/a-wtflau.adb: Add with/use clause for System.Img_Util,
6649 remove the one for System.Img_Real.
6650 (Put): Call Set_Image instead of Set_Image_Real.
6652 * libgnat/a-wtflio.adb: Add with/use clause for System.Img_Flt,
6653 System.Img_LFlt and System.Img_LLF.
6654 (Aux_Float): Add third actual parameter.
6655 (Aux_Long_Float): Likewise.
6656 (Aux_Long_Long_Float): Likewise.
6657 * libgnat/a-ztexio.ads (Field): Remove obsolete comment.
6658 * libgnat/a-ztcoau.ads (Aux): Adjust ancestor package.
6659 * libgnat/a-ztcoau.adb: Remove with/use clause for System.Img_Real.
6660 (Puts): Call Aux.Set_Image instead of Set_Image_Real.
6661 * libgnat/a-ztcoio.adb: Add with/use clauses for System.Img_Flt,
6662 System.Img_LFlt and System.Img_LLF.
6663 (Scalar_Float): Add third actual parameter.
6664 (Scalar_Long_Float): Likewise.
6665 (Scalar_Long_Long_Float): Likewise.
6666 * libgnat/a-ztfiio.adb: Add with/use clauses for System.Img_LFlt
6667 and System.Val_LFlt. Remove the one for System.Val_LLF. Replace
6668 Long_Long_Float with Long_Float throughout.
6669 * libgnat/a-ztfiio__128.adb: Likewise.
6670 * libgnat/a-ztflau.ads: Add Set_Image formal parameter.
6671 * libgnat/a-ztflau.adb: Add with/use clause for System.Img_Util,
6672 remove the one for System.Img_Real.
6673 (Put): Call Set_Image instead of Set_Image_Real.
6675 * libgnat/a-ztflio.adb: Add with/use clause for System.Img_Flt,
6676 System.Img_LFlt and System.Img_LLF.
6677 (Aux_Float): Add third actual parameter.
6678 (Aux_Long_Float): Likewise.
6679 (Aux_Long_Long_Float): Likewise.
6680 * libgnat/s-dorepr.adb: New file.
6681 * libgnat/s-dorepr__fma.adb: Likewise.
6682 * libgnat/s-dourea.ads: Likewise.
6683 * libgnat/s-dourea.adb: Likewise.
6684 * libgnat/s-forrea.ads (Fore_Real): Rename into...
6685 (Fore_Fixed): ...this and take Long_Float parameters.
6686 * libgnat/s-forrea.adb (Fore_Real): Likewise.
6687 (Fore_Fixed): Likewise.
6688 * libgnat/s-imgrea.ads: Move to...
6689 (Set_Image_Real): Turn into mere renaming.
6690 * libgnat/s-imager.ads: ...here.
6691 (Image_Ordinary_Fixed_Point): Turn into...
6692 (Image_Fixed_Point): ...this.
6693 * libgnat/s-imgrea.adb: Add pragma No_Body. Move to...
6694 * libgnat/s-imager.adb: ...here.
6695 (Image_Ordinary_Fixed_Point): Turn into...
6696 (Image_Fixed_Point): ...this.
6697 (Is_Negative): Replace Long_Long_Float with Num.
6698 (Set_Image_Real): Likewise. Use Double_T instead of single Num
6699 throughout the algorithm.
6700 * libgnat/s-imgflt.ads: New file.
6701 * libgnat/s-imglfl.ads: Likewise.
6702 * libgnat/s-imgllf.ads: Likewise.
6703 * libgnat/s-imagef.ads: Adjust comment.
6704 * libgnat/s-imguti.ads (Max_Real_Image_Length): New named number.
6705 * libgnat/s-powflt.ads (Maxpow): Adjust.
6706 (Powten): Turn into an exact table of double Float.
6707 * libgnat/s-powlfl.ads (Maxpow): Adjust.
6708 (Powten): Turn into an exact table of double Long_Float.
6709 * libgnat/s-powllf.ads (Maxpow): Adjust.
6710 (Powten): Turn into an exact table of double Long_Long_Float.
6711 * libgnat/s-valrea.ads: Change order of formal parameters.
6712 * libgnat/s-valrea.adb: Add with clause for System.Double_Real.
6713 (Double_Real): New instantiation.
6715 (Large_Powten): New function.
6716 (Integer_to_Real): Use Quick_Two_Sum instead of Fast2Sum. Convert
6717 the value to Double_T. Do the scaling in Double_T for base 10.
6718 * libgnat/s-valflt.ads: Remove with/use clasue for Interfaces,
6719 add it for System.Unsigned_Types. Use Unsigned.
6720 * libgnat/s-vallfl.ads: Remove with/use clasue for Interfaces,
6721 add it for System.Unsigned_Types. Use Long_Unsigned.
6722 * libgnat/s-valllf.ads: Remove with/use clasue for Interfaces,
6723 add it for System.Unsigned_Types. Use Long_Long_Unsigned.
6725 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6727 * sem_eval.adb (Eval_Arithmetic_Op): Call
6728 Set_Raises_Constraint_Error on real division by zero just like
6729 it is called for integer division by zero earlier in this
6732 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6734 * freeze.adb (Build_Renamed_Body): Simplify IF and WHILE
6735 statements with the same condition.
6737 2021-05-05 Piotr Trojanek <trojanek@adacore.com>
6739 * pprint.adb (Expr_Name): Introduce local constants to make the
6740 code more readable and avoid repeated calls to Next to reach the
6741 ELSE part of an if-expression.
6743 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6745 * pprint.adb: Remove qualification of arbitrary calls to
6746 Sinfo.Expressions and Sinfo.Parameter_Associations.
6748 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6750 * pprint.adb (Expr_Name): Simplify with functional variant of
6753 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6755 * pprint.adb (To_Mixed): Removed.
6757 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6759 * pprint.adb (List_Name_Count): Change type from Integer to
6762 2021-05-04 Yannick Moy <moy@adacore.com>
6764 * pprint.adb (Expression_Image): Special case for
6765 expression-with-actions.
6767 2021-05-04 Bob Duff <duff@adacore.com>
6769 * exp_ch4.adb (Expand_Concatenate): Remove the non-optimization.
6771 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6773 * lib-xref.adb (Generate_Reference_To_Formals): Remove dedicated
6774 branch for generic subprograms (they are now handled together
6775 with non-generic subprograms in the ELSE branch); replace a
6776 low-level Ekind membership test with a high-level call to
6777 Is_Access_Subprogram_Type.
6779 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6781 * sem_ch12.adb (Check_Abstract_Primitives): Match First_Formal
6783 * sem_ch6.adb (Is_Non_Overriding_Operation): Likewise.
6785 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6787 * sem_prag.adb (Collect_Global_Item): Iterate directly over
6790 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6792 * sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Update
6793 comment; this routine is no longer used by GNATprove.
6794 * sem_prag.adb (Find_Role): The IN parameter is on output only
6795 when it belongs to non-function; also, the otherwise constant
6796 object can only be written by a non-function.
6797 (Collect_Global_Item): The IN parameter can only be written when
6798 it belongs to non-function; also, unnest this check to make it
6801 2021-05-04 Arnaud Charlet <charlet@adacore.com>
6803 * libgnat/s-assert.ads (Assert_Failure): Now a renaming of
6805 * libgnat/a-assert.ads (Assertion_Error): Now a first class
6806 citizen. Remove dependency on System.Assertions.
6807 * gcc-interface/a-assert.ads, gcc-interface/a-assert.adb: New.
6808 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add
6809 a-assert.o from gcc-interface.
6811 2021-05-04 Yannick Moy <moy@adacore.com>
6813 * erroutc.adb (Matches): Move spec...
6814 * erroutc.ads (Matches): ...here.
6816 2021-05-04 Yannick Moy <moy@adacore.com>
6818 * gnat1drv.adb (Adjust_Global_Switches): Force error marker in
6821 2021-05-04 Bob Duff <duff@adacore.com>
6823 * binde.adb: No need for ??? marks in Binde, because it is
6824 superseded by Bindo.
6825 * bindo-writers.adb (Write_Unit_Closure): Verified that -Ra
6827 * exp_ch4.adb, sinfo.ads (Expand_N_Type_Conversion): Rules for
6828 conversions passed to gigi are documented in sinfo.ads.
6829 (Expand_N_Unchecked_Type_Conversion): Comment is a duplicate of
6831 (Expand_N_In): Robert already added sufficient comments years
6832 after the ??? comment was inserted.
6833 (Expand_Membership_Minimize_Eliminate_Overflow): I don't see any
6834 reason why Stand should export Long_Long_Integer'Base -- it
6835 doesn't export any other base types.
6836 (Size_In_Storage_Elements): We are doing an allocator, so we
6837 don't care about sizes in bits.
6838 (Expand_N_Allocator): PolyORB isn't going to be significantly
6839 improved, so we're not going to mess with remote access to
6841 (Optimize_Return_Stmt): It's not important to optimize return
6842 statements in predicate functions -- there are many
6843 more-important optimizations we could do. Keep part of the
6844 comment without "???", to clarify why the "and then ...".
6845 (User_Defined_Primitive_Equality_Op): The optimization doesn't
6846 seem important enough.
6847 (Expand_N_Unchecked_Type_Conversion): Refactor to use
6848 Expand_N_Unchecked_Expression.
6849 (Make_Array_Comparison_Op): This seems like a case of "it it's
6850 not broken, don't fix it". Too much risk of causing bugs.
6851 * debug_a.adb: Remove ??? comments asking why Current_Error_Node
6852 is maintained unconditionally, and add a comment explaining why.
6853 * errout.adb: These kinds of minor bugs do indeed exist, but
6854 we're never going to get around to fixing them "properly", so we
6855 need this code for robustness.
6856 * gnatchop.adb (Read_File): Document when read can fail.
6857 * gnatdll.adb (Parse_Command_Line): Nobody is complaining about
6858 these arbitrary limits, so no need to use Table. Increase the
6859 limits just in case. It is clear from the names what they are
6861 * gnatlink.adb: Add needed comments.
6862 (Delete): An existing comment makes clear it's intentional, and
6863 it's been like that since 1996.
6864 (Process_Args): Improve comments.
6865 (Search_Library_Path): Refactoring to avoid deep nesting.
6866 * inline.adb (Build_Body_To_Inline): Probably won't get around
6867 to doing that optimization.
6868 (Is_Unit_Subprogram): No, this should not be moved to Sem_Aux,
6869 because it is too specialized to this context.
6870 (Do_Reset): No comment is needed here; it's clear from the
6871 comment on Reset_Dispatching_Calls. Do_Reset is an artificial
6872 subprogram; if we had proper iterators, it would just be an if
6873 statement in the loop.
6874 (Rewrite_Function_Call): Probably won't get around to doing that
6876 * layout.adb (Layout_Type): The gigi comment doesn't need to be
6877 a ??? comment, and it's been that way since 2000. The
6878 limitation to scalars will likely never be investigated, and
6879 it's been that way since 2009.
6880 * lib.adb (Check_Same_Extended_Unit): This doesn't look like
6881 something that needs fixing; it looks like a permanent
6883 * lib-load.adb (Change_Main_Unit_To_Spec): It is good enough in
6885 (Load_Unit): Nobody will ever get around to investigating the
6886 obscure PMES oddity, and the optimization is not worth the
6888 * live.adb: It's not worth documenting this. It is used only
6889 with a debug switch. Nobody who has done significant work on it
6890 is still around, so it would require substantial investigation.
6891 * mdll.ads: I see no reason for USE.
6892 * namet.ads: Routines are obsolete, but they're not going
6893 anywhere anytime soon (too much work, and surprisingly delicate
6894 because of dependences on global variables).
6896 * osint.adb: Improve comments.
6897 (Full_Lib_File_Name): Use Smart_Find_File.
6899 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6901 * exp_prag.adb, sem_prag.adb: Replace low-level Ekind membership
6902 tests with a high-level call to Is_Formal_Object.
6904 2021-05-04 Arnaud Charlet <charlet@adacore.com>
6906 * cstand.adb, sprint.adb, switch-c.adb, xr_tabls.ads,
6907 xr_tabls.adb, xref_lib.adb: Address ??? comments.
6909 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6911 * sem_prag.adb (Analyze_Global_Item): Take subprogram kind into
6912 account when accepting or rejecting a constant of an
6913 access-to-variable type as a global Output/In_Out; do this check
6914 inside an ELSIF branch to avoid unnecessary evaluation of the
6915 subsequent condition.
6917 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6919 * sem_prag.adb (Role_Error, Usage_Error): Replace calls to
6920 Name_Find and Get_Name_String with a call to To_String.
6922 2021-05-04 Ed Schonberg <schonberg@adacore.com>
6924 * exp_aggr.adb (Build_Siz_Exp): new function, subsidiary of
6925 Expand_Container_Aggregate, to create an expression to be used
6926 in the dynamic allocation of a container with a single container
6927 element association.
6928 (Add_Range): Handle static bounds of ranges over enumerations.
6929 (Expand_Container_Aggregate): Add declaration for size
6930 expression when needed, and use it in container object
6931 declaration for container.
6933 2021-05-04 Arnaud Charlet <charlet@adacore.com>
6935 * exp_ch7.adb (Build_Finalizer_Helper.New_Finalizer_Name):
6936 Unnest so that it can be reused.
6937 (Build_Finalizer_Helper.Process_Declarations): Call the
6938 xxx__finalize_body procedure of a package instantiation in case
6939 it contains finalization statements. Code clean ups.
6940 (Build_Finalizer_Helper.Create_Finalizer): Export and set an
6941 Interface_Name for library level finalizers since these may be
6943 (Build_Finalizer_Helper): Need to process library level package
6944 body instantiations which may contain objects requiring
6946 * libgnat/s-finmas.ads: Fix typo.
6948 2021-05-04 Arnaud Charlet <charlet@adacore.com>
6950 * checks.adb (Append_Range_Checks, Apply_Selected_Length_Checks,
6951 Determine_Range, Insert_Range_Checks,
6952 Install_Null_Excluding_Check, Selected_Length_Checks,
6953 Selected_Range_Checks): Address ??? comments and code cleanups.
6955 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6957 * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
6958 Apply the rule even with no explicit Global contract (and remove
6959 a dead condition for Refined_Global).
6961 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6963 * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
6964 Extend check to protected entries.
6966 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6968 * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
6969 Fix reference to SPARK RM rule number.
6971 2021-05-04 Eric Botcazou <ebotcazou@adacore.com>
6973 * exp_intr.adb: Remove with/use clauses for Urealp.
6974 (Expand_Is_Negative): Delete.
6975 (Expand_Intrinsic_Call): Do not call it.
6976 * rtsfind.ads (RE_Id): Remove RE_Float_Unsigned.
6977 (RE_Unit_Table): Remove entry for RE_Float_Unsigned.
6978 * snames.ads-tmpl (Name_Is_Negative): Delete.
6979 * libgnat/s-imgrea.ads (Set_Image_Real): Fix mode of S parameter.
6980 * libgnat/s-imgrea.adb: Add with/use clauses for System.Img_Util.
6983 (Is_Negative): Reimplement.
6984 (Image_Floating_Point): Simplify.
6985 (Set_Image_Real): Fix mode of S parameter. Remove the low-level
6986 processing on characters. Flip the sign of the Scale variable.
6987 Compute the maximum number of digits for the straight notation.
6988 Call Set_Decimal_Digits at the end to do the final formatting.
6989 * libgnat/s-imguti.ads (Floating_Invalid_Value): New type.
6990 (Set_Floating_Invalid_Value): New procedure.
6991 * libgnat/s-imguti.adb (Set_Floating_Invalid_Value): Implement it
6992 based on existing code from Set_Image_Real.
6993 * libgnat/s-unstyp.ads (Float_Unsigned): Delete.
6995 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
6997 * csets.adb (Initialize): Refactor into CASE statement; raise
6998 exception on unsupported code of character set (it will be
6999 gently rejected earlier when scanning command line switches).
7000 * switch-b.adb (Scan_Binder_Switches): Refactor into a
7001 membership expression; add missing '9' choice; reorder as
7002 described by GNAT UG, section 4.3.11.
7003 * switch-c.adb (Scan_Front_End_Switches): Refactor into a
7004 membership expression and reorder as above.
7005 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
7006 (gnatic): Mention '5' as an allowed value for "c".
7007 * gnat_ugn.texi: Regenerate.
7009 2021-05-04 Piotr Trojanek <trojanek@adacore.com>
7011 * errout.adb (Error_Msg_Internal): Add assertion to prevent
7012 style mistakes reappearing in the future.
7014 2021-05-04 Javier Miranda <miranda@adacore.com>
7016 * exp_ch4.adb (Tagged_Membership): Remove wrong condition that
7017 is not consistent with the documentation of this subprogram.
7019 2021-05-04 Yannick Moy <moy@adacore.com>
7021 * sem_res.adb (Valid_Conversion): Make message a continuation.
7023 2021-05-04 Arnaud Charlet <charlet@adacore.com>
7025 * styleg.adb: Address ??? comments.
7027 2021-05-03 Arnaud Charlet <charlet@adacore.com>
7029 * libgnat/a-stunau.ads, libgnat/a-stunau.adb,
7030 libgnat/a-stunau__shared.adb (Set_String): Remove old version,
7031 replace by a new version taking a callback to set the string.
7033 2021-05-03 Arnaud Charlet <charlet@adacore.com>
7035 * libgnat/a-coorma.ads (Map): Add missing
7036 Preelaborate_Initialization.
7038 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
7040 * exp_ch4.adb (Analyze_Number_Declaration, Expand_N_Op_Expon):
7041 Simplify with Is_Universal_Numeric_Type.
7042 * sem_attr.adb (Resolve_Attribute): Likewise.
7043 * sem_ch3.adb: Likewise.
7044 * sem_ch4.adb (Check_Common_Type, Check_Arithmetic_Pair):
7046 * sem_eval.adb (Eval_Unary_Op, Test_In_Range): Likewise.
7047 * sem_res.adb (Resolve_Arithmetic_Op, Resolve_Membership_Op,
7048 Resolve_Op_Expon, Resolve_Unary_Op, Set_Mixed_Mode_Operand,
7049 Set_Operand_Type): Likewise.
7050 * sem_type.adb (Disambiguate, Find_Unique_Type): Likewise.
7051 * sem_util.adb (Universal_Interpretation): Likewise.
7053 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
7055 * exp_aggr.adb (Max_Aggregate_Size): Add header boxes for nested
7056 routines; move a local constant after nested subprogram bodies;
7059 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
7061 * sem_attr.adb (Analyze_Attribute): Reuse Resolve with implicit
7062 type when analysing attribute Priority.
7063 * sem_ch5.adb (Analyze_Case_Statement): Likewise for a rare case
7064 in analysis of case statements.
7065 (Analyze_Iterator_Specification): Likewise for non-overloaded
7066 domain of iteration.
7068 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
7070 * einfo.adb (Write_Entity_Info): Simplify an Ekind membership
7072 * exp_aggr.adb (Is_CCG_Supported_Aggregate): Likewise.
7074 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
7076 * exp_ch7.adb (Build_Finalize_Statements): Refine type of a
7077 local counter variable.
7078 * exp_dist.adb (Append_Record_Traversal): Refine type of Counter
7080 (Add_Process_Element): Likewise.
7081 (Build_From_Any_Call): Refine type of a local counter variable.
7082 (Build_From_Any_Function): Likewise.
7083 (Build_To_Any_Function): Likewise.
7084 (FA_Rec_Add_Process_Element): Likewise.
7085 (TA_Append_Record_Traversal): Likewise.
7086 (TA_Rec_Add_Process_Element): Likewise.
7088 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
7090 * rtsfind.adb (SPARK_Implicit_Load): Simplify with Discard_Node.
7092 2021-05-03 Arnaud Charlet <charlet@adacore.com>
7094 * Makefile.rtl: Update copyright notice.
7095 * ada_get_targ.adb: Likewise.
7096 * adabkend.adb: Likewise.
7097 * adabkend.ads: Likewise.
7098 * adadecode.c: Likewise.
7099 * adadecode.h: Likewise.
7100 * adaint.c: Likewise.
7101 * adaint.h: Likewise.
7102 * affinity.c: Likewise.
7103 * ali-util.adb: Likewise.
7104 * ali-util.ads: Likewise.
7105 * ali.adb: Likewise.
7106 * ali.ads: Likewise.
7107 * alloc.ads: Likewise.
7108 * argv-lynxos178-raven-cert.c: Likewise.
7110 * aspects.adb: Likewise.
7111 * aspects.ads: Likewise.
7112 * atree.adb: Likewise.
7113 * atree.ads: Likewise.
7114 * atree.h: Likewise.
7115 * aux-io.c: Likewise.
7116 * back_end.adb: Likewise.
7117 * back_end.ads: Likewise.
7118 * bcheck.adb: Likewise.
7119 * bcheck.ads: Likewise.
7120 * binde.adb: Likewise.
7121 * binde.ads: Likewise.
7122 * binderr.adb: Likewise.
7123 * binderr.ads: Likewise.
7124 * bindgen.adb: Likewise.
7125 * bindgen.ads: Likewise.
7126 * bindo-augmentors.adb: Likewise.
7127 * bindo-augmentors.ads: Likewise.
7128 * bindo-builders.adb: Likewise.
7129 * bindo-builders.ads: Likewise.
7130 * bindo-diagnostics.adb: Likewise.
7131 * bindo-diagnostics.ads: Likewise.
7132 * bindo-elaborators.adb: Likewise.
7133 * bindo-elaborators.ads: Likewise.
7134 * bindo-graphs.adb: Likewise.
7135 * bindo-graphs.ads: Likewise.
7136 * bindo-units.adb: Likewise.
7137 * bindo-units.ads: Likewise.
7138 * bindo-validators.adb: Likewise.
7139 * bindo-validators.ads: Likewise.
7140 * bindo-writers.adb: Likewise.
7141 * bindo-writers.ads: Likewise.
7142 * bindo.adb: Likewise.
7143 * bindo.ads: Likewise.
7144 * bindusg.adb: Likewise.
7145 * bindusg.ads: Likewise.
7146 * butil.adb: Likewise.
7147 * butil.ads: Likewise.
7149 * casing.adb: Likewise.
7150 * casing.ads: Likewise.
7151 * ceinfo.adb: Likewise.
7152 * checks.adb: Likewise.
7153 * checks.ads: Likewise.
7155 * clean.adb: Likewise.
7156 * clean.ads: Likewise.
7157 * comperr.adb: Likewise.
7158 * comperr.ads: Likewise.
7159 * contracts.adb: Likewise.
7160 * contracts.ads: Likewise.
7161 * csets.adb: Likewise.
7162 * csets.ads: Likewise.
7163 * csinfo.adb: Likewise.
7164 * cstand.adb: Likewise.
7165 * cstand.ads: Likewise.
7166 * cstreams.c: Likewise.
7167 * ctrl_c.c: Likewise.
7168 * debug.adb: Likewise.
7169 * debug.ads: Likewise.
7170 * debug_a.adb: Likewise.
7171 * debug_a.ads: Likewise.
7172 * einfo.adb: Likewise.
7173 * einfo.ads: Likewise.
7174 * elists.adb: Likewise.
7175 * elists.ads: Likewise.
7176 * elists.h: Likewise.
7179 * err_vars.ads: Likewise.
7180 * errno.c: Likewise.
7181 * errout.adb: Likewise.
7182 * errout.ads: Likewise.
7183 * erroutc.adb: Likewise.
7184 * erroutc.ads: Likewise.
7185 * errutil.adb: Likewise.
7186 * errutil.ads: Likewise.
7187 * eval_fat.adb: Likewise.
7188 * eval_fat.ads: Likewise.
7190 * exp_aggr.adb: Likewise.
7191 * exp_aggr.ads: Likewise.
7192 * exp_atag.adb: Likewise.
7193 * exp_atag.ads: Likewise.
7194 * exp_attr.adb: Likewise.
7195 * exp_attr.ads: Likewise.
7196 * exp_cg.adb: Likewise.
7197 * exp_cg.ads: Likewise.
7198 * exp_ch10.ads: Likewise.
7199 * exp_ch11.adb: Likewise.
7200 * exp_ch11.ads: Likewise.
7201 * exp_ch12.adb: Likewise.
7202 * exp_ch12.ads: Likewise.
7203 * exp_ch13.adb: Likewise.
7204 * exp_ch13.ads: Likewise.
7205 * exp_ch2.adb: Likewise.
7206 * exp_ch2.ads: Likewise.
7207 * exp_ch3.adb: Likewise.
7208 * exp_ch3.ads: Likewise.
7209 * exp_ch4.adb: Likewise.
7210 * exp_ch4.ads: Likewise.
7211 * exp_ch5.adb: Likewise.
7212 * exp_ch5.ads: Likewise.
7213 * exp_ch6.adb: Likewise.
7214 * exp_ch6.ads: Likewise.
7215 * exp_ch7.adb: Likewise.
7216 * exp_ch7.ads: Likewise.
7217 * exp_ch8.adb: Likewise.
7218 * exp_ch8.ads: Likewise.
7219 * exp_ch9.adb: Likewise.
7220 * exp_ch9.ads: Likewise.
7221 * exp_code.adb: Likewise.
7222 * exp_code.ads: Likewise.
7223 * exp_dbug.adb: Likewise.
7224 * exp_dbug.ads: Likewise.
7225 * exp_disp.adb: Likewise.
7226 * exp_disp.ads: Likewise.
7227 * exp_dist.adb: Likewise.
7228 * exp_dist.ads: Likewise.
7229 * exp_fixd.adb: Likewise.
7230 * exp_fixd.ads: Likewise.
7231 * exp_imgv.adb: Likewise.
7232 * exp_imgv.ads: Likewise.
7233 * exp_intr.adb: Likewise.
7234 * exp_intr.ads: Likewise.
7235 * exp_pakd.adb: Likewise.
7236 * exp_pakd.ads: Likewise.
7237 * exp_prag.adb: Likewise.
7238 * exp_prag.ads: Likewise.
7239 * exp_put_image.adb: Likewise.
7240 * exp_put_image.ads: Likewise.
7241 * exp_sel.adb: Likewise.
7242 * exp_sel.ads: Likewise.
7243 * exp_smem.adb: Likewise.
7244 * exp_smem.ads: Likewise.
7245 * exp_spark.adb: Likewise.
7246 * exp_spark.ads: Likewise.
7247 * exp_strm.adb: Likewise.
7248 * exp_strm.ads: Likewise.
7249 * exp_tss.adb: Likewise.
7250 * exp_tss.ads: Likewise.
7251 * exp_unst.adb: Likewise.
7252 * exp_unst.ads: Likewise.
7253 * exp_util.adb: Likewise.
7254 * exp_util.ads: Likewise.
7255 * expander.adb: Likewise.
7256 * expander.ads: Likewise.
7257 * expect.c: Likewise.
7259 * final.c: Likewise.
7260 * fmap.adb: Likewise.
7261 * fmap.ads: Likewise.
7262 * fname-sf.adb: Likewise.
7263 * fname-sf.ads: Likewise.
7264 * fname-uf.adb: Likewise.
7265 * fname-uf.ads: Likewise.
7266 * fname.adb: Likewise.
7267 * fname.ads: Likewise.
7268 * freeze.adb: Likewise.
7269 * freeze.ads: Likewise.
7270 * frontend.adb: Likewise.
7271 * frontend.ads: Likewise.
7272 * gcc-interface/ada-tree.h: Likewise.
7273 * gcc-interface/ada.h: Likewise.
7274 * gcc-interface/cuintp.c: Likewise.
7275 * gcc-interface/decl.c: Likewise.
7276 * gcc-interface/gadaint.h: Likewise.
7277 * gcc-interface/gigi.h: Likewise.
7278 * gcc-interface/lang-specs.h: Likewise.
7279 * gcc-interface/misc.c: Likewise.
7280 * gcc-interface/system.ads: Likewise.
7281 * gcc-interface/targtyps.c: Likewise.
7282 * gcc-interface/trans.c: Likewise.
7283 * gcc-interface/utils.c: Likewise.
7284 * gcc-interface/utils2.c: Likewise.
7285 * get_scos.adb: Likewise.
7286 * get_scos.ads: Likewise.
7287 * get_targ.adb: Likewise.
7288 * get_targ.ads: Likewise.
7289 * ghost.adb: Likewise.
7290 * ghost.ads: Likewise.
7291 * gnat1drv.adb: Likewise.
7292 * gnat1drv.ads: Likewise.
7293 * gnat_cuda.adb: Likewise.
7294 * gnat_cuda.ads: Likewise.
7295 * gnatbind.adb: Likewise.
7296 * gnatbind.ads: Likewise.
7297 * gnatchop.adb: Likewise.
7298 * gnatclean.adb: Likewise.
7299 * gnatcmd.adb: Likewise.
7300 * gnatcmd.ads: Likewise.
7301 * gnatdll.adb: Likewise.
7302 * gnatfind.adb: Likewise.
7303 * gnatkr.adb: Likewise.
7304 * gnatkr.ads: Likewise.
7305 * gnatlink.adb: Likewise.
7306 * gnatlink.ads: Likewise.
7307 * gnatls.adb: Likewise.
7308 * gnatls.ads: Likewise.
7309 * gnatmake.adb: Likewise.
7310 * gnatmake.ads: Likewise.
7311 * gnatname.adb: Likewise.
7312 * gnatname.ads: Likewise.
7313 * gnatprep.adb: Likewise.
7314 * gnatprep.ads: Likewise.
7315 * gnatvsn.adb: Likewise.
7316 * gnatvsn.ads: Likewise.
7317 * gnatxref.adb: Likewise.
7318 * gprep.adb: Likewise.
7319 * gprep.ads: Likewise.
7320 * gsocket.h: Likewise.
7321 * hostparm.ads: Likewise.
7322 * impunit.adb: Likewise.
7323 * impunit.ads: Likewise.
7324 * indepsw-aix.adb: Likewise.
7325 * indepsw-darwin.adb: Likewise.
7326 * indepsw-gnu.adb: Likewise.
7327 * indepsw.adb: Likewise.
7328 * indepsw.ads: Likewise.
7330 * initialize.c: Likewise.
7331 * inline.adb: Likewise.
7332 * inline.ads: Likewise.
7333 * itypes.adb: Likewise.
7334 * itypes.ads: Likewise.
7335 * krunch.adb: Likewise.
7336 * krunch.ads: Likewise.
7337 * layout.adb: Likewise.
7338 * layout.ads: Likewise.
7339 * lib-list.adb: Likewise.
7340 * lib-load.adb: Likewise.
7341 * lib-load.ads: Likewise.
7342 * lib-sort.adb: Likewise.
7343 * lib-util.adb: Likewise.
7344 * lib-util.ads: Likewise.
7345 * lib-writ.adb: Likewise.
7346 * lib-writ.ads: Likewise.
7347 * lib-xref-spark_specific.adb: Likewise.
7348 * lib-xref.adb: Likewise.
7349 * lib-xref.ads: Likewise.
7350 * lib.adb: Likewise.
7351 * lib.ads: Likewise.
7352 * libgnarl/a-astaco.adb: Likewise.
7353 * libgnarl/a-dispat.adb: Likewise.
7354 * libgnarl/a-dynpri.adb: Likewise.
7355 * libgnarl/a-etgrbu.ads: Likewise.
7356 * libgnarl/a-exetim__darwin.adb: Likewise.
7357 * libgnarl/a-exetim__default.ads: Likewise.
7358 * libgnarl/a-exetim__mingw.adb: Likewise.
7359 * libgnarl/a-exetim__mingw.ads: Likewise.
7360 * libgnarl/a-exetim__posix.adb: Likewise.
7361 * libgnarl/a-interr.adb: Likewise.
7362 * libgnarl/a-interr.ads: Likewise.
7363 * libgnarl/a-intnam.ads: Likewise.
7364 * libgnarl/a-intnam__aix.ads: Likewise.
7365 * libgnarl/a-intnam__darwin.ads: Likewise.
7366 * libgnarl/a-intnam__dragonfly.ads: Likewise.
7367 * libgnarl/a-intnam__dummy.ads: Likewise.
7368 * libgnarl/a-intnam__freebsd.ads: Likewise.
7369 * libgnarl/a-intnam__hpux.ads: Likewise.
7370 * libgnarl/a-intnam__linux.ads: Likewise.
7371 * libgnarl/a-intnam__lynxos.ads: Likewise.
7372 * libgnarl/a-intnam__mingw.ads: Likewise.
7373 * libgnarl/a-intnam__qnx.ads: Likewise.
7374 * libgnarl/a-intnam__rtems.ads: Likewise.
7375 * libgnarl/a-intnam__solaris.ads: Likewise.
7376 * libgnarl/a-intnam__vxworks.ads: Likewise.
7377 * libgnarl/a-reatim.adb: Likewise.
7378 * libgnarl/a-reatim.ads: Likewise.
7379 * libgnarl/a-retide.adb: Likewise.
7380 * libgnarl/a-retide.ads: Likewise.
7381 * libgnarl/a-rttiev.adb: Likewise.
7382 * libgnarl/a-rttiev.ads: Likewise.
7383 * libgnarl/a-synbar.adb: Likewise.
7384 * libgnarl/a-synbar.ads: Likewise.
7385 * libgnarl/a-synbar__posix.adb: Likewise.
7386 * libgnarl/a-synbar__posix.ads: Likewise.
7387 * libgnarl/a-sytaco.adb: Likewise.
7388 * libgnarl/a-sytaco.ads: Likewise.
7389 * libgnarl/a-tasatt.adb: Likewise.
7390 * libgnarl/a-tasatt.ads: Likewise.
7391 * libgnarl/a-taside.adb: Likewise.
7392 * libgnarl/a-taside.ads: Likewise.
7393 * libgnarl/a-tasini.adb: Likewise.
7394 * libgnarl/a-tasini.ads: Likewise.
7395 * libgnarl/a-taster.adb: Likewise.
7396 * libgnarl/g-boubuf.adb: Likewise.
7397 * libgnarl/g-boubuf.ads: Likewise.
7398 * libgnarl/g-boumai.ads: Likewise.
7399 * libgnarl/g-semaph.adb: Likewise.
7400 * libgnarl/g-semaph.ads: Likewise.
7401 * libgnarl/g-signal.adb: Likewise.
7402 * libgnarl/g-signal.ads: Likewise.
7403 * libgnarl/g-tastus.ads: Likewise.
7404 * libgnarl/g-thread.adb: Likewise.
7405 * libgnarl/g-thread.ads: Likewise.
7406 * libgnarl/i-vxinco.adb: Likewise.
7407 * libgnarl/i-vxinco.ads: Likewise.
7408 * libgnarl/s-inmaop.ads: Likewise.
7409 * libgnarl/s-inmaop__dummy.adb: Likewise.
7410 * libgnarl/s-inmaop__posix.adb: Likewise.
7411 * libgnarl/s-inmaop__vxworks.adb: Likewise.
7412 * libgnarl/s-interr.adb: Likewise.
7413 * libgnarl/s-interr.ads: Likewise.
7414 * libgnarl/s-interr__dummy.adb: Likewise.
7415 * libgnarl/s-interr__hwint.adb: Likewise.
7416 * libgnarl/s-interr__sigaction.adb: Likewise.
7417 * libgnarl/s-interr__vxworks.adb: Likewise.
7418 * libgnarl/s-intman.ads: Likewise.
7419 * libgnarl/s-intman__android.adb: Likewise.
7420 * libgnarl/s-intman__dummy.adb: Likewise.
7421 * libgnarl/s-intman__lynxos.adb: Likewise.
7422 * libgnarl/s-intman__mingw.adb: Likewise.
7423 * libgnarl/s-intman__posix.adb: Likewise.
7424 * libgnarl/s-intman__qnx.adb: Likewise.
7425 * libgnarl/s-intman__solaris.adb: Likewise.
7426 * libgnarl/s-intman__susv3.adb: Likewise.
7427 * libgnarl/s-intman__vxworks.adb: Likewise.
7428 * libgnarl/s-intman__vxworks.ads: Likewise.
7429 * libgnarl/s-linux.ads: Likewise.
7430 * libgnarl/s-linux__alpha.ads: Likewise.
7431 * libgnarl/s-linux__android.ads: Likewise.
7432 * libgnarl/s-linux__hppa.ads: Likewise.
7433 * libgnarl/s-linux__mips.ads: Likewise.
7434 * libgnarl/s-linux__riscv.ads: Likewise.
7435 * libgnarl/s-linux__sparc.ads: Likewise.
7436 * libgnarl/s-linux__x32.ads: Likewise.
7437 * libgnarl/s-mudido.adb: Likewise.
7438 * libgnarl/s-mudido__affinity.adb: Likewise.
7439 * libgnarl/s-osinte__aix.adb: Likewise.
7440 * libgnarl/s-osinte__aix.ads: Likewise.
7441 * libgnarl/s-osinte__android.adb: Likewise.
7442 * libgnarl/s-osinte__android.ads: Likewise.
7443 * libgnarl/s-osinte__darwin.adb: Likewise.
7444 * libgnarl/s-osinte__darwin.ads: Likewise.
7445 * libgnarl/s-osinte__dragonfly.adb: Likewise.
7446 * libgnarl/s-osinte__dragonfly.ads: Likewise.
7447 * libgnarl/s-osinte__dummy.ads: Likewise.
7448 * libgnarl/s-osinte__freebsd.adb: Likewise.
7449 * libgnarl/s-osinte__freebsd.ads: Likewise.
7450 * libgnarl/s-osinte__gnu.adb: Likewise.
7451 * libgnarl/s-osinte__gnu.ads: Likewise.
7452 * libgnarl/s-osinte__hpux-dce.adb: Likewise.
7453 * libgnarl/s-osinte__hpux-dce.ads: Likewise.
7454 * libgnarl/s-osinte__hpux.ads: Likewise.
7455 * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
7456 * libgnarl/s-osinte__linux.ads: Likewise.
7457 * libgnarl/s-osinte__lynxos178.adb: Likewise.
7458 * libgnarl/s-osinte__lynxos178e.ads: Likewise.
7459 * libgnarl/s-osinte__mingw.ads: Likewise.
7460 * libgnarl/s-osinte__posix.adb: Likewise.
7461 * libgnarl/s-osinte__qnx.adb: Likewise.
7462 * libgnarl/s-osinte__qnx.ads: Likewise.
7463 * libgnarl/s-osinte__rtems.adb: Likewise.
7464 * libgnarl/s-osinte__rtems.ads: Likewise.
7465 * libgnarl/s-osinte__solaris.adb: Likewise.
7466 * libgnarl/s-osinte__solaris.ads: Likewise.
7467 * libgnarl/s-osinte__vxworks.adb: Likewise.
7468 * libgnarl/s-osinte__vxworks.ads: Likewise.
7469 * libgnarl/s-osinte__x32.adb: Likewise.
7470 * libgnarl/s-proinf.adb: Likewise.
7471 * libgnarl/s-proinf.ads: Likewise.
7472 * libgnarl/s-qnx.ads: Likewise.
7473 * libgnarl/s-solita.adb: Likewise.
7474 * libgnarl/s-solita.ads: Likewise.
7475 * libgnarl/s-stusta.adb: Likewise.
7476 * libgnarl/s-stusta.ads: Likewise.
7477 * libgnarl/s-taasde.adb: Likewise.
7478 * libgnarl/s-taasde.ads: Likewise.
7479 * libgnarl/s-tadeca.adb: Likewise.
7480 * libgnarl/s-tadeca.ads: Likewise.
7481 * libgnarl/s-tadert.adb: Likewise.
7482 * libgnarl/s-tadert.ads: Likewise.
7483 * libgnarl/s-taenca.adb: Likewise.
7484 * libgnarl/s-taenca.ads: Likewise.
7485 * libgnarl/s-taprob.adb: Likewise.
7486 * libgnarl/s-taprob.ads: Likewise.
7487 * libgnarl/s-taprop.ads: Likewise.
7488 * libgnarl/s-taprop__dummy.adb: Likewise.
7489 * libgnarl/s-taprop__hpux-dce.adb: Likewise.
7490 * libgnarl/s-taprop__linux.adb: Likewise.
7491 * libgnarl/s-taprop__mingw.adb: Likewise.
7492 * libgnarl/s-taprop__posix.adb: Likewise.
7493 * libgnarl/s-taprop__qnx.adb: Likewise.
7494 * libgnarl/s-taprop__solaris.adb: Likewise.
7495 * libgnarl/s-taprop__vxworks.adb: Likewise.
7496 * libgnarl/s-tarest.adb: Likewise.
7497 * libgnarl/s-tarest.ads: Likewise.
7498 * libgnarl/s-tasdeb.adb: Likewise.
7499 * libgnarl/s-tasdeb.ads: Likewise.
7500 * libgnarl/s-tasinf.adb: Likewise.
7501 * libgnarl/s-tasinf.ads: Likewise.
7502 * libgnarl/s-tasinf__linux.adb: Likewise.
7503 * libgnarl/s-tasinf__linux.ads: Likewise.
7504 * libgnarl/s-tasinf__mingw.adb: Likewise.
7505 * libgnarl/s-tasinf__mingw.ads: Likewise.
7506 * libgnarl/s-tasinf__solaris.adb: Likewise.
7507 * libgnarl/s-tasinf__solaris.ads: Likewise.
7508 * libgnarl/s-tasinf__vxworks.ads: Likewise.
7509 * libgnarl/s-tasini.adb: Likewise.
7510 * libgnarl/s-tasini.ads: Likewise.
7511 * libgnarl/s-taskin.adb: Likewise.
7512 * libgnarl/s-taskin.ads: Likewise.
7513 * libgnarl/s-taspri__dummy.ads: Likewise.
7514 * libgnarl/s-taspri__hpux-dce.ads: Likewise.
7515 * libgnarl/s-taspri__lynxos.ads: Likewise.
7516 * libgnarl/s-taspri__mingw.ads: Likewise.
7517 * libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
7518 * libgnarl/s-taspri__posix.ads: Likewise.
7519 * libgnarl/s-taspri__solaris.ads: Likewise.
7520 * libgnarl/s-taspri__vxworks.ads: Likewise.
7521 * libgnarl/s-tasque.adb: Likewise.
7522 * libgnarl/s-tasque.ads: Likewise.
7523 * libgnarl/s-tasren.adb: Likewise.
7524 * libgnarl/s-tasren.ads: Likewise.
7525 * libgnarl/s-tasres.ads: Likewise.
7526 * libgnarl/s-tassta.adb: Likewise.
7527 * libgnarl/s-tassta.ads: Likewise.
7528 * libgnarl/s-tasuti.adb: Likewise.
7529 * libgnarl/s-tasuti.ads: Likewise.
7530 * libgnarl/s-tataat.adb: Likewise.
7531 * libgnarl/s-tataat.ads: Likewise.
7532 * libgnarl/s-tpinop.adb: Likewise.
7533 * libgnarl/s-tpinop.ads: Likewise.
7534 * libgnarl/s-tpoaal.adb: Likewise.
7535 * libgnarl/s-tpoben.adb: Likewise.
7536 * libgnarl/s-tpoben.ads: Likewise.
7537 * libgnarl/s-tpobmu.adb: Likewise.
7538 * libgnarl/s-tpobmu.ads: Likewise.
7539 * libgnarl/s-tpobop.adb: Likewise.
7540 * libgnarl/s-tpobop.ads: Likewise.
7541 * libgnarl/s-tpopmo.adb: Likewise.
7542 * libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
7543 * libgnarl/s-tpopsp__posix.adb: Likewise.
7544 * libgnarl/s-tpopsp__solaris.adb: Likewise.
7545 * libgnarl/s-tpopsp__tls.adb: Likewise.
7546 * libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
7547 * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
7548 * libgnarl/s-tpopsp__vxworks.adb: Likewise.
7549 * libgnarl/s-tporft.adb: Likewise.
7550 * libgnarl/s-tposen.adb: Likewise.
7551 * libgnarl/s-tposen.ads: Likewise.
7552 * libgnarl/s-vxwext.adb: Likewise.
7553 * libgnarl/s-vxwext.ads: Likewise.
7554 * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
7555 * libgnarl/s-vxwext__kernel.adb: Likewise.
7556 * libgnarl/s-vxwext__kernel.ads: Likewise.
7557 * libgnarl/s-vxwext__noints.adb: Likewise.
7558 * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
7559 * libgnarl/s-vxwext__rtp.adb: Likewise.
7560 * libgnarl/s-vxwext__rtp.ads: Likewise.
7561 * libgnarl/s-vxwext__vthreads.ads: Likewise.
7562 * libgnarl/s-vxwork__aarch64.ads: Likewise.
7563 * libgnarl/s-vxwork__arm.ads: Likewise.
7564 * libgnarl/s-vxwork__ppc.ads: Likewise.
7565 * libgnarl/s-vxwork__x86.ads: Likewise.
7566 * libgnarl/thread.c: Likewise.
7567 * libgnat/a-assert.adb: Likewise.
7568 * libgnat/a-assert.ads: Likewise.
7569 * libgnat/a-btgbso.adb: Likewise.
7570 * libgnat/a-btgbso.ads: Likewise.
7571 * libgnat/a-calari.adb: Likewise.
7572 * libgnat/a-calari.ads: Likewise.
7573 * libgnat/a-calcon.adb: Likewise.
7574 * libgnat/a-calcon.ads: Likewise.
7575 * libgnat/a-caldel.adb: Likewise.
7576 * libgnat/a-caldel.ads: Likewise.
7577 * libgnat/a-calend.adb: Likewise.
7578 * libgnat/a-calend.ads: Likewise.
7579 * libgnat/a-calfor.adb: Likewise.
7580 * libgnat/a-calfor.ads: Likewise.
7581 * libgnat/a-catizo.adb: Likewise.
7582 * libgnat/a-cbdlli.adb: Likewise.
7583 * libgnat/a-cbdlli.ads: Likewise.
7584 * libgnat/a-cbhama.adb: Likewise.
7585 * libgnat/a-cbhama.ads: Likewise.
7586 * libgnat/a-cbhase.adb: Likewise.
7587 * libgnat/a-cbhase.ads: Likewise.
7588 * libgnat/a-cbmutr.adb: Likewise.
7589 * libgnat/a-cbmutr.ads: Likewise.
7590 * libgnat/a-cborma.adb: Likewise.
7591 * libgnat/a-cborma.ads: Likewise.
7592 * libgnat/a-cborse.adb: Likewise.
7593 * libgnat/a-cborse.ads: Likewise.
7594 * libgnat/a-cbprqu.adb: Likewise.
7595 * libgnat/a-cbprqu.ads: Likewise.
7596 * libgnat/a-cbsyqu.adb: Likewise.
7597 * libgnat/a-cbsyqu.ads: Likewise.
7598 * libgnat/a-cdlili.adb: Likewise.
7599 * libgnat/a-cdlili.ads: Likewise.
7600 * libgnat/a-cfdlli.adb: Likewise.
7601 * libgnat/a-cfdlli.ads: Likewise.
7602 * libgnat/a-cfhama.adb: Likewise.
7603 * libgnat/a-cfhama.ads: Likewise.
7604 * libgnat/a-cfhase.adb: Likewise.
7605 * libgnat/a-cfhase.ads: Likewise.
7606 * libgnat/a-cfinve.adb: Likewise.
7607 * libgnat/a-cfinve.ads: Likewise.
7608 * libgnat/a-cforma.adb: Likewise.
7609 * libgnat/a-cforma.ads: Likewise.
7610 * libgnat/a-cforse.adb: Likewise.
7611 * libgnat/a-cforse.ads: Likewise.
7612 * libgnat/a-cgaaso.adb: Likewise.
7613 * libgnat/a-cgaaso.ads: Likewise.
7614 * libgnat/a-cgarso.adb: Likewise.
7615 * libgnat/a-cgcaso.adb: Likewise.
7616 * libgnat/a-chacon.adb: Likewise.
7617 * libgnat/a-chacon.ads: Likewise.
7618 * libgnat/a-chahan.adb: Likewise.
7619 * libgnat/a-chahan.ads: Likewise.
7620 * libgnat/a-chlat9.ads: Likewise.
7621 * libgnat/a-chtgbk.adb: Likewise.
7622 * libgnat/a-chtgbk.ads: Likewise.
7623 * libgnat/a-chtgbo.adb: Likewise.
7624 * libgnat/a-chtgbo.ads: Likewise.
7625 * libgnat/a-chtgke.adb: Likewise.
7626 * libgnat/a-chtgke.ads: Likewise.
7627 * libgnat/a-chtgop.adb: Likewise.
7628 * libgnat/a-chtgop.ads: Likewise.
7629 * libgnat/a-chzla1.ads: Likewise.
7630 * libgnat/a-chzla9.ads: Likewise.
7631 * libgnat/a-cidlli.adb: Likewise.
7632 * libgnat/a-cidlli.ads: Likewise.
7633 * libgnat/a-cihama.adb: Likewise.
7634 * libgnat/a-cihama.ads: Likewise.
7635 * libgnat/a-cihase.adb: Likewise.
7636 * libgnat/a-cihase.ads: Likewise.
7637 * libgnat/a-cimutr.adb: Likewise.
7638 * libgnat/a-cimutr.ads: Likewise.
7639 * libgnat/a-ciorma.adb: Likewise.
7640 * libgnat/a-ciorma.ads: Likewise.
7641 * libgnat/a-ciormu.adb: Likewise.
7642 * libgnat/a-ciormu.ads: Likewise.
7643 * libgnat/a-ciorse.adb: Likewise.
7644 * libgnat/a-ciorse.ads: Likewise.
7645 * libgnat/a-clrefi.adb: Likewise.
7646 * libgnat/a-clrefi.ads: Likewise.
7647 * libgnat/a-coboho.adb: Likewise.
7648 * libgnat/a-coboho.ads: Likewise.
7649 * libgnat/a-cobove.adb: Likewise.
7650 * libgnat/a-cobove.ads: Likewise.
7651 * libgnat/a-cofove.adb: Likewise.
7652 * libgnat/a-cofove.ads: Likewise.
7653 * libgnat/a-cofuba.adb: Likewise.
7654 * libgnat/a-cofuba.ads: Likewise.
7655 * libgnat/a-cofuma.adb: Likewise.
7656 * libgnat/a-cofuma.ads: Likewise.
7657 * libgnat/a-cofuse.adb: Likewise.
7658 * libgnat/a-cofuse.ads: Likewise.
7659 * libgnat/a-cofuve.adb: Likewise.
7660 * libgnat/a-cofuve.ads: Likewise.
7661 * libgnat/a-cogeso.adb: Likewise.
7662 * libgnat/a-cogeso.ads: Likewise.
7663 * libgnat/a-cohama.adb: Likewise.
7664 * libgnat/a-cohama.ads: Likewise.
7665 * libgnat/a-cohase.adb: Likewise.
7666 * libgnat/a-cohase.ads: Likewise.
7667 * libgnat/a-cohata.ads: Likewise.
7668 * libgnat/a-coinho.adb: Likewise.
7669 * libgnat/a-coinho.ads: Likewise.
7670 * libgnat/a-coinho__shared.adb: Likewise.
7671 * libgnat/a-coinho__shared.ads: Likewise.
7672 * libgnat/a-coinve.adb: Likewise.
7673 * libgnat/a-coinve.ads: Likewise.
7674 * libgnat/a-colien.adb: Likewise.
7675 * libgnat/a-colien.ads: Likewise.
7676 * libgnat/a-colire.adb: Likewise.
7677 * libgnat/a-colire.ads: Likewise.
7678 * libgnat/a-comlin.adb: Likewise.
7679 * libgnat/a-comlin.ads: Likewise.
7680 * libgnat/a-comutr.adb: Likewise.
7681 * libgnat/a-comutr.ads: Likewise.
7682 * libgnat/a-conhel.adb: Likewise.
7683 * libgnat/a-conhel.ads: Likewise.
7684 * libgnat/a-convec.adb: Likewise.
7685 * libgnat/a-convec.ads: Likewise.
7686 * libgnat/a-coorma.adb: Likewise.
7687 * libgnat/a-coorma.ads: Likewise.
7688 * libgnat/a-coormu.adb: Likewise.
7689 * libgnat/a-coormu.ads: Likewise.
7690 * libgnat/a-coorse.adb: Likewise.
7691 * libgnat/a-coorse.ads: Likewise.
7692 * libgnat/a-coprnu.adb: Likewise.
7693 * libgnat/a-coprnu.ads: Likewise.
7694 * libgnat/a-crbltr.ads: Likewise.
7695 * libgnat/a-crbtgk.adb: Likewise.
7696 * libgnat/a-crbtgk.ads: Likewise.
7697 * libgnat/a-crbtgo.adb: Likewise.
7698 * libgnat/a-crbtgo.ads: Likewise.
7699 * libgnat/a-crdlli.adb: Likewise.
7700 * libgnat/a-crdlli.ads: Likewise.
7701 * libgnat/a-csquin.ads: Likewise.
7702 * libgnat/a-cuprqu.adb: Likewise.
7703 * libgnat/a-cuprqu.ads: Likewise.
7704 * libgnat/a-cusyqu.adb: Likewise.
7705 * libgnat/a-cusyqu.ads: Likewise.
7706 * libgnat/a-cwila1.ads: Likewise.
7707 * libgnat/a-cwila9.ads: Likewise.
7708 * libgnat/a-decima.adb: Likewise.
7709 * libgnat/a-decima.ads: Likewise.
7710 * libgnat/a-decima__128.ads: Likewise.
7711 * libgnat/a-dhfina.adb: Likewise.
7712 * libgnat/a-dhfina.ads: Likewise.
7713 * libgnat/a-diocst.adb: Likewise.
7714 * libgnat/a-diocst.ads: Likewise.
7715 * libgnat/a-direct.adb: Likewise.
7716 * libgnat/a-direct.ads: Likewise.
7717 * libgnat/a-direio.adb: Likewise.
7718 * libgnat/a-direio.ads: Likewise.
7719 * libgnat/a-dirval.adb: Likewise.
7720 * libgnat/a-dirval.ads: Likewise.
7721 * libgnat/a-dirval__mingw.adb: Likewise.
7722 * libgnat/a-einuoc.adb: Likewise.
7723 * libgnat/a-einuoc.ads: Likewise.
7724 * libgnat/a-elchha.adb: Likewise.
7725 * libgnat/a-elchha.ads: Likewise.
7726 * libgnat/a-elchha__vxworks-ppc-full.adb: Likewise.
7727 * libgnat/a-envvar.adb: Likewise.
7728 * libgnat/a-excach.adb: Likewise.
7729 * libgnat/a-except.adb: Likewise.
7730 * libgnat/a-except.ads: Likewise.
7731 * libgnat/a-exctra.adb: Likewise.
7732 * libgnat/a-exctra.ads: Likewise.
7733 * libgnat/a-exexda.adb: Likewise.
7734 * libgnat/a-exexpr.adb: Likewise.
7735 * libgnat/a-exextr.adb: Likewise.
7736 * libgnat/a-exstat.adb: Likewise.
7737 * libgnat/a-finali.adb: Likewise.
7738 * libgnat/a-finali.ads: Likewise.
7739 * libgnat/a-locale.adb: Likewise.
7740 * libgnat/a-locale.ads: Likewise.
7741 * libgnat/a-nagefl.ads: Likewise.
7742 * libgnat/a-naliop.ads: Likewise.
7743 * libgnat/a-naliop__nolibm.ads: Likewise.
7744 * libgnat/a-nallfl.ads: Likewise.
7745 * libgnat/a-nallfl__wraplf.ads: Likewise.
7746 * libgnat/a-nalofl.ads: Likewise.
7747 * libgnat/a-nashfl.ads: Likewise.
7748 * libgnat/a-nashfl__wraplf.ads: Likewise.
7749 * libgnat/a-nbnbin.adb: Likewise.
7750 * libgnat/a-nbnbin__gmp.adb: Likewise.
7751 * libgnat/a-nbnbre.adb: Likewise.
7752 * libgnat/a-ngcefu.adb: Likewise.
7753 * libgnat/a-ngcoar.adb: Likewise.
7754 * libgnat/a-ngcoty.adb: Likewise.
7755 * libgnat/a-ngcoty.ads: Likewise.
7756 * libgnat/a-ngelfu.adb: Likewise.
7757 * libgnat/a-ngelfu.ads: Likewise.
7758 * libgnat/a-ngrear.adb: Likewise.
7759 * libgnat/a-ngrear.ads: Likewise.
7760 * libgnat/a-nuauco.ads: Likewise.
7761 * libgnat/a-nuauco__x86.ads: Likewise.
7762 * libgnat/a-nuaufl.ads: Likewise.
7763 * libgnat/a-nuaufl__wraplf.ads: Likewise.
7764 * libgnat/a-nudira.adb: Likewise.
7765 * libgnat/a-nudira.ads: Likewise.
7766 * libgnat/a-nuflra.adb: Likewise.
7767 * libgnat/a-nuflra.ads: Likewise.
7768 * libgnat/a-numaux.ads: Likewise.
7769 * libgnat/a-rbtgbk.adb: Likewise.
7770 * libgnat/a-rbtgbk.ads: Likewise.
7771 * libgnat/a-rbtgbo.adb: Likewise.
7772 * libgnat/a-rbtgbo.ads: Likewise.
7773 * libgnat/a-rbtgso.adb: Likewise.
7774 * libgnat/a-rbtgso.ads: Likewise.
7775 * libgnat/a-sbecin.adb: Likewise.
7776 * libgnat/a-sbecin.ads: Likewise.
7777 * libgnat/a-sbhcin.adb: Likewise.
7778 * libgnat/a-sbhcin.ads: Likewise.
7779 * libgnat/a-sblcin.adb: Likewise.
7780 * libgnat/a-sblcin.ads: Likewise.
7781 * libgnat/a-secain.adb: Likewise.
7782 * libgnat/a-secain.ads: Likewise.
7783 * libgnat/a-sequio.adb: Likewise.
7784 * libgnat/a-sequio.ads: Likewise.
7785 * libgnat/a-sfecin.ads: Likewise.
7786 * libgnat/a-sfhcin.ads: Likewise.
7787 * libgnat/a-sflcin.ads: Likewise.
7788 * libgnat/a-shcain.adb: Likewise.
7789 * libgnat/a-shcain.ads: Likewise.
7790 * libgnat/a-siocst.adb: Likewise.
7791 * libgnat/a-siocst.ads: Likewise.
7792 * libgnat/a-slcain.adb: Likewise.
7793 * libgnat/a-slcain.ads: Likewise.
7794 * libgnat/a-ssicst.adb: Likewise.
7795 * libgnat/a-ssicst.ads: Likewise.
7796 * libgnat/a-stboha.adb: Likewise.
7797 * libgnat/a-stmaco.ads: Likewise.
7798 * libgnat/a-stobbu.adb: Likewise.
7799 * libgnat/a-stobbu.ads: Likewise.
7800 * libgnat/a-stobfi.adb: Likewise.
7801 * libgnat/a-stobfi.ads: Likewise.
7802 * libgnat/a-storio.adb: Likewise.
7803 * libgnat/a-stoubu.adb: Likewise.
7804 * libgnat/a-stoubu.ads: Likewise.
7805 * libgnat/a-stoufi.adb: Likewise.
7806 * libgnat/a-stoufi.ads: Likewise.
7807 * libgnat/a-stoufo.adb: Likewise.
7808 * libgnat/a-stoufo.ads: Likewise.
7809 * libgnat/a-stouut.adb: Likewise.
7810 * libgnat/a-stouut.ads: Likewise.
7811 * libgnat/a-strbou.adb: Likewise.
7812 * libgnat/a-strbou.ads: Likewise.
7813 * libgnat/a-stream.adb: Likewise.
7814 * libgnat/a-stream.ads: Likewise.
7815 * libgnat/a-strfix.adb: Likewise.
7816 * libgnat/a-strhas.adb: Likewise.
7817 * libgnat/a-strmap.adb: Likewise.
7818 * libgnat/a-strmap.ads: Likewise.
7819 * libgnat/a-strsea.adb: Likewise.
7820 * libgnat/a-strsea.ads: Likewise.
7821 * libgnat/a-strsto.ads: Likewise.
7822 * libgnat/a-strsup.adb: Likewise.
7823 * libgnat/a-strsup.ads: Likewise.
7824 * libgnat/a-strunb.adb: Likewise.
7825 * libgnat/a-strunb.ads: Likewise.
7826 * libgnat/a-strunb__shared.adb: Likewise.
7827 * libgnat/a-strunb__shared.ads: Likewise.
7828 * libgnat/a-ststbo.adb: Likewise.
7829 * libgnat/a-ststbo.ads: Likewise.
7830 * libgnat/a-ststio.adb: Likewise.
7831 * libgnat/a-ststio.ads: Likewise.
7832 * libgnat/a-ststun.adb: Likewise.
7833 * libgnat/a-ststun.ads: Likewise.
7834 * libgnat/a-stteou.ads: Likewise.
7835 * libgnat/a-stunau.adb: Likewise.
7836 * libgnat/a-stunau.ads: Likewise.
7837 * libgnat/a-stunau__shared.adb: Likewise.
7838 * libgnat/a-stunha.adb: Likewise.
7839 * libgnat/a-stuten.adb: Likewise.
7840 * libgnat/a-stwibo.adb: Likewise.
7841 * libgnat/a-stwibo.ads: Likewise.
7842 * libgnat/a-stwifi.adb: Likewise.
7843 * libgnat/a-stwiha.adb: Likewise.
7844 * libgnat/a-stwima.adb: Likewise.
7845 * libgnat/a-stwima.ads: Likewise.
7846 * libgnat/a-stwise.adb: Likewise.
7847 * libgnat/a-stwise.ads: Likewise.
7848 * libgnat/a-stwisu.adb: Likewise.
7849 * libgnat/a-stwisu.ads: Likewise.
7850 * libgnat/a-stwiun.adb: Likewise.
7851 * libgnat/a-stwiun.ads: Likewise.
7852 * libgnat/a-stwiun__shared.adb: Likewise.
7853 * libgnat/a-stwiun__shared.ads: Likewise.
7854 * libgnat/a-stzbou.adb: Likewise.
7855 * libgnat/a-stzbou.ads: Likewise.
7856 * libgnat/a-stzfix.adb: Likewise.
7857 * libgnat/a-stzhas.adb: Likewise.
7858 * libgnat/a-stzmap.adb: Likewise.
7859 * libgnat/a-stzmap.ads: Likewise.
7860 * libgnat/a-stzsea.adb: Likewise.
7861 * libgnat/a-stzsea.ads: Likewise.
7862 * libgnat/a-stzsup.adb: Likewise.
7863 * libgnat/a-stzsup.ads: Likewise.
7864 * libgnat/a-stzunb.adb: Likewise.
7865 * libgnat/a-stzunb.ads: Likewise.
7866 * libgnat/a-stzunb__shared.adb: Likewise.
7867 * libgnat/a-stzunb__shared.ads: Likewise.
7868 * libgnat/a-suecin.adb: Likewise.
7869 * libgnat/a-suecin.ads: Likewise.
7870 * libgnat/a-suenco.adb: Likewise.
7871 * libgnat/a-suenst.adb: Likewise.
7872 * libgnat/a-suewst.adb: Likewise.
7873 * libgnat/a-suezst.adb: Likewise.
7874 * libgnat/a-suhcin.adb: Likewise.
7875 * libgnat/a-suhcin.ads: Likewise.
7876 * libgnat/a-sulcin.adb: Likewise.
7877 * libgnat/a-sulcin.ads: Likewise.
7878 * libgnat/a-suteio.adb: Likewise.
7879 * libgnat/a-suteio.ads: Likewise.
7880 * libgnat/a-suteio__shared.adb: Likewise.
7881 * libgnat/a-swbwha.adb: Likewise.
7882 * libgnat/a-swmwco.ads: Likewise.
7883 * libgnat/a-swunau.adb: Likewise.
7884 * libgnat/a-swunau.ads: Likewise.
7885 * libgnat/a-swunau__shared.adb: Likewise.
7886 * libgnat/a-swuwha.adb: Likewise.
7887 * libgnat/a-swuwti.adb: Likewise.
7888 * libgnat/a-swuwti.ads: Likewise.
7889 * libgnat/a-swuwti__shared.adb: Likewise.
7890 * libgnat/a-szbzha.adb: Likewise.
7891 * libgnat/a-szmzco.ads: Likewise.
7892 * libgnat/a-szunau.adb: Likewise.
7893 * libgnat/a-szunau.ads: Likewise.
7894 * libgnat/a-szunau__shared.adb: Likewise.
7895 * libgnat/a-szuzha.adb: Likewise.
7896 * libgnat/a-szuzti.adb: Likewise.
7897 * libgnat/a-szuzti.ads: Likewise.
7898 * libgnat/a-szuzti__shared.adb: Likewise.
7899 * libgnat/a-tags.adb: Likewise.
7900 * libgnat/a-tags.ads: Likewise.
7901 * libgnat/a-teioed.adb: Likewise.
7902 * libgnat/a-teioed.ads: Likewise.
7903 * libgnat/a-textio.adb: Likewise.
7904 * libgnat/a-textio.ads: Likewise.
7905 * libgnat/a-tiboio.adb: Likewise.
7906 * libgnat/a-ticoau.adb: Likewise.
7907 * libgnat/a-ticoau.ads: Likewise.
7908 * libgnat/a-ticoio.adb: Likewise.
7909 * libgnat/a-ticoio.ads: Likewise.
7910 * libgnat/a-tideau.adb: Likewise.
7911 * libgnat/a-tideau.ads: Likewise.
7912 * libgnat/a-tideio.adb: Likewise.
7913 * libgnat/a-tideio.ads: Likewise.
7914 * libgnat/a-tideio__128.adb: Likewise.
7915 * libgnat/a-tienau.adb: Likewise.
7916 * libgnat/a-tienau.ads: Likewise.
7917 * libgnat/a-tienio.adb: Likewise.
7918 * libgnat/a-tifiau.adb: Likewise.
7919 * libgnat/a-tifiau.ads: Likewise.
7920 * libgnat/a-tifiio.adb: Likewise.
7921 * libgnat/a-tifiio__128.adb: Likewise.
7922 * libgnat/a-tiflau.adb: Likewise.
7923 * libgnat/a-tiflau.ads: Likewise.
7924 * libgnat/a-tiflio.adb: Likewise.
7925 * libgnat/a-tiflio.ads: Likewise.
7926 * libgnat/a-tigeau.adb: Likewise.
7927 * libgnat/a-tigeau.ads: Likewise.
7928 * libgnat/a-tigeli.adb: Likewise.
7929 * libgnat/a-tiinau.adb: Likewise.
7930 * libgnat/a-tiinau.ads: Likewise.
7931 * libgnat/a-tiinio.adb: Likewise.
7932 * libgnat/a-tiinio.ads: Likewise.
7933 * libgnat/a-tiinio__128.adb: Likewise.
7934 * libgnat/a-timoio.adb: Likewise.
7935 * libgnat/a-timoio.ads: Likewise.
7936 * libgnat/a-timoio__128.adb: Likewise.
7937 * libgnat/a-tiocst.adb: Likewise.
7938 * libgnat/a-tiocst.ads: Likewise.
7939 * libgnat/a-tirsfi.adb: Likewise.
7940 * libgnat/a-tirsfi.ads: Likewise.
7941 * libgnat/a-titest.adb: Likewise.
7942 * libgnat/a-undesu.adb: Likewise.
7943 * libgnat/a-wichha.adb: Likewise.
7944 * libgnat/a-wichun.adb: Likewise.
7945 * libgnat/a-wichun.ads: Likewise.
7946 * libgnat/a-witeio.adb: Likewise.
7947 * libgnat/a-witeio.ads: Likewise.
7948 * libgnat/a-wrstfi.adb: Likewise.
7949 * libgnat/a-wrstfi.ads: Likewise.
7950 * libgnat/a-wtcoau.adb: Likewise.
7951 * libgnat/a-wtcoau.ads: Likewise.
7952 * libgnat/a-wtcoio.adb: Likewise.
7953 * libgnat/a-wtcstr.adb: Likewise.
7954 * libgnat/a-wtcstr.ads: Likewise.
7955 * libgnat/a-wtdeau.adb: Likewise.
7956 * libgnat/a-wtdeau.ads: Likewise.
7957 * libgnat/a-wtdeio.adb: Likewise.
7958 * libgnat/a-wtdeio__128.adb: Likewise.
7959 * libgnat/a-wtedit.adb: Likewise.
7960 * libgnat/a-wtedit.ads: Likewise.
7961 * libgnat/a-wtenau.adb: Likewise.
7962 * libgnat/a-wtenau.ads: Likewise.
7963 * libgnat/a-wtenio.adb: Likewise.
7964 * libgnat/a-wtfiau.adb: Likewise.
7965 * libgnat/a-wtfiau.ads: Likewise.
7966 * libgnat/a-wtfiio.adb: Likewise.
7967 * libgnat/a-wtfiio__128.adb: Likewise.
7968 * libgnat/a-wtflau.adb: Likewise.
7969 * libgnat/a-wtflau.ads: Likewise.
7970 * libgnat/a-wtflio.adb: Likewise.
7971 * libgnat/a-wtgeau.adb: Likewise.
7972 * libgnat/a-wtgeau.ads: Likewise.
7973 * libgnat/a-wtinau.adb: Likewise.
7974 * libgnat/a-wtinau.ads: Likewise.
7975 * libgnat/a-wtinio.adb: Likewise.
7976 * libgnat/a-wtinio__128.adb: Likewise.
7977 * libgnat/a-wtmoio.adb: Likewise.
7978 * libgnat/a-wtmoio.ads: Likewise.
7979 * libgnat/a-wtmoio__128.adb: Likewise.
7980 * libgnat/a-wttest.adb: Likewise.
7981 * libgnat/a-wwboio.adb: Likewise.
7982 * libgnat/a-zchhan.adb: Likewise.
7983 * libgnat/a-zchuni.adb: Likewise.
7984 * libgnat/a-zchuni.ads: Likewise.
7985 * libgnat/a-zrstfi.adb: Likewise.
7986 * libgnat/a-zrstfi.ads: Likewise.
7987 * libgnat/a-ztcoau.adb: Likewise.
7988 * libgnat/a-ztcoio.adb: Likewise.
7989 * libgnat/a-ztcstr.adb: Likewise.
7990 * libgnat/a-ztcstr.ads: Likewise.
7991 * libgnat/a-ztdeau.adb: Likewise.
7992 * libgnat/a-ztdeau.ads: Likewise.
7993 * libgnat/a-ztdeio.adb: Likewise.
7994 * libgnat/a-ztdeio__128.adb: Likewise.
7995 * libgnat/a-ztedit.adb: Likewise.
7996 * libgnat/a-ztedit.ads: Likewise.
7997 * libgnat/a-ztenau.adb: Likewise.
7998 * libgnat/a-ztenau.ads: Likewise.
7999 * libgnat/a-ztenio.adb: Likewise.
8000 * libgnat/a-ztexio.adb: Likewise.
8001 * libgnat/a-ztexio.ads: Likewise.
8002 * libgnat/a-ztfiau.adb: Likewise.
8003 * libgnat/a-ztfiau.ads: Likewise.
8004 * libgnat/a-ztfiio.adb: Likewise.
8005 * libgnat/a-ztfiio__128.adb: Likewise.
8006 * libgnat/a-ztflau.adb: Likewise.
8007 * libgnat/a-ztflau.ads: Likewise.
8008 * libgnat/a-ztflio.adb: Likewise.
8009 * libgnat/a-ztgeau.adb: Likewise.
8010 * libgnat/a-ztgeau.ads: Likewise.
8011 * libgnat/a-ztinau.adb: Likewise.
8012 * libgnat/a-ztinau.ads: Likewise.
8013 * libgnat/a-ztinio.adb: Likewise.
8014 * libgnat/a-ztinio__128.adb: Likewise.
8015 * libgnat/a-ztmoio.adb: Likewise.
8016 * libgnat/a-ztmoio__128.adb: Likewise.
8017 * libgnat/a-zttest.adb: Likewise.
8018 * libgnat/a-zzboio.adb: Likewise.
8019 * libgnat/g-allein.ads: Likewise.
8020 * libgnat/g-alleve.adb: Likewise.
8021 * libgnat/g-alleve.ads: Likewise.
8022 * libgnat/g-alleve__hard.adb: Likewise.
8023 * libgnat/g-alleve__hard.ads: Likewise.
8024 * libgnat/g-altcon.adb: Likewise.
8025 * libgnat/g-altcon.ads: Likewise.
8026 * libgnat/g-altive.ads: Likewise.
8027 * libgnat/g-alveop.adb: Likewise.
8028 * libgnat/g-alveop.ads: Likewise.
8029 * libgnat/g-alvety.ads: Likewise.
8030 * libgnat/g-alvevi.ads: Likewise.
8031 * libgnat/g-arrspl.adb: Likewise.
8032 * libgnat/g-arrspl.ads: Likewise.
8033 * libgnat/g-awk.adb: Likewise.
8034 * libgnat/g-awk.ads: Likewise.
8035 * libgnat/g-binenv.adb: Likewise.
8036 * libgnat/g-binenv.ads: Likewise.
8037 * libgnat/g-brapre.ads: Likewise.
8038 * libgnat/g-bubsor.adb: Likewise.
8039 * libgnat/g-bubsor.ads: Likewise.
8040 * libgnat/g-busora.adb: Likewise.
8041 * libgnat/g-busora.ads: Likewise.
8042 * libgnat/g-busorg.adb: Likewise.
8043 * libgnat/g-busorg.ads: Likewise.
8044 * libgnat/g-byorma.adb: Likewise.
8045 * libgnat/g-byorma.ads: Likewise.
8046 * libgnat/g-bytswa.adb: Likewise.
8047 * libgnat/g-bytswa.ads: Likewise.
8048 * libgnat/g-calend.adb: Likewise.
8049 * libgnat/g-calend.ads: Likewise.
8050 * libgnat/g-casuti.adb: Likewise.
8051 * libgnat/g-casuti.ads: Likewise.
8052 * libgnat/g-catiio.adb: Likewise.
8053 * libgnat/g-catiio.ads: Likewise.
8054 * libgnat/g-cgi.adb: Likewise.
8055 * libgnat/g-cgi.ads: Likewise.
8056 * libgnat/g-cgicoo.adb: Likewise.
8057 * libgnat/g-cgicoo.ads: Likewise.
8058 * libgnat/g-cgideb.adb: Likewise.
8059 * libgnat/g-cgideb.ads: Likewise.
8060 * libgnat/g-comlin.adb: Likewise.
8061 * libgnat/g-comlin.ads: Likewise.
8062 * libgnat/g-comver.adb: Likewise.
8063 * libgnat/g-comver.ads: Likewise.
8064 * libgnat/g-cppexc.adb: Likewise.
8065 * libgnat/g-cppexc.ads: Likewise.
8066 * libgnat/g-crc32.adb: Likewise.
8067 * libgnat/g-crc32.ads: Likewise.
8068 * libgnat/g-ctrl_c.adb: Likewise.
8069 * libgnat/g-ctrl_c.ads: Likewise.
8070 * libgnat/g-curexc.ads: Likewise.
8071 * libgnat/g-debpoo.adb: Likewise.
8072 * libgnat/g-debpoo.ads: Likewise.
8073 * libgnat/g-debuti.adb: Likewise.
8074 * libgnat/g-debuti.ads: Likewise.
8075 * libgnat/g-decstr.adb: Likewise.
8076 * libgnat/g-decstr.ads: Likewise.
8077 * libgnat/g-deutst.ads: Likewise.
8078 * libgnat/g-diopit.adb: Likewise.
8079 * libgnat/g-diopit.ads: Likewise.
8080 * libgnat/g-dirope.adb: Likewise.
8081 * libgnat/g-dirope.ads: Likewise.
8082 * libgnat/g-dynhta.adb: Likewise.
8083 * libgnat/g-dynhta.ads: Likewise.
8084 * libgnat/g-dyntab.adb: Likewise.
8085 * libgnat/g-dyntab.ads: Likewise.
8086 * libgnat/g-eacodu.adb: Likewise.
8087 * libgnat/g-encstr.adb: Likewise.
8088 * libgnat/g-encstr.ads: Likewise.
8089 * libgnat/g-enutst.ads: Likewise.
8090 * libgnat/g-excact.adb: Likewise.
8091 * libgnat/g-excact.ads: Likewise.
8092 * libgnat/g-except.ads: Likewise.
8093 * libgnat/g-exctra.adb: Likewise.
8094 * libgnat/g-exctra.ads: Likewise.
8095 * libgnat/g-expect.adb: Likewise.
8096 * libgnat/g-expect.ads: Likewise.
8097 * libgnat/g-exptty.adb: Likewise.
8098 * libgnat/g-exptty.ads: Likewise.
8099 * libgnat/g-flocon.ads: Likewise.
8100 * libgnat/g-forstr.adb: Likewise.
8101 * libgnat/g-forstr.ads: Likewise.
8102 * libgnat/g-graphs.adb: Likewise.
8103 * libgnat/g-graphs.ads: Likewise.
8104 * libgnat/g-heasor.adb: Likewise.
8105 * libgnat/g-heasor.ads: Likewise.
8106 * libgnat/g-hesora.adb: Likewise.
8107 * libgnat/g-hesora.ads: Likewise.
8108 * libgnat/g-hesorg.adb: Likewise.
8109 * libgnat/g-hesorg.ads: Likewise.
8110 * libgnat/g-htable.adb: Likewise.
8111 * libgnat/g-htable.ads: Likewise.
8112 * libgnat/g-io-put__vxworks.adb: Likewise.
8113 * libgnat/g-io.adb: Likewise.
8114 * libgnat/g-io.ads: Likewise.
8115 * libgnat/g-io_aux.adb: Likewise.
8116 * libgnat/g-io_aux.ads: Likewise.
8117 * libgnat/g-lists.adb: Likewise.
8118 * libgnat/g-lists.ads: Likewise.
8119 * libgnat/g-locfil.adb: Likewise.
8120 * libgnat/g-locfil.ads: Likewise.
8121 * libgnat/g-mbdira.adb: Likewise.
8122 * libgnat/g-mbdira.ads: Likewise.
8123 * libgnat/g-mbflra.adb: Likewise.
8124 * libgnat/g-mbflra.ads: Likewise.
8125 * libgnat/g-md5.adb: Likewise.
8126 * libgnat/g-md5.ads: Likewise.
8127 * libgnat/g-memdum.adb: Likewise.
8128 * libgnat/g-memdum.ads: Likewise.
8129 * libgnat/g-moreex.adb: Likewise.
8130 * libgnat/g-moreex.ads: Likewise.
8131 * libgnat/g-os_lib.adb: Likewise.
8132 * libgnat/g-os_lib.ads: Likewise.
8133 * libgnat/g-pehage.adb: Likewise.
8134 * libgnat/g-pehage.ads: Likewise.
8135 * libgnat/g-rannum.adb: Likewise.
8136 * libgnat/g-rannum.ads: Likewise.
8137 * libgnat/g-regexp.adb: Likewise.
8138 * libgnat/g-regexp.ads: Likewise.
8139 * libgnat/g-regist.adb: Likewise.
8140 * libgnat/g-regist.ads: Likewise.
8141 * libgnat/g-regpat.adb: Likewise.
8142 * libgnat/g-regpat.ads: Likewise.
8143 * libgnat/g-rewdat.adb: Likewise.
8144 * libgnat/g-rewdat.ads: Likewise.
8145 * libgnat/g-sechas.adb: Likewise.
8146 * libgnat/g-sechas.ads: Likewise.
8147 * libgnat/g-sehamd.adb: Likewise.
8148 * libgnat/g-sehamd.ads: Likewise.
8149 * libgnat/g-sehash.adb: Likewise.
8150 * libgnat/g-sehash.ads: Likewise.
8151 * libgnat/g-sercom.adb: Likewise.
8152 * libgnat/g-sercom.ads: Likewise.
8153 * libgnat/g-sercom__linux.adb: Likewise.
8154 * libgnat/g-sercom__mingw.adb: Likewise.
8155 * libgnat/g-sestin.ads: Likewise.
8156 * libgnat/g-sets.adb: Likewise.
8157 * libgnat/g-sets.ads: Likewise.
8158 * libgnat/g-sha1.adb: Likewise.
8159 * libgnat/g-sha1.ads: Likewise.
8160 * libgnat/g-sha224.ads: Likewise.
8161 * libgnat/g-sha256.ads: Likewise.
8162 * libgnat/g-sha384.ads: Likewise.
8163 * libgnat/g-sha512.ads: Likewise.
8164 * libgnat/g-shsh32.adb: Likewise.
8165 * libgnat/g-shsh32.ads: Likewise.
8166 * libgnat/g-shsh64.adb: Likewise.
8167 * libgnat/g-shsh64.ads: Likewise.
8168 * libgnat/g-shshco.adb: Likewise.
8169 * libgnat/g-shshco.ads: Likewise.
8170 * libgnat/g-soccon.ads: Likewise.
8171 * libgnat/g-socket.adb: Likewise.
8172 * libgnat/g-socket.ads: Likewise.
8173 * libgnat/g-socket__dummy.adb: Likewise.
8174 * libgnat/g-socket__dummy.ads: Likewise.
8175 * libgnat/g-socpol.adb: Likewise.
8176 * libgnat/g-socpol.ads: Likewise.
8177 * libgnat/g-socpol__dummy.adb: Likewise.
8178 * libgnat/g-socpol__dummy.ads: Likewise.
8179 * libgnat/g-socthi.adb: Likewise.
8180 * libgnat/g-socthi.ads: Likewise.
8181 * libgnat/g-socthi__dummy.adb: Likewise.
8182 * libgnat/g-socthi__dummy.ads: Likewise.
8183 * libgnat/g-socthi__mingw.adb: Likewise.
8184 * libgnat/g-socthi__mingw.ads: Likewise.
8185 * libgnat/g-socthi__vxworks.adb: Likewise.
8186 * libgnat/g-socthi__vxworks.ads: Likewise.
8187 * libgnat/g-soliop.ads: Likewise.
8188 * libgnat/g-soliop__lynxos.ads: Likewise.
8189 * libgnat/g-soliop__mingw.ads: Likewise.
8190 * libgnat/g-soliop__qnx.ads: Likewise.
8191 * libgnat/g-soliop__solaris.ads: Likewise.
8192 * libgnat/g-sopowa.adb: Likewise.
8193 * libgnat/g-sopowa__mingw.adb: Likewise.
8194 * libgnat/g-sopowa__posix.adb: Likewise.
8195 * libgnat/g-sothco.adb: Likewise.
8196 * libgnat/g-sothco.ads: Likewise.
8197 * libgnat/g-sothco__dummy.adb: Likewise.
8198 * libgnat/g-sothco__dummy.ads: Likewise.
8199 * libgnat/g-souinf.ads: Likewise.
8200 * libgnat/g-spchge.adb: Likewise.
8201 * libgnat/g-spchge.ads: Likewise.
8202 * libgnat/g-speche.adb: Likewise.
8203 * libgnat/g-speche.ads: Likewise.
8204 * libgnat/g-spipat.adb: Likewise.
8205 * libgnat/g-spipat.ads: Likewise.
8206 * libgnat/g-spitbo.adb: Likewise.
8207 * libgnat/g-spitbo.ads: Likewise.
8208 * libgnat/g-spogwa.adb: Likewise.
8209 * libgnat/g-spogwa.ads: Likewise.
8210 * libgnat/g-sptabo.ads: Likewise.
8211 * libgnat/g-sptain.ads: Likewise.
8212 * libgnat/g-sptavs.ads: Likewise.
8213 * libgnat/g-sse.ads: Likewise.
8214 * libgnat/g-ssvety.ads: Likewise.
8215 * libgnat/g-sthcso.adb: Likewise.
8216 * libgnat/g-stheme.adb: Likewise.
8217 * libgnat/g-strhas.ads: Likewise.
8218 * libgnat/g-string.adb: Likewise.
8219 * libgnat/g-string.ads: Likewise.
8220 * libgnat/g-strspl.ads: Likewise.
8221 * libgnat/g-stseme.adb: Likewise.
8222 * libgnat/g-stsifd__sockets.adb: Likewise.
8223 * libgnat/g-table.adb: Likewise.
8224 * libgnat/g-table.ads: Likewise.
8225 * libgnat/g-tasloc.adb: Likewise.
8226 * libgnat/g-tasloc.ads: Likewise.
8227 * libgnat/g-timsta.adb: Likewise.
8228 * libgnat/g-timsta.ads: Likewise.
8229 * libgnat/g-traceb.adb: Likewise.
8230 * libgnat/g-traceb.ads: Likewise.
8231 * libgnat/g-trasym.adb: Likewise.
8232 * libgnat/g-trasym.ads: Likewise.
8233 * libgnat/g-tty.adb: Likewise.
8234 * libgnat/g-tty.ads: Likewise.
8235 * libgnat/g-u3spch.adb: Likewise.
8236 * libgnat/g-u3spch.ads: Likewise.
8237 * libgnat/g-utf_32.adb: Likewise.
8238 * libgnat/g-utf_32.ads: Likewise.
8239 * libgnat/g-wispch.adb: Likewise.
8240 * libgnat/g-wispch.ads: Likewise.
8241 * libgnat/g-wistsp.ads: Likewise.
8242 * libgnat/g-zspche.adb: Likewise.
8243 * libgnat/g-zspche.ads: Likewise.
8244 * libgnat/g-zstspl.ads: Likewise.
8245 * libgnat/gnat.ads: Likewise.
8246 * libgnat/i-c.adb: Likewise.
8247 * libgnat/i-cexten.ads: Likewise.
8248 * libgnat/i-cexten__128.ads: Likewise.
8249 * libgnat/i-cobol.adb: Likewise.
8250 * libgnat/i-cobol.ads: Likewise.
8251 * libgnat/i-cpoint.adb: Likewise.
8252 * libgnat/i-cpoint.ads: Likewise.
8253 * libgnat/i-cstrea.adb: Likewise.
8254 * libgnat/i-cstrea.ads: Likewise.
8255 * libgnat/i-cstrin.adb: Likewise.
8256 * libgnat/i-cstrin.ads: Likewise.
8257 * libgnat/i-fortra.adb: Likewise.
8258 * libgnat/i-pacdec.adb: Likewise.
8259 * libgnat/i-pacdec.ads: Likewise.
8260 * libgnat/i-vxwoio.adb: Likewise.
8261 * libgnat/i-vxwoio.ads: Likewise.
8262 * libgnat/i-vxwork.ads: Likewise.
8263 * libgnat/i-vxwork__x86.ads: Likewise.
8264 * libgnat/interfac.ads: Likewise.
8265 * libgnat/interfac__2020.ads: Likewise.
8266 * libgnat/memtrack.adb: Likewise.
8267 * libgnat/s-addima.adb: Likewise.
8268 * libgnat/s-addima.ads: Likewise.
8269 * libgnat/s-addope.adb: Likewise.
8270 * libgnat/s-addope.ads: Likewise.
8271 * libgnat/s-aoinar.adb: Likewise.
8272 * libgnat/s-aoinar.ads: Likewise.
8273 * libgnat/s-aomoar.adb: Likewise.
8274 * libgnat/s-aomoar.ads: Likewise.
8275 * libgnat/s-aotase.adb: Likewise.
8276 * libgnat/s-aotase.ads: Likewise.
8277 * libgnat/s-aridou.adb: Likewise.
8278 * libgnat/s-aridou.ads: Likewise.
8279 * libgnat/s-arit128.adb: Likewise.
8280 * libgnat/s-arit128.ads: Likewise.
8281 * libgnat/s-arit32.adb: Likewise.
8282 * libgnat/s-arit32.ads: Likewise.
8283 * libgnat/s-arit64.adb: Likewise.
8284 * libgnat/s-arit64.ads: Likewise.
8285 * libgnat/s-assert.adb: Likewise.
8286 * libgnat/s-assert.ads: Likewise.
8287 * libgnat/s-atacco.adb: Likewise.
8288 * libgnat/s-atacco.ads: Likewise.
8289 * libgnat/s-atocou.adb: Likewise.
8290 * libgnat/s-atocou.ads: Likewise.
8291 * libgnat/s-atocou__builtin.adb: Likewise.
8292 * libgnat/s-atocou__x86.adb: Likewise.
8293 * libgnat/s-atoope.ads: Likewise.
8294 * libgnat/s-atopex.adb: Likewise.
8295 * libgnat/s-atopex.ads: Likewise.
8296 * libgnat/s-atopri.adb: Likewise.
8297 * libgnat/s-atopri.ads: Likewise.
8298 * libgnat/s-auxdec.adb: Likewise.
8299 * libgnat/s-auxdec.ads: Likewise.
8300 * libgnat/s-bignum.adb: Likewise.
8301 * libgnat/s-bignum.ads: Likewise.
8302 * libgnat/s-bitfie.ads: Likewise.
8303 * libgnat/s-bitops.adb: Likewise.
8304 * libgnat/s-bitops.ads: Likewise.
8305 * libgnat/s-bituti.adb: Likewise.
8306 * libgnat/s-bituti.ads: Likewise.
8307 * libgnat/s-boarop.ads: Likewise.
8308 * libgnat/s-boustr.adb: Likewise.
8309 * libgnat/s-boustr.ads: Likewise.
8310 * libgnat/s-bytswa.ads: Likewise.
8311 * libgnat/s-carsi8.adb: Likewise.
8312 * libgnat/s-carsi8.ads: Likewise.
8313 * libgnat/s-carun8.adb: Likewise.
8314 * libgnat/s-carun8.ads: Likewise.
8315 * libgnat/s-casi128.adb: Likewise.
8316 * libgnat/s-casi128.ads: Likewise.
8317 * libgnat/s-casi16.adb: Likewise.
8318 * libgnat/s-casi16.ads: Likewise.
8319 * libgnat/s-casi32.adb: Likewise.
8320 * libgnat/s-casi32.ads: Likewise.
8321 * libgnat/s-casi64.adb: Likewise.
8322 * libgnat/s-casi64.ads: Likewise.
8323 * libgnat/s-casuti.adb: Likewise.
8324 * libgnat/s-casuti.ads: Likewise.
8325 * libgnat/s-caun128.adb: Likewise.
8326 * libgnat/s-caun128.ads: Likewise.
8327 * libgnat/s-caun16.adb: Likewise.
8328 * libgnat/s-caun16.ads: Likewise.
8329 * libgnat/s-caun32.adb: Likewise.
8330 * libgnat/s-caun32.ads: Likewise.
8331 * libgnat/s-caun64.adb: Likewise.
8332 * libgnat/s-caun64.ads: Likewise.
8333 * libgnat/s-chepoo.ads: Likewise.
8334 * libgnat/s-commun.adb: Likewise.
8335 * libgnat/s-commun.ads: Likewise.
8336 * libgnat/s-conca2.adb: Likewise.
8337 * libgnat/s-conca2.ads: Likewise.
8338 * libgnat/s-conca3.adb: Likewise.
8339 * libgnat/s-conca3.ads: Likewise.
8340 * libgnat/s-conca4.adb: Likewise.
8341 * libgnat/s-conca4.ads: Likewise.
8342 * libgnat/s-conca5.adb: Likewise.
8343 * libgnat/s-conca5.ads: Likewise.
8344 * libgnat/s-conca6.adb: Likewise.
8345 * libgnat/s-conca6.ads: Likewise.
8346 * libgnat/s-conca7.adb: Likewise.
8347 * libgnat/s-conca7.ads: Likewise.
8348 * libgnat/s-conca8.adb: Likewise.
8349 * libgnat/s-conca8.ads: Likewise.
8350 * libgnat/s-conca9.adb: Likewise.
8351 * libgnat/s-conca9.ads: Likewise.
8352 * libgnat/s-crc32.adb: Likewise.
8353 * libgnat/s-crc32.ads: Likewise.
8354 * libgnat/s-crtl.ads: Likewise.
8355 * libgnat/s-dfmkio.ads: Likewise.
8356 * libgnat/s-dfmopr.ads: Likewise.
8357 * libgnat/s-dgmgop.ads: Likewise.
8358 * libgnat/s-diflio.adb: Likewise.
8359 * libgnat/s-diflio.ads: Likewise.
8360 * libgnat/s-diflmk.ads: Likewise.
8361 * libgnat/s-digemk.ads: Likewise.
8362 * libgnat/s-diinio.adb: Likewise.
8363 * libgnat/s-diinio.ads: Likewise.
8364 * libgnat/s-dilomk.ads: Likewise.
8365 * libgnat/s-dim.ads: Likewise.
8366 * libgnat/s-dimkio.ads: Likewise.
8367 * libgnat/s-dimmks.ads: Likewise.
8368 * libgnat/s-direio.adb: Likewise.
8369 * libgnat/s-direio.ads: Likewise.
8370 * libgnat/s-dlmkio.ads: Likewise.
8371 * libgnat/s-dlmopr.ads: Likewise.
8372 * libgnat/s-dmotpr.ads: Likewise.
8373 * libgnat/s-dsaser.ads: Likewise.
8374 * libgnat/s-dwalin.adb: Likewise.
8375 * libgnat/s-dwalin.ads: Likewise.
8376 * libgnat/s-elaall.adb: Likewise.
8377 * libgnat/s-elaall.ads: Likewise.
8378 * libgnat/s-excdeb.adb: Likewise.
8379 * libgnat/s-excdeb.ads: Likewise.
8380 * libgnat/s-except.adb: Likewise.
8381 * libgnat/s-except.ads: Likewise.
8382 * libgnat/s-excmac__arm.adb: Likewise.
8383 * libgnat/s-excmac__arm.ads: Likewise.
8384 * libgnat/s-excmac__gcc.adb: Likewise.
8385 * libgnat/s-excmac__gcc.ads: Likewise.
8386 * libgnat/s-exctab.adb: Likewise.
8387 * libgnat/s-exctab.ads: Likewise.
8388 * libgnat/s-exctra.adb: Likewise.
8389 * libgnat/s-exctra.ads: Likewise.
8390 * libgnat/s-exnint.adb: Likewise.
8391 * libgnat/s-exnint.ads: Likewise.
8392 * libgnat/s-exnllf.adb: Likewise.
8393 * libgnat/s-exnllf.ads: Likewise.
8394 * libgnat/s-exnlli.adb: Likewise.
8395 * libgnat/s-exnlli.ads: Likewise.
8396 * libgnat/s-exnllli.ads: Likewise.
8397 * libgnat/s-expint.adb: Likewise.
8398 * libgnat/s-expint.ads: Likewise.
8399 * libgnat/s-explli.adb: Likewise.
8400 * libgnat/s-explli.ads: Likewise.
8401 * libgnat/s-expllli.ads: Likewise.
8402 * libgnat/s-explllu.ads: Likewise.
8403 * libgnat/s-expllu.adb: Likewise.
8404 * libgnat/s-expllu.ads: Likewise.
8405 * libgnat/s-expmod.adb: Likewise.
8406 * libgnat/s-expmod.ads: Likewise.
8407 * libgnat/s-exponn.adb: Likewise.
8408 * libgnat/s-exponn.ads: Likewise.
8409 * libgnat/s-expont.adb: Likewise.
8410 * libgnat/s-expont.ads: Likewise.
8411 * libgnat/s-exponu.adb: Likewise.
8412 * libgnat/s-exponu.ads: Likewise.
8413 * libgnat/s-expuns.adb: Likewise.
8414 * libgnat/s-expuns.ads: Likewise.
8415 * libgnat/s-fatflt.ads: Likewise.
8416 * libgnat/s-fatgen.adb: Likewise.
8417 * libgnat/s-fatgen.ads: Likewise.
8418 * libgnat/s-fatlfl.ads: Likewise.
8419 * libgnat/s-fatllf.ads: Likewise.
8420 * libgnat/s-ficobl.ads: Likewise.
8421 * libgnat/s-filatt.ads: Likewise.
8422 * libgnat/s-fileio.adb: Likewise.
8423 * libgnat/s-fileio.ads: Likewise.
8424 * libgnat/s-finmas.adb: Likewise.
8425 * libgnat/s-finmas.ads: Likewise.
8426 * libgnat/s-finroo.adb: Likewise.
8427 * libgnat/s-finroo.ads: Likewise.
8428 * libgnat/s-flocon.adb: Likewise.
8429 * libgnat/s-flocon.ads: Likewise.
8430 * libgnat/s-flocon__none.adb: Likewise.
8431 * libgnat/s-fode128.ads: Likewise.
8432 * libgnat/s-fode32.ads: Likewise.
8433 * libgnat/s-fode64.ads: Likewise.
8434 * libgnat/s-fofi128.ads: Likewise.
8435 * libgnat/s-fofi32.ads: Likewise.
8436 * libgnat/s-fofi64.ads: Likewise.
8437 * libgnat/s-fore_d.adb: Likewise.
8438 * libgnat/s-fore_d.ads: Likewise.
8439 * libgnat/s-fore_f.adb: Likewise.
8440 * libgnat/s-fore_f.ads: Likewise.
8441 * libgnat/s-forrea.adb: Likewise.
8442 * libgnat/s-forrea.ads: Likewise.
8443 * libgnat/s-gearop.adb: Likewise.
8444 * libgnat/s-gearop.ads: Likewise.
8445 * libgnat/s-genbig.adb: Likewise.
8446 * libgnat/s-genbig.ads: Likewise.
8447 * libgnat/s-geveop.adb: Likewise.
8448 * libgnat/s-geveop.ads: Likewise.
8449 * libgnat/s-gloloc.adb: Likewise.
8450 * libgnat/s-gloloc.ads: Likewise.
8451 * libgnat/s-gloloc__mingw.adb: Likewise.
8452 * libgnat/s-htable.adb: Likewise.
8453 * libgnat/s-htable.ads: Likewise.
8454 * libgnat/s-imageb.adb: Likewise.
8455 * libgnat/s-imageb.ads: Likewise.
8456 * libgnat/s-imaged.adb: Likewise.
8457 * libgnat/s-imaged.ads: Likewise.
8458 * libgnat/s-imagef.adb: Likewise.
8459 * libgnat/s-imagef.ads: Likewise.
8460 * libgnat/s-imagei.adb: Likewise.
8461 * libgnat/s-imagei.ads: Likewise.
8462 * libgnat/s-imageu.adb: Likewise.
8463 * libgnat/s-imageu.ads: Likewise.
8464 * libgnat/s-imagew.adb: Likewise.
8465 * libgnat/s-imagew.ads: Likewise.
8466 * libgnat/s-imde128.ads: Likewise.
8467 * libgnat/s-imde32.ads: Likewise.
8468 * libgnat/s-imde64.ads: Likewise.
8469 * libgnat/s-imenne.adb: Likewise.
8470 * libgnat/s-imenne.ads: Likewise.
8471 * libgnat/s-imfi128.ads: Likewise.
8472 * libgnat/s-imfi32.ads: Likewise.
8473 * libgnat/s-imfi64.ads: Likewise.
8474 * libgnat/s-imgbiu.adb: Likewise.
8475 * libgnat/s-imgbiu.ads: Likewise.
8476 * libgnat/s-imgboo.adb: Likewise.
8477 * libgnat/s-imgboo.ads: Likewise.
8478 * libgnat/s-imgcha.adb: Likewise.
8479 * libgnat/s-imgcha.ads: Likewise.
8480 * libgnat/s-imgenu.adb: Likewise.
8481 * libgnat/s-imgenu.ads: Likewise.
8482 * libgnat/s-imgint.adb: Likewise.
8483 * libgnat/s-imgint.ads: Likewise.
8484 * libgnat/s-imgllb.adb: Likewise.
8485 * libgnat/s-imgllb.ads: Likewise.
8486 * libgnat/s-imglli.adb: Likewise.
8487 * libgnat/s-imglli.ads: Likewise.
8488 * libgnat/s-imglllb.ads: Likewise.
8489 * libgnat/s-imgllli.ads: Likewise.
8490 * libgnat/s-imglllu.ads: Likewise.
8491 * libgnat/s-imglllw.ads: Likewise.
8492 * libgnat/s-imgllu.adb: Likewise.
8493 * libgnat/s-imgllu.ads: Likewise.
8494 * libgnat/s-imgllw.adb: Likewise.
8495 * libgnat/s-imgllw.ads: Likewise.
8496 * libgnat/s-imgrea.adb: Likewise.
8497 * libgnat/s-imgrea.ads: Likewise.
8498 * libgnat/s-imguns.adb: Likewise.
8499 * libgnat/s-imguns.ads: Likewise.
8500 * libgnat/s-imguti.adb: Likewise.
8501 * libgnat/s-imguti.ads: Likewise.
8502 * libgnat/s-imgwch.adb: Likewise.
8503 * libgnat/s-imgwch.ads: Likewise.
8504 * libgnat/s-imgwiu.adb: Likewise.
8505 * libgnat/s-imgwiu.ads: Likewise.
8506 * libgnat/s-io.adb: Likewise.
8507 * libgnat/s-io.ads: Likewise.
8508 * libgnat/s-llflex.ads: Likewise.
8509 * libgnat/s-maccod.ads: Likewise.
8510 * libgnat/s-mantis.adb: Likewise.
8511 * libgnat/s-mantis.ads: Likewise.
8512 * libgnat/s-mastop.adb: Likewise.
8513 * libgnat/s-mastop.ads: Likewise.
8514 * libgnat/s-memcop.ads: Likewise.
8515 * libgnat/s-memory.adb: Likewise.
8516 * libgnat/s-memory.ads: Likewise.
8517 * libgnat/s-mmap.adb: Likewise.
8518 * libgnat/s-mmap.ads: Likewise.
8519 * libgnat/s-mmauni__long.ads: Likewise.
8520 * libgnat/s-mmosin__mingw.adb: Likewise.
8521 * libgnat/s-mmosin__mingw.ads: Likewise.
8522 * libgnat/s-mmosin__unix.adb: Likewise.
8523 * libgnat/s-mmosin__unix.ads: Likewise.
8524 * libgnat/s-multip.adb: Likewise.
8525 * libgnat/s-objrea.adb: Likewise.
8526 * libgnat/s-objrea.ads: Likewise.
8527 * libgnat/s-optide.adb: Likewise.
8528 * libgnat/s-os_lib.adb: Likewise.
8529 * libgnat/s-os_lib.ads: Likewise.
8530 * libgnat/s-osprim.ads: Likewise.
8531 * libgnat/s-osprim__darwin.adb: Likewise.
8532 * libgnat/s-osprim__lynxos.ads: Likewise.
8533 * libgnat/s-osprim__mingw.adb: Likewise.
8534 * libgnat/s-osprim__posix.adb: Likewise.
8535 * libgnat/s-osprim__posix2008.adb: Likewise.
8536 * libgnat/s-osprim__rtems.adb: Likewise.
8537 * libgnat/s-osprim__solaris.adb: Likewise.
8538 * libgnat/s-osprim__unix.adb: Likewise.
8539 * libgnat/s-osprim__vxworks.adb: Likewise.
8540 * libgnat/s-osprim__x32.adb: Likewise.
8541 * libgnat/s-osvers__vxworks-653.ads: Likewise.
8542 * libgnat/s-pack03.adb: Likewise.
8543 * libgnat/s-pack03.ads: Likewise.
8544 * libgnat/s-pack05.adb: Likewise.
8545 * libgnat/s-pack05.ads: Likewise.
8546 * libgnat/s-pack06.adb: Likewise.
8547 * libgnat/s-pack06.ads: Likewise.
8548 * libgnat/s-pack07.adb: Likewise.
8549 * libgnat/s-pack07.ads: Likewise.
8550 * libgnat/s-pack09.adb: Likewise.
8551 * libgnat/s-pack09.ads: Likewise.
8552 * libgnat/s-pack10.adb: Likewise.
8553 * libgnat/s-pack10.ads: Likewise.
8554 * libgnat/s-pack100.adb: Likewise.
8555 * libgnat/s-pack100.ads: Likewise.
8556 * libgnat/s-pack101.adb: Likewise.
8557 * libgnat/s-pack101.ads: Likewise.
8558 * libgnat/s-pack102.adb: Likewise.
8559 * libgnat/s-pack102.ads: Likewise.
8560 * libgnat/s-pack103.adb: Likewise.
8561 * libgnat/s-pack103.ads: Likewise.
8562 * libgnat/s-pack104.adb: Likewise.
8563 * libgnat/s-pack104.ads: Likewise.
8564 * libgnat/s-pack105.adb: Likewise.
8565 * libgnat/s-pack105.ads: Likewise.
8566 * libgnat/s-pack106.adb: Likewise.
8567 * libgnat/s-pack106.ads: Likewise.
8568 * libgnat/s-pack107.adb: Likewise.
8569 * libgnat/s-pack107.ads: Likewise.
8570 * libgnat/s-pack108.adb: Likewise.
8571 * libgnat/s-pack108.ads: Likewise.
8572 * libgnat/s-pack109.adb: Likewise.
8573 * libgnat/s-pack109.ads: Likewise.
8574 * libgnat/s-pack11.adb: Likewise.
8575 * libgnat/s-pack11.ads: Likewise.
8576 * libgnat/s-pack110.adb: Likewise.
8577 * libgnat/s-pack110.ads: Likewise.
8578 * libgnat/s-pack111.adb: Likewise.
8579 * libgnat/s-pack111.ads: Likewise.
8580 * libgnat/s-pack112.adb: Likewise.
8581 * libgnat/s-pack112.ads: Likewise.
8582 * libgnat/s-pack113.adb: Likewise.
8583 * libgnat/s-pack113.ads: Likewise.
8584 * libgnat/s-pack114.adb: Likewise.
8585 * libgnat/s-pack114.ads: Likewise.
8586 * libgnat/s-pack115.adb: Likewise.
8587 * libgnat/s-pack115.ads: Likewise.
8588 * libgnat/s-pack116.adb: Likewise.
8589 * libgnat/s-pack116.ads: Likewise.
8590 * libgnat/s-pack117.adb: Likewise.
8591 * libgnat/s-pack117.ads: Likewise.
8592 * libgnat/s-pack118.adb: Likewise.
8593 * libgnat/s-pack118.ads: Likewise.
8594 * libgnat/s-pack119.adb: Likewise.
8595 * libgnat/s-pack119.ads: Likewise.
8596 * libgnat/s-pack12.adb: Likewise.
8597 * libgnat/s-pack12.ads: Likewise.
8598 * libgnat/s-pack120.adb: Likewise.
8599 * libgnat/s-pack120.ads: Likewise.
8600 * libgnat/s-pack121.adb: Likewise.
8601 * libgnat/s-pack121.ads: Likewise.
8602 * libgnat/s-pack122.adb: Likewise.
8603 * libgnat/s-pack122.ads: Likewise.
8604 * libgnat/s-pack123.adb: Likewise.
8605 * libgnat/s-pack123.ads: Likewise.
8606 * libgnat/s-pack124.adb: Likewise.
8607 * libgnat/s-pack124.ads: Likewise.
8608 * libgnat/s-pack125.adb: Likewise.
8609 * libgnat/s-pack125.ads: Likewise.
8610 * libgnat/s-pack126.adb: Likewise.
8611 * libgnat/s-pack126.ads: Likewise.
8612 * libgnat/s-pack127.adb: Likewise.
8613 * libgnat/s-pack127.ads: Likewise.
8614 * libgnat/s-pack13.adb: Likewise.
8615 * libgnat/s-pack13.ads: Likewise.
8616 * libgnat/s-pack14.adb: Likewise.
8617 * libgnat/s-pack14.ads: Likewise.
8618 * libgnat/s-pack15.adb: Likewise.
8619 * libgnat/s-pack15.ads: Likewise.
8620 * libgnat/s-pack17.adb: Likewise.
8621 * libgnat/s-pack17.ads: Likewise.
8622 * libgnat/s-pack18.adb: Likewise.
8623 * libgnat/s-pack18.ads: Likewise.
8624 * libgnat/s-pack19.adb: Likewise.
8625 * libgnat/s-pack19.ads: Likewise.
8626 * libgnat/s-pack20.adb: Likewise.
8627 * libgnat/s-pack20.ads: Likewise.
8628 * libgnat/s-pack21.adb: Likewise.
8629 * libgnat/s-pack21.ads: Likewise.
8630 * libgnat/s-pack22.adb: Likewise.
8631 * libgnat/s-pack22.ads: Likewise.
8632 * libgnat/s-pack23.adb: Likewise.
8633 * libgnat/s-pack23.ads: Likewise.
8634 * libgnat/s-pack24.adb: Likewise.
8635 * libgnat/s-pack24.ads: Likewise.
8636 * libgnat/s-pack25.adb: Likewise.
8637 * libgnat/s-pack25.ads: Likewise.
8638 * libgnat/s-pack26.adb: Likewise.
8639 * libgnat/s-pack26.ads: Likewise.
8640 * libgnat/s-pack27.adb: Likewise.
8641 * libgnat/s-pack27.ads: Likewise.
8642 * libgnat/s-pack28.adb: Likewise.
8643 * libgnat/s-pack28.ads: Likewise.
8644 * libgnat/s-pack29.adb: Likewise.
8645 * libgnat/s-pack29.ads: Likewise.
8646 * libgnat/s-pack30.adb: Likewise.
8647 * libgnat/s-pack30.ads: Likewise.
8648 * libgnat/s-pack31.adb: Likewise.
8649 * libgnat/s-pack31.ads: Likewise.
8650 * libgnat/s-pack33.adb: Likewise.
8651 * libgnat/s-pack33.ads: Likewise.
8652 * libgnat/s-pack34.adb: Likewise.
8653 * libgnat/s-pack34.ads: Likewise.
8654 * libgnat/s-pack35.adb: Likewise.
8655 * libgnat/s-pack35.ads: Likewise.
8656 * libgnat/s-pack36.adb: Likewise.
8657 * libgnat/s-pack36.ads: Likewise.
8658 * libgnat/s-pack37.adb: Likewise.
8659 * libgnat/s-pack37.ads: Likewise.
8660 * libgnat/s-pack38.adb: Likewise.
8661 * libgnat/s-pack38.ads: Likewise.
8662 * libgnat/s-pack39.adb: Likewise.
8663 * libgnat/s-pack39.ads: Likewise.
8664 * libgnat/s-pack40.adb: Likewise.
8665 * libgnat/s-pack40.ads: Likewise.
8666 * libgnat/s-pack41.adb: Likewise.
8667 * libgnat/s-pack41.ads: Likewise.
8668 * libgnat/s-pack42.adb: Likewise.
8669 * libgnat/s-pack42.ads: Likewise.
8670 * libgnat/s-pack43.adb: Likewise.
8671 * libgnat/s-pack43.ads: Likewise.
8672 * libgnat/s-pack44.adb: Likewise.
8673 * libgnat/s-pack44.ads: Likewise.
8674 * libgnat/s-pack45.adb: Likewise.
8675 * libgnat/s-pack45.ads: Likewise.
8676 * libgnat/s-pack46.adb: Likewise.
8677 * libgnat/s-pack46.ads: Likewise.
8678 * libgnat/s-pack47.adb: Likewise.
8679 * libgnat/s-pack47.ads: Likewise.
8680 * libgnat/s-pack48.adb: Likewise.
8681 * libgnat/s-pack48.ads: Likewise.
8682 * libgnat/s-pack49.adb: Likewise.
8683 * libgnat/s-pack49.ads: Likewise.
8684 * libgnat/s-pack50.adb: Likewise.
8685 * libgnat/s-pack50.ads: Likewise.
8686 * libgnat/s-pack51.adb: Likewise.
8687 * libgnat/s-pack51.ads: Likewise.
8688 * libgnat/s-pack52.adb: Likewise.
8689 * libgnat/s-pack52.ads: Likewise.
8690 * libgnat/s-pack53.adb: Likewise.
8691 * libgnat/s-pack53.ads: Likewise.
8692 * libgnat/s-pack54.adb: Likewise.
8693 * libgnat/s-pack54.ads: Likewise.
8694 * libgnat/s-pack55.adb: Likewise.
8695 * libgnat/s-pack55.ads: Likewise.
8696 * libgnat/s-pack56.adb: Likewise.
8697 * libgnat/s-pack56.ads: Likewise.
8698 * libgnat/s-pack57.adb: Likewise.
8699 * libgnat/s-pack57.ads: Likewise.
8700 * libgnat/s-pack58.adb: Likewise.
8701 * libgnat/s-pack58.ads: Likewise.
8702 * libgnat/s-pack59.adb: Likewise.
8703 * libgnat/s-pack59.ads: Likewise.
8704 * libgnat/s-pack60.adb: Likewise.
8705 * libgnat/s-pack60.ads: Likewise.
8706 * libgnat/s-pack61.adb: Likewise.
8707 * libgnat/s-pack61.ads: Likewise.
8708 * libgnat/s-pack62.adb: Likewise.
8709 * libgnat/s-pack62.ads: Likewise.
8710 * libgnat/s-pack63.adb: Likewise.
8711 * libgnat/s-pack63.ads: Likewise.
8712 * libgnat/s-pack65.adb: Likewise.
8713 * libgnat/s-pack65.ads: Likewise.
8714 * libgnat/s-pack66.adb: Likewise.
8715 * libgnat/s-pack66.ads: Likewise.
8716 * libgnat/s-pack67.adb: Likewise.
8717 * libgnat/s-pack67.ads: Likewise.
8718 * libgnat/s-pack68.adb: Likewise.
8719 * libgnat/s-pack68.ads: Likewise.
8720 * libgnat/s-pack69.adb: Likewise.
8721 * libgnat/s-pack69.ads: Likewise.
8722 * libgnat/s-pack70.adb: Likewise.
8723 * libgnat/s-pack70.ads: Likewise.
8724 * libgnat/s-pack71.adb: Likewise.
8725 * libgnat/s-pack71.ads: Likewise.
8726 * libgnat/s-pack72.adb: Likewise.
8727 * libgnat/s-pack72.ads: Likewise.
8728 * libgnat/s-pack73.adb: Likewise.
8729 * libgnat/s-pack73.ads: Likewise.
8730 * libgnat/s-pack74.adb: Likewise.
8731 * libgnat/s-pack74.ads: Likewise.
8732 * libgnat/s-pack75.adb: Likewise.
8733 * libgnat/s-pack75.ads: Likewise.
8734 * libgnat/s-pack76.adb: Likewise.
8735 * libgnat/s-pack76.ads: Likewise.
8736 * libgnat/s-pack77.adb: Likewise.
8737 * libgnat/s-pack77.ads: Likewise.
8738 * libgnat/s-pack78.adb: Likewise.
8739 * libgnat/s-pack78.ads: Likewise.
8740 * libgnat/s-pack79.adb: Likewise.
8741 * libgnat/s-pack79.ads: Likewise.
8742 * libgnat/s-pack80.adb: Likewise.
8743 * libgnat/s-pack80.ads: Likewise.
8744 * libgnat/s-pack81.adb: Likewise.
8745 * libgnat/s-pack81.ads: Likewise.
8746 * libgnat/s-pack82.adb: Likewise.
8747 * libgnat/s-pack82.ads: Likewise.
8748 * libgnat/s-pack83.adb: Likewise.
8749 * libgnat/s-pack83.ads: Likewise.
8750 * libgnat/s-pack84.adb: Likewise.
8751 * libgnat/s-pack84.ads: Likewise.
8752 * libgnat/s-pack85.adb: Likewise.
8753 * libgnat/s-pack85.ads: Likewise.
8754 * libgnat/s-pack86.adb: Likewise.
8755 * libgnat/s-pack86.ads: Likewise.
8756 * libgnat/s-pack87.adb: Likewise.
8757 * libgnat/s-pack87.ads: Likewise.
8758 * libgnat/s-pack88.adb: Likewise.
8759 * libgnat/s-pack88.ads: Likewise.
8760 * libgnat/s-pack89.adb: Likewise.
8761 * libgnat/s-pack89.ads: Likewise.
8762 * libgnat/s-pack90.adb: Likewise.
8763 * libgnat/s-pack90.ads: Likewise.
8764 * libgnat/s-pack91.adb: Likewise.
8765 * libgnat/s-pack91.ads: Likewise.
8766 * libgnat/s-pack92.adb: Likewise.
8767 * libgnat/s-pack92.ads: Likewise.
8768 * libgnat/s-pack93.adb: Likewise.
8769 * libgnat/s-pack93.ads: Likewise.
8770 * libgnat/s-pack94.adb: Likewise.
8771 * libgnat/s-pack94.ads: Likewise.
8772 * libgnat/s-pack95.adb: Likewise.
8773 * libgnat/s-pack95.ads: Likewise.
8774 * libgnat/s-pack96.adb: Likewise.
8775 * libgnat/s-pack96.ads: Likewise.
8776 * libgnat/s-pack97.adb: Likewise.
8777 * libgnat/s-pack97.ads: Likewise.
8778 * libgnat/s-pack98.adb: Likewise.
8779 * libgnat/s-pack98.ads: Likewise.
8780 * libgnat/s-pack99.adb: Likewise.
8781 * libgnat/s-pack99.ads: Likewise.
8782 * libgnat/s-parame.adb: Likewise.
8783 * libgnat/s-parame.ads: Likewise.
8784 * libgnat/s-parame__ae653.ads: Likewise.
8785 * libgnat/s-parame__hpux.ads: Likewise.
8786 * libgnat/s-parame__rtems.adb: Likewise.
8787 * libgnat/s-parame__vxworks.adb: Likewise.
8788 * libgnat/s-parame__vxworks.ads: Likewise.
8789 * libgnat/s-parint.adb: Likewise.
8790 * libgnat/s-parint.ads: Likewise.
8791 * libgnat/s-pooglo.adb: Likewise.
8792 * libgnat/s-pooglo.ads: Likewise.
8793 * libgnat/s-pooloc.adb: Likewise.
8794 * libgnat/s-pooloc.ads: Likewise.
8795 * libgnat/s-poosiz.adb: Likewise.
8796 * libgnat/s-poosiz.ads: Likewise.
8797 * libgnat/s-powflt.ads: Likewise.
8798 * libgnat/s-powlfl.ads: Likewise.
8799 * libgnat/s-powllf.ads: Likewise.
8800 * libgnat/s-purexc.ads: Likewise.
8801 * libgnat/s-putaim.adb: Likewise.
8802 * libgnat/s-putaim.ads: Likewise.
8803 * libgnat/s-putima.adb: Likewise.
8804 * libgnat/s-putima.ads: Likewise.
8805 * libgnat/s-rannum.adb: Likewise.
8806 * libgnat/s-rannum.ads: Likewise.
8807 * libgnat/s-ransee.adb: Likewise.
8808 * libgnat/s-ransee.ads: Likewise.
8809 * libgnat/s-regexp.adb: Likewise.
8810 * libgnat/s-regexp.ads: Likewise.
8811 * libgnat/s-regpat.adb: Likewise.
8812 * libgnat/s-regpat.ads: Likewise.
8813 * libgnat/s-resfil.adb: Likewise.
8814 * libgnat/s-resfil.ads: Likewise.
8815 * libgnat/s-restri.adb: Likewise.
8816 * libgnat/s-restri.ads: Likewise.
8817 * libgnat/s-rident.ads: Likewise.
8818 * libgnat/s-rpc.adb: Likewise.
8819 * libgnat/s-rpc.ads: Likewise.
8820 * libgnat/s-scaval.adb: Likewise.
8821 * libgnat/s-scaval.ads: Likewise.
8822 * libgnat/s-scaval__128.adb: Likewise.
8823 * libgnat/s-scaval__128.ads: Likewise.
8824 * libgnat/s-secsta.adb: Likewise.
8825 * libgnat/s-secsta.ads: Likewise.
8826 * libgnat/s-sequio.adb: Likewise.
8827 * libgnat/s-sequio.ads: Likewise.
8828 * libgnat/s-shabig.ads: Likewise.
8829 * libgnat/s-shasto.adb: Likewise.
8830 * libgnat/s-shasto.ads: Likewise.
8831 * libgnat/s-soflin.adb: Likewise.
8832 * libgnat/s-soflin.ads: Likewise.
8833 * libgnat/s-soliin.adb: Likewise.
8834 * libgnat/s-soliin.ads: Likewise.
8835 * libgnat/s-sopco3.adb: Likewise.
8836 * libgnat/s-sopco3.ads: Likewise.
8837 * libgnat/s-sopco4.adb: Likewise.
8838 * libgnat/s-sopco4.ads: Likewise.
8839 * libgnat/s-sopco5.adb: Likewise.
8840 * libgnat/s-sopco5.ads: Likewise.
8841 * libgnat/s-spsufi.adb: Likewise.
8842 * libgnat/s-spsufi.ads: Likewise.
8843 * libgnat/s-stache.adb: Likewise.
8844 * libgnat/s-stache.ads: Likewise.
8845 * libgnat/s-stalib.adb: Likewise.
8846 * libgnat/s-stalib.ads: Likewise.
8847 * libgnat/s-statxd.adb: Likewise.
8848 * libgnat/s-statxd.ads: Likewise.
8849 * libgnat/s-stausa.adb: Likewise.
8850 * libgnat/s-stausa.ads: Likewise.
8851 * libgnat/s-stchop.adb: Likewise.
8852 * libgnat/s-stchop.ads: Likewise.
8853 * libgnat/s-stchop__limit.ads: Likewise.
8854 * libgnat/s-stchop__rtems.adb: Likewise.
8855 * libgnat/s-stchop__vxworks.adb: Likewise.
8856 * libgnat/s-stoele.adb: Likewise.
8857 * libgnat/s-stoele.ads: Likewise.
8858 * libgnat/s-stopoo.adb: Likewise.
8859 * libgnat/s-stopoo.ads: Likewise.
8860 * libgnat/s-stposu.adb: Likewise.
8861 * libgnat/s-stposu.ads: Likewise.
8862 * libgnat/s-stratt.adb: Likewise.
8863 * libgnat/s-stratt.ads: Likewise.
8864 * libgnat/s-strcom.adb: Likewise.
8865 * libgnat/s-strcom.ads: Likewise.
8866 * libgnat/s-strhas.adb: Likewise.
8867 * libgnat/s-strhas.ads: Likewise.
8868 * libgnat/s-string.adb: Likewise.
8869 * libgnat/s-string.ads: Likewise.
8870 * libgnat/s-strops.adb: Likewise.
8871 * libgnat/s-strops.ads: Likewise.
8872 * libgnat/s-ststop.adb: Likewise.
8873 * libgnat/s-ststop.ads: Likewise.
8874 * libgnat/s-tasloc.adb: Likewise.
8875 * libgnat/s-tasloc.ads: Likewise.
8876 * libgnat/s-thread.ads: Likewise.
8877 * libgnat/s-thread__ae653.adb: Likewise.
8878 * libgnat/s-traceb.adb: Likewise.
8879 * libgnat/s-traceb.ads: Likewise.
8880 * libgnat/s-traceb__hpux.adb: Likewise.
8881 * libgnat/s-traceb__mastop.adb: Likewise.
8882 * libgnat/s-traent.adb: Likewise.
8883 * libgnat/s-traent.ads: Likewise.
8884 * libgnat/s-trasym.adb: Likewise.
8885 * libgnat/s-trasym.ads: Likewise.
8886 * libgnat/s-trasym__dwarf.adb: Likewise.
8887 * libgnat/s-tsmona.adb: Likewise.
8888 * libgnat/s-tsmona__linux.adb: Likewise.
8889 * libgnat/s-tsmona__mingw.adb: Likewise.
8890 * libgnat/s-unstyp.ads: Likewise.
8891 * libgnat/s-utf_32.adb: Likewise.
8892 * libgnat/s-utf_32.ads: Likewise.
8893 * libgnat/s-vade128.ads: Likewise.
8894 * libgnat/s-vade32.ads: Likewise.
8895 * libgnat/s-vade64.ads: Likewise.
8896 * libgnat/s-vafi128.ads: Likewise.
8897 * libgnat/s-vafi32.ads: Likewise.
8898 * libgnat/s-vafi64.ads: Likewise.
8899 * libgnat/s-valboo.adb: Likewise.
8900 * libgnat/s-valboo.ads: Likewise.
8901 * libgnat/s-valcha.adb: Likewise.
8902 * libgnat/s-valcha.ads: Likewise.
8903 * libgnat/s-valenu.adb: Likewise.
8904 * libgnat/s-valenu.ads: Likewise.
8905 * libgnat/s-valflt.ads: Likewise.
8906 * libgnat/s-valint.adb: Likewise.
8907 * libgnat/s-valint.ads: Likewise.
8908 * libgnat/s-vallfl.ads: Likewise.
8909 * libgnat/s-valllf.ads: Likewise.
8910 * libgnat/s-vallli.adb: Likewise.
8911 * libgnat/s-vallli.ads: Likewise.
8912 * libgnat/s-valllli.ads: Likewise.
8913 * libgnat/s-vallllu.ads: Likewise.
8914 * libgnat/s-valllu.adb: Likewise.
8915 * libgnat/s-valllu.ads: Likewise.
8916 * libgnat/s-valrea.adb: Likewise.
8917 * libgnat/s-valrea.ads: Likewise.
8918 * libgnat/s-valued.adb: Likewise.
8919 * libgnat/s-valued.ads: Likewise.
8920 * libgnat/s-valuef.adb: Likewise.
8921 * libgnat/s-valuef.ads: Likewise.
8922 * libgnat/s-valuei.adb: Likewise.
8923 * libgnat/s-valuei.ads: Likewise.
8924 * libgnat/s-valuer.adb: Likewise.
8925 * libgnat/s-valuer.ads: Likewise.
8926 * libgnat/s-valueu.adb: Likewise.
8927 * libgnat/s-valueu.ads: Likewise.
8928 * libgnat/s-valuns.adb: Likewise.
8929 * libgnat/s-valuns.ads: Likewise.
8930 * libgnat/s-valuti.adb: Likewise.
8931 * libgnat/s-valuti.ads: Likewise.
8932 * libgnat/s-valwch.adb: Likewise.
8933 * libgnat/s-valwch.ads: Likewise.
8934 * libgnat/s-veboop.adb: Likewise.
8935 * libgnat/s-veboop.ads: Likewise.
8936 * libgnat/s-vector.ads: Likewise.
8937 * libgnat/s-vercon.adb: Likewise.
8938 * libgnat/s-vercon.ads: Likewise.
8939 * libgnat/s-wchcnv.adb: Likewise.
8940 * libgnat/s-wchcnv.ads: Likewise.
8941 * libgnat/s-wchcon.adb: Likewise.
8942 * libgnat/s-wchcon.ads: Likewise.
8943 * libgnat/s-wchjis.adb: Likewise.
8944 * libgnat/s-wchjis.ads: Likewise.
8945 * libgnat/s-wchstw.adb: Likewise.
8946 * libgnat/s-wchstw.ads: Likewise.
8947 * libgnat/s-wchwts.adb: Likewise.
8948 * libgnat/s-wchwts.ads: Likewise.
8949 * libgnat/s-widboo.adb: Likewise.
8950 * libgnat/s-widboo.ads: Likewise.
8951 * libgnat/s-widcha.adb: Likewise.
8952 * libgnat/s-widcha.ads: Likewise.
8953 * libgnat/s-widenu.adb: Likewise.
8954 * libgnat/s-widenu.ads: Likewise.
8955 * libgnat/s-widint.ads: Likewise.
8956 * libgnat/s-widlli.adb: Likewise.
8957 * libgnat/s-widlli.ads: Likewise.
8958 * libgnat/s-widllli.ads: Likewise.
8959 * libgnat/s-widlllu.ads: Likewise.
8960 * libgnat/s-widllu.adb: Likewise.
8961 * libgnat/s-widllu.ads: Likewise.
8962 * libgnat/s-widthi.adb: Likewise.
8963 * libgnat/s-widthi.ads: Likewise.
8964 * libgnat/s-widthu.adb: Likewise.
8965 * libgnat/s-widthu.ads: Likewise.
8966 * libgnat/s-widuns.ads: Likewise.
8967 * libgnat/s-widwch.adb: Likewise.
8968 * libgnat/s-widwch.ads: Likewise.
8969 * libgnat/s-win32.ads: Likewise.
8970 * libgnat/s-winext.ads: Likewise.
8971 * libgnat/s-wwdcha.adb: Likewise.
8972 * libgnat/s-wwdcha.ads: Likewise.
8973 * libgnat/s-wwdenu.adb: Likewise.
8974 * libgnat/s-wwdenu.ads: Likewise.
8975 * libgnat/s-wwdwch.adb: Likewise.
8976 * libgnat/s-wwdwch.ads: Likewise.
8977 * libgnat/system-aix.ads: Likewise.
8978 * libgnat/system-darwin-arm.ads: Likewise.
8979 * libgnat/system-darwin-ppc.ads: Likewise.
8980 * libgnat/system-darwin-x86.ads: Likewise.
8981 * libgnat/system-djgpp.ads: Likewise.
8982 * libgnat/system-dragonfly-x86_64.ads: Likewise.
8983 * libgnat/system-freebsd.ads: Likewise.
8984 * libgnat/system-hpux-ia64.ads: Likewise.
8985 * libgnat/system-hpux.ads: Likewise.
8986 * libgnat/system-linux-alpha.ads: Likewise.
8987 * libgnat/system-linux-arm.ads: Likewise.
8988 * libgnat/system-linux-hppa.ads: Likewise.
8989 * libgnat/system-linux-ia64.ads: Likewise.
8990 * libgnat/system-linux-m68k.ads: Likewise.
8991 * libgnat/system-linux-mips.ads: Likewise.
8992 * libgnat/system-linux-ppc.ads: Likewise.
8993 * libgnat/system-linux-riscv.ads: Likewise.
8994 * libgnat/system-linux-s390.ads: Likewise.
8995 * libgnat/system-linux-sh4.ads: Likewise.
8996 * libgnat/system-linux-sparc.ads: Likewise.
8997 * libgnat/system-linux-x86.ads: Likewise.
8998 * libgnat/system-lynxos178-ppc.ads: Likewise.
8999 * libgnat/system-lynxos178-x86.ads: Likewise.
9000 * libgnat/system-mingw.ads: Likewise.
9001 * libgnat/system-qnx-aarch64.ads: Likewise.
9002 * libgnat/system-rtems.ads: Likewise.
9003 * libgnat/system-solaris-sparc.ads: Likewise.
9004 * libgnat/system-solaris-x86.ads: Likewise.
9005 * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
9006 * libgnat/system-vxworks-arm-rtp.ads: Likewise.
9007 * libgnat/system-vxworks-arm.ads: Likewise.
9008 * libgnat/system-vxworks-e500-kernel.ads: Likewise.
9009 * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
9010 * libgnat/system-vxworks-e500-rtp.ads: Likewise.
9011 * libgnat/system-vxworks-e500-vthread.ads: Likewise.
9012 * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
9013 * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
9014 * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
9015 * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
9016 * libgnat/system-vxworks-ppc-vthread.ads: Likewise.
9017 * libgnat/system-vxworks-ppc.ads: Likewise.
9018 * libgnat/system-vxworks-x86-kernel.ads: Likewise.
9019 * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
9020 * libgnat/system-vxworks-x86-rtp.ads: Likewise.
9021 * libgnat/system-vxworks-x86-vthread.ads: Likewise.
9022 * libgnat/system-vxworks-x86.ads: Likewise.
9023 * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
9024 * libgnat/system-vxworks7-aarch64.ads: Likewise.
9025 * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
9026 * libgnat/system-vxworks7-arm.ads: Likewise.
9027 * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
9028 * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
9029 * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
9030 * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
9031 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
9032 * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
9033 * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
9034 * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
9035 * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
9036 * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
9037 * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
9038 * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
9039 * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
9041 * live.adb: Likewise.
9042 * live.ads: Likewise.
9043 * locales.c: Likewise.
9044 * make.adb: Likewise.
9045 * make.ads: Likewise.
9046 * make_util.adb: Likewise.
9047 * make_util.ads: Likewise.
9048 * makeusg.adb: Likewise.
9049 * makeusg.ads: Likewise.
9050 * mdll-fil.adb: Likewise.
9051 * mdll-fil.ads: Likewise.
9052 * mdll-utl.adb: Likewise.
9053 * mdll-utl.ads: Likewise.
9054 * mdll.adb: Likewise.
9055 * mdll.ads: Likewise.
9056 * mingw32.h: Likewise.
9057 * mkdir.c: Likewise.
9058 * namet-sp.adb: Likewise.
9059 * namet-sp.ads: Likewise.
9060 * namet.adb: Likewise.
9061 * namet.ads: Likewise.
9062 * namet.h: Likewise.
9063 * nlists.adb: Likewise.
9064 * nlists.ads: Likewise.
9065 * nlists.h: Likewise.
9066 * opt.adb: Likewise.
9067 * opt.ads: Likewise.
9068 * osint-b.adb: Likewise.
9069 * osint-b.ads: Likewise.
9070 * osint-c.adb: Likewise.
9071 * osint-c.ads: Likewise.
9072 * osint-l.adb: Likewise.
9073 * osint-l.ads: Likewise.
9074 * osint-m.adb: Likewise.
9075 * osint-m.ads: Likewise.
9076 * osint.adb: Likewise.
9077 * osint.ads: Likewise.
9078 * output.adb: Likewise.
9079 * output.ads: Likewise.
9080 * par-ch10.adb: Likewise.
9081 * par-ch11.adb: Likewise.
9082 * par-ch12.adb: Likewise.
9083 * par-ch13.adb: Likewise.
9084 * par-ch2.adb: Likewise.
9085 * par-ch3.adb: Likewise.
9086 * par-ch4.adb: Likewise.
9087 * par-ch5.adb: Likewise.
9088 * par-ch6.adb: Likewise.
9089 * par-ch7.adb: Likewise.
9090 * par-ch8.adb: Likewise.
9091 * par-ch9.adb: Likewise.
9092 * par-endh.adb: Likewise.
9093 * par-labl.adb: Likewise.
9094 * par-load.adb: Likewise.
9095 * par-prag.adb: Likewise.
9096 * par-sync.adb: Likewise.
9097 * par-tchk.adb: Likewise.
9098 * par-util.adb: Likewise.
9099 * par.adb: Likewise.
9100 * par.ads: Likewise.
9101 * par_sco.adb: Likewise.
9102 * par_sco.ads: Likewise.
9103 * pprint.adb: Likewise.
9104 * pprint.ads: Likewise.
9105 * prep.adb: Likewise.
9106 * prep.ads: Likewise.
9107 * prepcomp.adb: Likewise.
9108 * prepcomp.ads: Likewise.
9109 * put_scos.adb: Likewise.
9110 * put_scos.ads: Likewise.
9111 * raise-gcc.c: Likewise.
9112 * raise.c: Likewise.
9113 * raise.h: Likewise.
9114 * repinfo-input.adb: Likewise.
9115 * repinfo-input.ads: Likewise.
9116 * repinfo.adb: Likewise.
9117 * repinfo.ads: Likewise.
9118 * repinfo.h: Likewise.
9119 * restrict.adb: Likewise.
9120 * restrict.ads: Likewise.
9121 * rident.ads: Likewise.
9122 * rtfinal.c: Likewise.
9123 * rtinit.c: Likewise.
9124 * rtsfind.adb: Likewise.
9125 * rtsfind.ads: Likewise.
9126 * runtime.h: Likewise.
9127 * s-oscons-tmplt.c: Likewise.
9128 * sa_messages.adb: Likewise.
9129 * sa_messages.ads: Likewise.
9130 * scans.adb: Likewise.
9131 * scans.ads: Likewise.
9132 * scil_ll.adb: Likewise.
9133 * scil_ll.ads: Likewise.
9134 * scn.adb: Likewise.
9135 * scn.ads: Likewise.
9136 * scng.adb: Likewise.
9137 * scng.ads: Likewise.
9138 * scos.adb: Likewise.
9139 * scos.ads: Likewise.
9141 * sdefault.ads: Likewise.
9142 * seh_init.c: Likewise.
9143 * sem.adb: Likewise.
9144 * sem.ads: Likewise.
9145 * sem_aggr.adb: Likewise.
9146 * sem_aggr.ads: Likewise.
9147 * sem_attr.adb: Likewise.
9148 * sem_attr.ads: Likewise.
9149 * sem_aux.adb: Likewise.
9150 * sem_aux.ads: Likewise.
9151 * sem_case.adb: Likewise.
9152 * sem_case.ads: Likewise.
9153 * sem_cat.adb: Likewise.
9154 * sem_cat.ads: Likewise.
9155 * sem_ch10.adb: Likewise.
9156 * sem_ch10.ads: Likewise.
9157 * sem_ch11.adb: Likewise.
9158 * sem_ch11.ads: Likewise.
9159 * sem_ch12.adb: Likewise.
9160 * sem_ch12.ads: Likewise.
9161 * sem_ch13.adb: Likewise.
9162 * sem_ch13.ads: Likewise.
9163 * sem_ch2.adb: Likewise.
9164 * sem_ch2.ads: Likewise.
9165 * sem_ch3.adb: Likewise.
9166 * sem_ch3.ads: Likewise.
9167 * sem_ch4.adb: Likewise.
9168 * sem_ch4.ads: Likewise.
9169 * sem_ch5.adb: Likewise.
9170 * sem_ch5.ads: Likewise.
9171 * sem_ch6.adb: Likewise.
9172 * sem_ch6.ads: Likewise.
9173 * sem_ch7.adb: Likewise.
9174 * sem_ch7.ads: Likewise.
9175 * sem_ch8.adb: Likewise.
9176 * sem_ch8.ads: Likewise.
9177 * sem_ch9.adb: Likewise.
9178 * sem_ch9.ads: Likewise.
9179 * sem_dim.adb: Likewise.
9180 * sem_dim.ads: Likewise.
9181 * sem_disp.adb: Likewise.
9182 * sem_disp.ads: Likewise.
9183 * sem_dist.adb: Likewise.
9184 * sem_dist.ads: Likewise.
9185 * sem_elab.adb: Likewise.
9186 * sem_elab.ads: Likewise.
9187 * sem_elim.adb: Likewise.
9188 * sem_elim.ads: Likewise.
9189 * sem_eval.adb: Likewise.
9190 * sem_eval.ads: Likewise.
9191 * sem_intr.adb: Likewise.
9192 * sem_intr.ads: Likewise.
9193 * sem_mech.adb: Likewise.
9194 * sem_mech.ads: Likewise.
9195 * sem_prag.adb: Likewise.
9196 * sem_prag.ads: Likewise.
9197 * sem_res.adb: Likewise.
9198 * sem_res.ads: Likewise.
9199 * sem_scil.adb: Likewise.
9200 * sem_scil.ads: Likewise.
9201 * sem_smem.adb: Likewise.
9202 * sem_smem.ads: Likewise.
9203 * sem_type.adb: Likewise.
9204 * sem_type.ads: Likewise.
9205 * sem_util.adb: Likewise.
9206 * sem_util.ads: Likewise.
9207 * sem_warn.adb: Likewise.
9208 * sem_warn.ads: Likewise.
9209 * set_targ.adb: Likewise.
9210 * set_targ.ads: Likewise.
9211 * sfn_scan.adb: Likewise.
9212 * sfn_scan.ads: Likewise.
9213 * sigtramp-armdroid.c: Likewise.
9214 * sigtramp-ios.c: Likewise.
9215 * sigtramp-qnx.c: Likewise.
9216 * sigtramp-vxworks.c: Likewise.
9217 * sigtramp.h: Likewise.
9218 * sinfo-cn.adb: Likewise.
9219 * sinfo-cn.ads: Likewise.
9220 * sinfo.adb: Likewise.
9221 * sinfo.ads: Likewise.
9222 * sinput-c.adb: Likewise.
9223 * sinput-c.ads: Likewise.
9224 * sinput-d.adb: Likewise.
9225 * sinput-d.ads: Likewise.
9226 * sinput-l.adb: Likewise.
9227 * sinput-l.ads: Likewise.
9228 * sinput.adb: Likewise.
9229 * sinput.ads: Likewise.
9230 * snames.adb-tmpl: Likewise.
9231 * snames.ads-tmpl: Likewise.
9232 * socket.c: Likewise.
9233 * spark_xrefs.adb: Likewise.
9234 * spark_xrefs.ads: Likewise.
9235 * sprint.adb: Likewise.
9236 * sprint.ads: Likewise.
9237 * stand.ads: Likewise.
9238 * stringt.adb: Likewise.
9239 * stringt.ads: Likewise.
9240 * stringt.h: Likewise.
9241 * style.adb: Likewise.
9242 * style.ads: Likewise.
9243 * styleg.adb: Likewise.
9244 * styleg.ads: Likewise.
9245 * stylesw.adb: Likewise.
9246 * stylesw.ads: Likewise.
9247 * switch-b.adb: Likewise.
9248 * switch-b.ads: Likewise.
9249 * switch-c.adb: Likewise.
9250 * switch-c.ads: Likewise.
9251 * switch-m.adb: Likewise.
9252 * switch-m.ads: Likewise.
9253 * switch.adb: Likewise.
9254 * switch.ads: Likewise.
9255 * sysdep.c: Likewise.
9256 * table.adb: Likewise.
9257 * table.ads: Likewise.
9258 * targext.c: Likewise.
9259 * targparm.adb: Likewise.
9260 * targparm.ads: Likewise.
9261 * tbuild.adb: Likewise.
9262 * tbuild.ads: Likewise.
9263 * tempdir.adb: Likewise.
9264 * tempdir.ads: Likewise.
9265 * terminals.c: Likewise.
9266 * tracebak.c: Likewise.
9267 * treepr.adb: Likewise.
9268 * treepr.ads: Likewise.
9269 * ttypes.ads: Likewise.
9270 * types.adb: Likewise.
9271 * types.ads: Likewise.
9272 * types.h: Likewise.
9273 * uintp.adb: Likewise.
9274 * uintp.ads: Likewise.
9275 * uintp.h: Likewise.
9276 * uname.adb: Likewise.
9277 * uname.ads: Likewise.
9278 * urealp.adb: Likewise.
9279 * urealp.ads: Likewise.
9280 * urealp.h: Likewise.
9281 * usage.adb: Likewise.
9282 * usage.ads: Likewise.
9283 * validsw.adb: Likewise.
9284 * validsw.ads: Likewise.
9285 * vast.adb: Likewise.
9286 * vast.ads: Likewise.
9287 * warnsw.adb: Likewise.
9288 * warnsw.ads: Likewise.
9289 * widechar.adb: Likewise.
9290 * widechar.ads: Likewise.
9291 * xeinfo.adb: Likewise.
9292 * xnmake.adb: Likewise.
9293 * xoscons.adb: Likewise.
9294 * xr_tabls.adb: Likewise.
9295 * xr_tabls.ads: Likewise.
9296 * xref_lib.adb: Likewise.
9297 * xref_lib.ads: Likewise.
9298 * xsinfo.adb: Likewise.
9299 * xsnamest.adb: Likewise.
9300 * xtreeprs.adb: Likewise.
9301 * xutil.adb: Likewise.
9302 * xutil.ads: Likewise.
9304 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
9306 * exp_dist.adb (Build_From_Any_Call): Remove initial value for
9308 (Build_To_Any_Call): Remove initial value for Fnam.
9309 (Build_TypeCode_Call): Likewise.
9311 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
9313 * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch6.adb,
9314 exp_disp.adb, exp_imgv.adb, exp_util.adb, sem_attr.adb,
9315 sem_ch13.adb, sem_ch8.adb, sem_eval.adb, sem_scil.adb,
9316 sem_util.adb: Replace calls to RTE with Is_RTE.
9318 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
9320 * sem_ch4.adb (Try_Object_Operation): Reuse local constant.
9322 2021-05-03 Ed Schonberg <schonberg@adacore.com>
9324 * sem_ch4.adb (Try_Object_Operation): When a prefixed call is
9325 overloaded and illegal, and the All_Errors flag is off, generate
9326 an error message if the re-analysis of some candidate
9327 interpretation fails to produce one.
9329 2021-05-03 Dmitriy Anisimkov <anisimko@adacore.com>
9331 * libgnat/g-casuti.adb: Replace with "pragma No_Body".
9332 * libgnat/g-casuti.ads: Replace with a package renaming.
9334 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
9336 * sem_attr.adb (Check_Program_Unit): Fix references to
9337 Concurrent_Kind and Is_Concurrent_Type; avoid repeated calls to
9340 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
9342 * sem_attr.adb (Check_Program_Unit): Replace tests for Task_Kind
9343 and Protected_Kind with a collective test for Concurrent_Kind;
9344 likewise, replace calls to Is_Task_Type and Is_Protected_Type
9345 with a collective call to Is_Concurrent_Type; simplify into a
9346 single membership test; add missing Entry_Kind alternative.
9348 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
9350 * sem_aggr.adb (Resolve_Record_Aggregate): Fix casing in error
9352 * sem_ch3.adb (Add_Internal_Interface_Entities): Fix unbalanced
9354 * sem_elim.adb (Eliminate_Error_Msg): Add insertion character.
9356 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
9358 * freeze.adb (Freeze_Profile): Replace Error_Msg_NE with
9359 Error_Msg_N; change to continuation message.
9360 * sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch5.adb: Replace
9361 calls to Error_Msg_NE with calls to Error_Msg_N.
9363 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
9365 * exp_disp.adb, sem_aggr.adb, sem_cat.adb, sem_ch10.adb,
9366 sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
9367 sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_prag.adb,
9368 sem_res.adb: Remove extra leading and trailing space in error
9371 2021-05-03 Arnaud Charlet <charlet@adacore.com>
9373 * sem_prag.adb (Set_Exported): Do not warn on exporting a type.
9375 2021-05-03 Ed Schonberg <schonberg@adacore.com>
9377 * sem_warn.adb (Check_References): Do not emit warning on a
9378 selected component when enclosing type has no discriminant and
9379 type of component has partial initialization.
9381 2021-05-03 Justin Squirek <squirek@adacore.com>
9383 * contracts.adb (Build_Postconditions_Procedure): Remove
9384 internally generated if statement used to control finalization
9386 * exp_ch6.adb (Add_Return, Expand_Non_Function_Return,
9387 Expand_Simple_Function_Return): Add if statement around
9388 _postconditions to control finalization.
9389 * exp_ch7.adb (Build_Finalizer): Likewise.
9390 * sem_prag.adb (Find_Related_Declaration_Or_Body): Add case to
9391 handle Context itself being a handled sequence of statements.
9393 2021-05-03 Justin Squirek <squirek@adacore.com>
9395 * sem_util.adb (In_Return_Value): Modified to detect when
9396 implicit dereference is specified on the return type of a
9397 function call within the expression being checked.
9399 2021-05-03 Ed Schonberg <schonberg@adacore.com>
9401 * exp_aggr.adb (Expand_Array_Aggregate): If the parent node of
9402 the aggregate is a subprogram call there is no target in which
9403 to build the aggregate, and it has to be expanded into component
9406 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
9408 * exp_prag.adb (Expand_Pragma_CUDA_Execute): Refill comments;
9409 remove periods after single-line comments; use procedural
9410 variant of Next_Entity.
9411 * gnat_cuda.adb: Refill comments; remove periods after
9412 single-line comments; replace calls to UI_From_Int with
9413 constants; change iteration bounds so they match the comments.
9414 * sem_prag.adb (Analyze_Pragma): Add checks for malformed pragma
9415 CUDA_Kernel aggregate; simplify processing of pragma CUDA_Global
9416 with Check_Arg_Count; sync comment with code for CUDA_Global.
9418 2021-05-03 Arnaud Charlet <charlet@adacore.com>
9420 * tbuild.adb (Make_Implicit_Loop_Statement): Disable restriction
9421 checking on dead paths.
9423 2021-05-03 Arnaud Charlet <charlet@adacore.com>
9425 * sem_util.adb (Check_Result_And_Post_State): Replace custom
9426 Has_In_Out_Parameter with existing Has_Out_Or_In_Out_Parameter
9427 flag which corresponds exactly to what we need.
9429 2021-05-03 Arnaud Charlet <charlet@adacore.com>
9431 * libgnat/a-ztcoio.adb: Remove unused with clause.
9433 2021-05-03 Piotr Trojanek <trojanek@adacore.com>
9435 * sem_ch13.adb (Build_Predicate_Functions): Fix typo in comment.
9436 (Resolve_Aspect_Expressions): Fix typo in comment; remove
9437 redundant check for no aspects; simplify with Discard_Node.
9439 2021-05-03 Ed Schonberg <schonberg@adacore.com>
9441 * sem_util.adb (Build_Constrained_Itype): Remove prior patch,
9442 issue is better handled in Sem_Ch13.Build_Predicate_Functions.
9443 * sem_ch13.adb (Build_Predicate_Functions): Do not build
9444 predicate function for an Itype with a defined
9445 Predicated_Parent, even if that designated parent does not yet
9446 have a Predicate_Function. This can happen in instance bodies
9447 nested within a generic unit.
9449 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
9451 * exp_attr.adb (Expand_N_Attribute_Reference)
9452 <Attribute_Max_Size_In_Storage_Elements>: Apply the checks for
9453 universal integer contexts only in the default case.
9454 * exp_ch4.adb (Get_Size_For_Range): Move to library level.
9455 (Expand_N_Type_Conversion): If the operand has Universal_Integer
9456 type and the conversion requires an overflow check, try to do an
9457 intermediate conversion to a narrower type.
9459 2021-04-29 Arnaud Charlet <charlet@adacore.com>
9461 * sem_ch3.adb (Check_Anonymous_Access_Component): Factor out
9462 core processing of Check_Anonymous_Access_Components.
9463 (Check_Anonymous_Access_Components): Call
9464 Check_Anonymous_Access_Component.
9465 (Process_Discriminants): Call Check_Anonymous_Access_Component.
9466 * freeze.adb (Freeze_Record_Type): Code cleanups and add more tree
9467 checking to handle changes in sem_ch3.adb.
9468 * sem_ch8.adb (Find_Type): Remove special case for access
9469 discriminant in task types, these are now supported.
9471 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
9473 * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): Remove
9475 (Expand_N_In): Call Minimized_Eliminated_Overflow_Check on the left
9476 operand before doing the special overflow expansion.
9477 (Expand_N_Op_Eq): Likewise.
9478 (Expand_N_Op_Ge): Likewise.
9479 (Expand_N_Op_Gt): Likewise.
9480 (Expand_N_Op_Le): Likewise.
9481 (Expand_N_Op_Lt): Likewise.
9482 (Expand_N_Op_Ne): Likewise.
9483 (Minimized_Eliminated_Overflow_Check): Return False for Minimized
9484 if the size of the type is greater than that of Long_Long_Integer.
9486 2021-04-29 Arnaud Charlet <charlet@adacore.com>
9488 * exp_ch5.adb (Expand_N_If_Statement): Only perform the
9489 simplification on return True/False for internal nodes when
9490 -fpreserve-control-flow is not set.
9492 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
9494 * sem_attr.adb (Eval_Attribute) <Attribute_Machine>: Use
9495 Round_Even instead of Round in the call to the Machine routine.
9497 2021-04-29 Bob Duff <duff@adacore.com>
9499 * sem_attr.adb (Analyze_Attribute): Change "$" to "&".
9500 Otherwise, Errout will trip over an uninitialized (invalid)
9501 variable (Error_Msg_Unit_1).
9503 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
9505 * libgnat/s-valuer.adb (Scan_Decimal_Digits): Set Extra to zero
9506 when the precision limit is reached by means of trailing zeros
9507 and prevent it from being overwritten later.
9509 2021-04-29 Yannick Moy <moy@adacore.com>
9511 * errout.adb (Output_Messages): Insert SGR strings where needed.
9512 * erroutc.adb (Output_Message_Txt): Insert SGR strings where
9513 needed in the text of the message itself.
9514 (Output_Msg_Text): Allow for style message not to start
9516 * erroutc.ads: Add new constants and functions to control colors
9517 in messages output to the terminal. Add variable Use_SGR_Control
9518 that should be set to True for using SGR color control strings.
9520 2021-04-29 Yannick Moy <moy@adacore.com>
9522 * sem_eval.adb (Check_Non_Static_Context_For_Overflow): Apply
9523 compile-time checking for overflows in non-static contexts
9524 including inlined code.
9525 (Eval_Arithmetic_Op): Use the new procedure.
9526 (Eval_Unary_Op, Eval_Op_Expon): Add call to the new procedure.
9528 2021-04-29 Justin Squirek <squirek@adacore.com>
9530 * checks.adb (Apply_Type_Conversion_Checks): Move out constraint
9531 check generation, and add case for general access types with
9533 (Make_Discriminant_Constraint_Check): Created to centralize
9534 generation of constraint checks for stored discriminants.
9536 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
9538 * gnat1drv.adb (Adjust_Global_Switches): Force a 32-bit Duration
9539 type if the maximum integer size is lower than 64 bits.
9541 2021-04-29 Arnaud Charlet <charlet@adacore.com>
9543 * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove unused files.
9544 (ADA_INCLUDE_SRCS): Remove libgnat/system.ads
9546 2021-04-29 Arnaud Charlet <charlet@adacore.com>
9548 * exp_aggr.adb (Collect_Initialization_Statements): Removed.
9549 (Convert_Aggr_In_Object_Decl, Expand_Array_Aggregate): Fix
9550 creation and insertion of Initialization_Statements. Do not set
9551 Initialization_Statements when a transient scope is involved.
9552 Move processing of Array_Slice here. Ensure that an object with
9553 an Array_Slice call gets its array component initialized. Add
9555 * exp_ch7.adb: Update comments.
9556 (Store_Actions_In_Scope): Deal properly with an empty list which
9557 might now be generated by Convert_Aggr_In_Object_Decl.
9558 * exp_ch3.adb: Update comments.
9559 (Expand_N_Object_Declaration): Remove processing of Array_Slice.
9561 2021-04-29 Arnaud Charlet <charlet@adacore.com>
9563 * sem_ch8.adb (Analyze_Object_Renaming): Update check for
9566 2021-04-29 Patrick Bernardi <bernardi@adacore.com>
9568 * libgnat/s-stoele.ads (Storage_Offset): Cleanup comment.
9570 2021-04-29 Gary Dismukes <dismukes@adacore.com>
9572 * exp_util.adb (Add_Own_DIC): Relax the suppression of adding a
9573 DIC Check pragma that's done for abstract types by still doing
9574 it in the case where GNATprove_Mode is set.
9576 2021-04-29 Joel Brobecker <brobecker@adacore.com>
9578 * Makefile.rtl (ADA_EXCLUDE_SRCS): Remove s-gcc.adb, s-gcc.ads,
9579 s-gccdiv.adb, s-gccdiv.ads, s-gccshi.adb and s-gccshi.ads.
9581 2021-04-29 Piotr Trojanek <trojanek@adacore.com>
9583 * layout.adb (Layout_Type): Refine type of a local variable with
9584 the required size of object from Int to Pos (it is initialized
9585 with 8 and only multiplied by 2); fix unbalanced parens in
9588 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
9590 * eval_fat.adb (Succ): Use Ureal_Half in a couple of places.
9592 2021-04-29 Ed Schonberg <schonberg@adacore.com>
9594 * sem_util.adb (Build_Constrained_Itype): Inhibit the generation
9595 of predicate functions for this Itype, which is created for an
9596 aggregate of a discriminated type. The object to which the
9597 aggregate is assigned, e.g a writable actual parameter, will
9598 apply the predicates if any are inherited from the base type.
9600 2021-04-29 Piotr Trojanek <trojanek@adacore.com>
9602 * sem_cat.adb (Set_Categorization_From_Pragmas): Remove special
9603 case for generic child units; remove optimization for empty list
9604 of pragmas; properly restore visibility.
9606 2021-04-29 Piotr Trojanek <trojanek@adacore.com>
9608 * sem_elab.adb (Process_SPARK_Instantiation): Fix typo in
9610 * sem_prag.adb (Find_Related_Context): Add missing reference to
9611 No_Caching in the comment; handle pragmas on compilation units.
9613 2021-04-29 Piotr Trojanek <trojanek@adacore.com>
9615 * doc/gnat_rm/implementation_defined_attributes.rst: Change all
9616 occurrences of "permissible prefix" to "allowed prefix", for
9618 * gnat_rm.texi: Regenerate.
9620 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
9622 * eval_fat.adb (Succ): Add a special case for zero if the type does
9623 not support denormalized numbers. Always use the canonical formula
9624 in other cases and add commentary throughout the function.
9626 2021-04-29 Eric Botcazou <ebotcazou@adacore.com>
9628 * libgnat/s-fatgen.adb: Remove with clause for Interfaces and
9629 use type clauses for Interfaces.Unsigned_{16,32,64}.
9632 (Small64): Likewise.
9633 (Small80): Likewise.
9638 (Siz): Always use 16.
9640 (Rep_Last): Use it in the computation.
9641 (Exp_Factor): Remove special case for 80-bit.
9642 (Sign_Mask): Likewise.
9643 (Finite_Succ): New function implementing the Succ attribute for
9645 (Pred): Rewrite in terms of Finite_Succ.
9648 2021-04-29 Arnaud Charlet <charlet@adacore.com>
9650 * debug_a.adb (Debug_Output_Astring): Remove obsolete comment.
9652 2021-04-29 Arnaud Charlet <charlet@adacore.com>
9654 * sem_attr.adb (Check_Image_Type): Protect against empty
9657 2021-04-29 Arnaud Charlet <charlet@adacore.com>
9659 * libgnat/a-nbnbin.ads (From_Universal_Image): New.
9660 (Big_Integer): Update definition.
9661 * libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb
9662 (From_Universal_Image): New.
9663 (From_String): Remove alternate body, replaced by
9664 From_Universal_Image.
9665 (Big_Real): Update definition.
9667 2021-04-29 Gary Dismukes <dismukes@adacore.com>
9669 * sem_ch8.adb (Find_Type): Check the No_Obsolescent_Features
9670 restriction for 'Class applied to an untagged incomplete
9671 type (when Ada_Version >= Ada_2005). Remove disabling of the
9672 warning message for such usage, along with the ??? comment,
9673 which no longer applies (because the -gnatg switch no longer
9674 sets Warn_On_Obsolescent_Feature).
9676 2021-04-29 Yannick Moy <moy@adacore.com>
9678 * errout.adb (Error_Msg_NEL): Extract span from node.
9679 (First_And_Last_Nodes): Use spans for subtype indications and
9680 attribute definition clauses.
9681 (Write_Source_Code_Lines): Fix for tabulation characters. Change
9682 output for large spans to skip intermediate lines.
9683 * sem_case.adb (Check_Choice_Set): Report duplicate choice on
9684 the Original_Node for the case.
9685 (Generic_Check_Choices): Set the Original_Node for the rewritten
9686 case, so that the subtree used in spans has the correct
9689 2021-04-28 Piotr Trojanek <trojanek@adacore.com>
9691 * sem_ch13.adb, sem_util.adb: Fix style.
9693 2021-04-28 Piotr Trojanek <trojanek@adacore.com>
9695 * nlists.ads (List_Length): Adapt comment to match the
9698 2021-04-28 Arnaud Charlet <charlet@adacore.com>
9700 * sem_eval.adb (Eval_Selected_Component): Only consider compile
9701 time known aggregates.
9703 2021-04-28 Eric Botcazou <ebotcazou@adacore.com>
9705 * libgnat/s-fatgen.adb: Add use clause for Interfaces.Unsigned_16
9706 and Interfaces.Unsigned_32.
9707 (Small16): New constant.
9708 (Small32): Likewise.
9709 (Small64): Likewise.
9710 (Small80): Likewise.
9711 (Pred): Declare a local overlay for Small and return it negated
9712 for zero if the type does not support denormalized numbers.
9713 (Succ): Likewise, but return it directly.
9715 2021-04-28 Piotr Trojanek <trojanek@adacore.com>
9717 * inline.adb (Formal_Is_Used_Once): Refine type of the counter
9718 variable; remove redundant assignment.
9720 2021-04-28 Patrick Bernardi <bernardi@adacore.com>
9722 * libgnarl/s-interr.adb (Install_Restricted_Handlers): Change
9723 Prio parameter to type Interrupt_Priority.
9724 * libgnarl/s-interr.ads (Install_Restricted_Handlers): Likewise.
9725 * libgnarl/s-interr__dummy.adb (Install_Restricted_Handlers):
9727 * libgnarl/s-interr__hwint.adb (Install_Restricted_Handlers):
9729 * libgnarl/s-interr__sigaction.adb (Install_Restricted_Handlers):
9731 * libgnarl/s-interr__vxworks.adb (Install_Restricted_Handlers):
9734 2021-04-28 Piotr Trojanek <trojanek@adacore.com>
9736 * sem_type.ads (Write_Interp_Ref): Removed; no longer needed.
9737 * sem_type.adb (Headers): Removed; now the hash table is
9738 directly in the Interp_Map alone.
9739 (Interp_Map): Now an instance of the GNAT.HTable.Simple_HTable.
9740 (Last_Overloaded): New variable to emulate Interp_Map.Last.
9741 (Add_One_Interp): Adapt to new data structure.
9742 (Get_First_Interp): Likewise.
9744 (Init_Interp_Tables): Likewise.
9745 (New_Interps): Likewise.
9746 (Save_Interps): Likewise; handle O_N variable like in
9748 (Write_Interp_Ref): Removed; no longer needed.
9750 2021-04-28 Piotr Trojanek <trojanek@adacore.com>
9752 * inline.adb (Do_Reset_Calls): Now an instance of Traverse_Proc.
9754 2021-04-28 Piotr Trojanek <trojanek@adacore.com>
9756 * sem_ch13.adb (Analyze_Aspect_Static): Reuse
9757 Error_Msg_Ada_2020_Feature for aspect Static.
9758 (Analyze_One_Aspect): Likewise for aspect Full_Access.
9760 2021-04-28 Piotr Trojanek <trojanek@adacore.com>
9762 * sem_ch13.adb (Analyze_Aspect_Static): Refactor to have a
9763 single check for the expression being present; adapt comments.
9765 2021-04-28 Piotr Trojanek <trojanek@adacore.com>
9767 * sem_ch13.adb (Analyze_Aspect_Static): Use aspect name in the
9770 2021-04-28 Piotr Trojanek <trojanek@adacore.com>
9772 * sem_eval.adb (Eval_Selected_Component): Simplify with
9775 2021-04-28 Eric Botcazou <ebotcazou@adacore.com>
9777 * libgnat/s-valrea.adb (Fast2Sum): New function.
9778 (Integer_to_Real): Use it in an iterated addition with exact
9779 error handling for the case where an extra digit is needed.
9780 Move local variable now only used in the exponentiation case.
9782 2021-04-28 Yannick Moy <moy@adacore.com>
9784 * errout.adb: (Error_Msg_Internal): Use span instead of
9786 (Error_Msg, Error_Msg_NEL): Add versions with span parameter.
9787 (Error_Msg_F, Error_Msg_FE, Error_Msg_N, Error_Msg_NE,
9788 Error_Msg_NW): Retrieve span from node.
9789 (First_Node): Use the new First_And_Last_Nodes.
9790 (First_And_Last_Nodes): Expand on previous First_Node. Apply to
9791 other nodes than expressions.
9792 (First_Sloc): Protect against inconsistent locations.
9793 (Last_Node): New function based on First_And_Last_Nodes.
9794 (Last_Sloc): New function similar to First_Sloc.
9795 (Output_Messages): Update output when -gnatdF is used. Use
9796 character ~ for making the span visible, similar to what is done
9798 * errout.ads (Error_Msg, Error_Msg_NEL): Add versions with span
9800 (First_And_Last_Nodes, Last_Node, Last_Sloc): New subprograms.
9801 * erroutc.adb: Adapt to Sptr field being a span.
9802 * erroutc.ads (Error_Msg_Object): Change field Sptr from
9804 * errutil.adb: Adapt to Sptr field being a span.
9805 * freeze.adb: Use Errout reporting procedures for nodes to get
9807 * par-ch3.adb: Likewise.
9808 * par-prag.adb: Likewise.
9809 * par-util.adb: Likewise.
9810 * sem_case.adb: Likewise.
9811 * sem_ch13.adb: Likewise.
9812 * sem_ch3.adb: Likewise.
9813 * sem_prag.adb: Likewise.
9814 * types.ads: (Source_Span): New type for spans.
9815 (To_Span): Basic constructors for spans.
9817 2021-04-28 Arnaud Charlet <charlet@adacore.com>
9819 * einfo.adb (Discriminant_Constraint): Refine assertion.
9821 2021-04-28 Gary Dismukes <dismukes@adacore.com>
9823 * exp_util.adb (Add_Own_DIC): Suppress expansion of a DIC pragma
9824 when the pragma occurs for an abstract type, since that could
9825 lead to a call to an abstract function, and such DIC checks can
9826 never be performed for abstract types in any case.
9827 * sem_disp.adb (Check_Dispatching_Context): Suppress the check
9828 for illegal calls to abstract subprograms when the call occurs
9829 within a Default_Initial_Condition aspect and the call is passed
9830 the current instance as an actual.
9831 (Has_Controlling_Current_Instance_Actual): New function to test
9832 a call to see if it has any actuals given by direct references
9833 to a current instance of a type
9834 * sem_res.adb (Resolve_Actuals): Issue an error for a call
9835 within a DIC aspect to a nonprimitive subprogram with an actual
9836 given by the name of the DIC type's current instance (which will
9837 show up as a reference to the formal parameter of a DIC
9840 2021-04-28 Ed Schonberg <schonberg@adacore.com>
9842 * exp_ch3.adb (Expand_Record_Extension): Set Parent_Subtype on
9843 the type extension when within a generic unit, even though
9844 expansion is disabled, to allow for proper resolution of
9845 selected components inherited from an ancestor.
9847 2021-04-28 Arnaud Charlet <charlet@adacore.com>
9849 * sem_aux.adb (Is_Limited_Type): Fix logic to check Is_Type
9850 before assuming Ent is a typo.
9851 * sem_ch4.adb (Analyze_Expression_With_Actions): Update
9852 comments, minor reformatting.
9853 * sem_res.adb (Resolve_Declare_Expression): Add protection
9856 2021-04-28 Arnaud Charlet <charlet@adacore.com>
9858 * exp_ch6.adb: Fix typo in comment.
9859 * sem_ch3.adb (Access_Subprogram_Declaration): Add missing call
9860 to Create_Extra_Formals. Remove obsolete bootstrap check.
9861 * sem_eval.adb (Eval_Selected_Component): Simplify a
9862 selected_component on an aggregate.
9864 2021-04-28 Piotr Trojanek <trojanek@adacore.com>
9866 * fmap.ads (Reset_Tables): Remove outdated references to
9868 * sem_eval.ads (Initialize): Likewise.
9869 * sem_type.adb (Headers): Remove initialization at elaboration.
9870 * sem_type.ads (Init_Interp_Tables): Remove outdated reference
9872 * stringt.ads (Initialize): Fix style in comment.
9874 2021-04-28 Piotr Trojanek <trojanek@adacore.com>
9876 * sem_res.ads: Update reference in comment.
9877 * sem_type.ads: Fix casing in a name of a unit.
9879 2021-04-28 Yannick Moy <moy@adacore.com>
9881 * ghost.adb (Check_Ghost_Context): Add continuation message when
9884 2021-04-28 Eric Botcazou <ebotcazou@adacore.com>
9886 * libgnat/s-valrea.adb (Integer_to_Real): Use a subtype of Num
9887 for the component type of the table of powers of ten.
9888 * libgnat/s-valuer.adb (Round_Extra): Add assertion on Base.
9890 2021-04-28 Piotr Trojanek <trojanek@adacore.com>
9892 * sem_ch5.adb (Analyze_Case_Statement): Extend optimization to
9893 all objects; fix typo in comment.
9895 2021-04-28 Piotr Trojanek <trojanek@adacore.com>
9897 * exp_ch9.adb (Build_Barrier_Function): Refine type of a
9898 protected type entity.
9899 (Is_Pure_Barrier): Fix style.
9901 2021-04-28 Bob Duff <duff@adacore.com>
9903 * exp_ch3.adb (Simple_Init_Defaulted_Type): Simplify the code,
9904 and always use OK_Convert_To, rather than Unchecked_Convert_To
9907 2021-04-28 Arnaud Charlet <charlet@adacore.com>
9909 * sem_ch3.adb (Analyze_Object_Declaration): Remove dead code.
9910 * ali.ads, ali.adb (Scan_ALI): Remove unused parameters.
9911 Remove unused code related to Xref lines.
9912 (Get_Typeref): Removed, no longer used.
9914 2021-04-28 Arnaud Charlet <charlet@adacore.com>
9916 * exp_attr.adb (Build_Array_VS_Func, Build_Record_VS_Func,
9917 Expand_N_Attribute_Reference): Use Get_Fullest_View instead of
9919 (Build_Record_VS_Func): Adjust to keep using Validated_View.
9920 (Expand_N_Attribute_Reference) [Valid]: Use
9921 Small_Integer_Type_For to allow for more compile time
9923 * sem_util.adb (Cannot_Raise_Constraint_Error): Add more precise
9924 support for N_Indexed_Component and fix support for
9925 N_Selected_Component which wasn't completely safe.
9926 (List_Cannot_Raise_CE): New.
9927 * libgnat/i-cobol.adb (Valid_Packed): Simplify test to address
9930 2021-04-28 Arnaud Charlet <charlet@adacore.com>
9933 * doc/share/conf.py: Add Python 3 compatibility.
9934 * doc/share/gnat.sty: Add missing file.
9936 2021-04-28 Richard Wai <richard@annexi-strayline.com>
9938 * libgnat/a-cohase.ads (Cursor): Synchronize comments for the Cursor
9939 type definition to be consistent with identical definitions in other
9940 container packages. Add additional comments regarding the importance of
9941 maintaining the "Position" component for predefined equality.
9942 * libgnat/a-cohama.ads (Cursor): Likewise.
9943 * libgnat/a-cihama.ads (Cursor): Likewise.
9944 * libgnat/a-cohase.adb (Find, Insert): Ensure that Cursor objects
9945 always have their "Position" component set to ensure predefined
9946 equality works as required.
9947 * libgnat/a-cohama.adb (Find, Insert): Likewise.
9948 * libgnat/a-cihama.adb (Find, Insert): Likewise.
9950 2021-04-28 Eric Botcazou <ebotcazou@adacore.com>
9952 * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Do not demote a
9953 const or pure function because of a parameter whose type is pointer
9955 * gcc-interface/trans.c (Call_to_gnu): Do not put back a conversion
9956 between an actual and a formal that are unconstrained array types.
9957 (gnat_gimplify_expr) <CALL_EXPR>: New case.
9958 * gcc-interface/utils2.c (build_binary_op): Do not use |= operator.
9959 (gnat_stabilize_reference_1): Likewise.
9960 (gnat_rewrite_reference): Likewise.
9961 (build_unary_op): Do not clear existing TREE_CONSTANT on the result.
9962 (gnat_build_constructor): Also accept the address of a constant
9963 CONSTRUCTOR as constant element.
9965 2021-04-28 Eric Botcazou <ebotcazou@adacore.com>
9967 * gcc-interface/trans.c (is_array_of_scalar_type): New predicate.
9968 (find_decls_r): New function.
9969 (return_slot_opt_for_pure_call_p): New predicate.
9970 (Call_to_gnu): Do not create a temporary for the return value if the
9971 parent node is an aggregate. If there is a target, try to apply the
9972 return slot optimization to regular calls to pure functions returning
9973 an array of scalar type.
9975 2021-04-28 Eric Botcazou <ebotcazou@adacore.com>
9977 * gcc-interface/trans.c (language_function): Add comment.
9978 (loop_info_d): Add fndecl and invariants fields.
9979 (find_loop_for): Test fndecl instead of the context of var.
9980 (find_loop): New function.
9981 (Regular_Loop_to_gnu): Fold back into...
9982 (Loop_Statement_to_gnu): ...this. Emit invariants on entry, if any.
9983 (gnat_to_gnu) <N_Selected_Component>: Record nonconstant invariant
9984 offset computations in loops when optimization is enabled.
9985 * gcc-interface/utils2.c (gnat_invariant_expr): Handle BIT_AND_EXPR.
9987 2021-04-20 Martin Liska <mliska@suse.cz>
9989 * gnatvsn.ads: Bump Library_Version to 12.
9991 2021-04-13 Eric Botcazou <ebotcazou@adacore.com>
9993 * gcc-interface/misc.c (gnat_init): Set default range bits to 0.
9994 * gcc-interface/trans.c (extract_encoding): Delete.
9995 (decode_name): Likewise.
9996 (File_Name_to_gnu): New function.
9997 (gigi): Call it to translate file names. Replace assertion on
9998 1-1 mapping between files and line maps with conditional error.
10000 2021-04-11 Gerald Pfeifer <gerald@pfeifer.com>
10002 * gnat_ugn.texi (Top): Avoid invalid "up" link.
10004 2021-03-29 Eric Botcazou <ebotcazou@adacore.com>
10007 * freeze.adb (Is_Full_Access_Aggregate): Call Is_Full_Access_Object
10008 on the name of an N_Assignment_Statement to spot full access.
10010 2021-03-10 Eric Botcazou <ebotcazou@adacore.com>
10012 * gcc-interface/decl.c (gnat_to_gnu_entity): Build a TYPE_STUB_DECL
10013 for the main variant of an enumeration type declared as volatile.
10015 2021-03-09 Mikael Pettersson <mikpelinux@gmail.com>
10017 * raise-gcc.c: On Cygwin include mingw32.h to prevent
10018 windows.h from including x86intrin.h or emmintrin.h.
10020 2021-03-05 Eric Botcazou <ebotcazou@adacore.com>
10023 * init.c (__gnat_alternate_sta) [Linux]: Remove preprocessor test on
10024 MINSIGSTKSZ and bump size to 32KB.
10025 * libgnarl/s-osinte__linux.ads (Alternate_Stack_Size): Bump to 32KB.
10027 2021-03-02 Mikael Pettersson <mikpelinux@gmail.com>
10030 * cstreams.c: Ensure fileno_unlocked() is visible on Cygwin.
10032 2021-03-02 Eric Botcazou <ebotcazou@adacore.com>
10035 * sem_ch8.adb (Check_Constrained_Object): Restrict again the special
10036 optimization for limited types to non-array types except in the case
10037 of an extended return statement.
10039 2021-03-02 Eric Botcazou <ebotcazou@adacore.com>
10042 * sem_ch3.adb (Build_Discriminated_Subtype): Set the Cloned_Subtype
10043 only if the type is not private.
10045 2021-02-26 YunQiang Su <yunqiang.su@cipunited.com>
10048 * Makefile.rtl: <mips*-*-linux*>
10049 add 128Bit operation file for MIPS N64 and N32 to
10050 LIBGNAT_TARGET_PAIRS and EXTRA_GNATRTL_NONTASKING_OBJS
10052 2021-02-12 Arnaud Charlet <charlet@adacore.com>
10054 * repinfo.ads, repinfo.adb (*SO_Ref*): Restore.
10056 2021-02-03 Eric Botcazou <ebotcazou@adacore.com>
10058 * gcc-interface/decl.c (components_to_record): If the first component
10059 with rep clause is the _Parent field with variable size, temporarily
10060 set it aside when computing the internal layout of the REP part again.
10061 * gcc-interface/utils.c (finish_record_type): Revert to taking the
10062 maximum when merging sizes for all record types with rep clause.
10063 (merge_sizes): Put SPECIAL parameter last and adjust recursive calls.
10065 2021-02-03 Eric Botcazou <ebotcazou@adacore.com>
10067 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Make the
10068 two fields of the fat pointer type addressable, and do not make the
10069 template type read-only.
10070 <E_Record_Type>: If the type has discriminants mark it as may_alias.
10071 * gcc-interface/utils.c (make_dummy_type): Likewise.
10072 (build_dummy_unc_pointer_types): Likewise.
10074 2021-01-26 Marius Hillenbrand <mhillen@linux.ibm.com>
10077 * gcc-interface/utils.c (maybe_pad_type): Test the size of the new
10078 packable type instead of its alignment for addressability's sake.
10080 2021-01-25 Eric Botcazou <ebotcazou@adacore.com>
10082 * gcc-interface/trans.c (make_covariant_thunk): Set the DECL_CONTEXT
10083 of the parameters and do not set TREE_PUBLIC on the thunk.
10084 (maybe_make_gnu_thunk): Pass the alias to the covariant thunk.
10085 * gcc-interface/utils.c (finish_subprog_decl): Set the DECL_CONTEXT
10086 of the parameters here...
10087 (begin_subprog_body): ...instead of here.
10089 2021-01-19 Eric Botcazou <ebotcazou@adacore.com>
10092 * gcc-interface/trans.c (add_decl_expr): Always mark TYPE_ADA_SIZE.
10094 2021-01-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
10097 * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <riscv*-*-rtems*>: Use
10098 wraplf version of Aux_Long_Long_Float.
10100 2021-01-03 Eric Botcazou <ebotcazou@adacore.com>
10102 * gnatvsn.ads: Bump copyright year.
10104 2021-01-01 Jakub Jelinek <jakub@redhat.com>
10106 * gnat_ugn.texi: Bump @copying's copyright year.
10107 * gnat_rm.texi: Likewise.
10109 2021-01-01 Jakub Jelinek <jakub@redhat.com>
10111 * ChangeLog-2020: Rotate ChangeLog. New file.
10114 Copyright (C) 2021 Free Software Foundation, Inc.
10116 Copying and distribution of this file, with or without modification,
10117 are permitted in any medium without royalty provided the copyright
10118 notice and this notice are preserved.