1 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
3 * sem_ch3.adb (Constrain_Decimal, Constrain_Enumeration,
4 Constrain_Float, Constrain_Integer, Constrain_Ordinary_Fixed):
5 Refine parameter type from Node_Id to Entity_Id.
7 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
9 * sprint.adb (po): Set Dump_Freeze_Null to False; align colons.
12 2020-10-20 Ed Schonberg <schonberg@adacore.com>
14 * sinfo.ads, sinfo.adb: The flag Box_Present can appear in
15 Iterated_Element_Association nodes.
16 * sem_aggr.adb (Resolve_Aggregate): Call
17 Resolve_Container_Aggregate when type of context has
19 * sem_type.adb (Covers): In Ada_2020 an aggregate is compatible
20 with a type that carries the corresponding aspect.
21 * exp_ch3.adb (Make_Controlling_Function_Wrappers): Do not
22 create declarations and bodies for inherited primitive functions
23 of null extensions that dispatch on result, when current scope
24 includes an immediately visible non-overloadable homonym of the
26 * libgnat/a-cborse.adb, libgnat/a-cborse.ads,
27 libgnat/a-cbhase.ads, libgnat/a-cbhase.adb,
28 libgnat/a-cborma.adb, libgnat/a-cborma.ads,
29 libgnat/a-cbhama.adb, libgnat/a-cbhama.ads,
30 libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
31 libgnat/a-convec.ads, libgnat/a-ciorse.ads,
32 libgnat/a-cihase.ads, libgnat/a-cihase.adb,
33 libgnat/a-ciorma.ads, libgnat/a-cihama.ads,
34 libgnat/a-cihama.adb, libgnat/a-cidlli.ads,
35 libgnat/a-cidlli.adb, libgnat/a-coinve.adb,
36 libgnat/a-cobove.adb, libgnat/a-cobove.ads,
37 libgnat/a-convec.adb, libgnat/a-coinve.ads,
38 libgnat/a-coorse.ads, libgnat/a-cohase.adb,
39 libgnat/a-cohase.ads, libgnat/a-coorma.ads,
40 libgnat/a-cohama.adb, libgnat/a-cohama.ads,
41 libgnat/a-cdlili.ads: Add primitive function Empty for use in
42 aspect Aggregate, and add corresponding body or expression
45 2020-10-20 Arnaud Charlet <charlet@adacore.com>
47 * aspects.adb (Has_Aspect_Specifications_Flag): Add
48 N_Parameter_Specification.
49 * par-ch13.adb (Aspect_Specifications_Present): Also handle case
50 of an unknown aspect on the last formal parameter (terminated by
51 a Tok_Right_Paren). Minor reformatting.
52 * par-ch6.adb (P_Formal_Part): Scan aspects on formal
55 * sem_ch6.adb (Process_Formals): Add processing of aspects and
56 in particular Unreferenced aspect for now.
57 * sinfo.ads: Allow ASPECT_SPECIFICATIONS on a
58 PARAMETER_SPECIFICATION.
59 * doc/gnat_rm/implementation_defined_aspects.rst
60 (Aspect Unreferenced): Update documentation.
61 * gnat_rm.texi: Regenerate.
63 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
65 * sem_util.ads, sem_util.adb (Get_Accessibility): Refine result
66 type from Node_Id to Entity_Id.
68 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
70 * einfo.adb, exp_attr.adb, sem_ch13.adb, sem_util.adb: Use
71 Is_Formal where possible.
73 2020-10-20 Steve Baird <baird@adacore.com>
75 * sem_util.ads: Declare a new package, Old_Attr_Util, which in
76 turn declares two more packages, Conditional_Evaluation and
77 Indirect_Temps. Conditional_Evaluation provides a predicate for
78 deciding whether a given 'Old attribute reference is eligible
79 for conditional evaluation and, in the case where it is
80 eligible, a function that constructs the Boolean-valued
81 condition that is to be evaluated at run time in deciding
82 whether to evaluate the attribute prefix. Indirect_Temps
83 provides support for declaring a temporary which is only
84 initialized conditionally; more specifically, an access type and
85 a variable of that type are declared (unconditionally) and then
86 the variable is (conditionally) initialized with an allocator.
87 The existence of the access type and the pointer variable is
88 hidden from clients, except that a predicate,
89 Is_Access_Type_For_Indirect_Temp, is provided for identifying
90 such access types. This is needed because we want such an access
91 type to be treated like a "normal" access type (specifically
92 with respect to finalization of allocated objects). Other parts
93 of the compiler treat access types differently if
94 Comes_From_Source is False, or if the secondary stack storage
95 pool is used; this predicate is used to disable this special
97 * sem_attr.adb (Uneval_Old_Msg): Improve message text to reflect
99 (Analyze_Attribute): A previously-illegal 'Old attribute
100 reference is accepted in Ada2020 if it is eligible for
101 conditional evaluation.
102 * sem_res.adb (Valid_Conversion): Do not treat a rewritten 'Old
103 attribute like other rewrite substitutions. This makes a
104 difference, for example, in the case where we are generating the
105 expansion of a membership test of the form "Saooaaat'Old in
106 Named_Access_Type"; in this case Valid_Conversion needs to
107 return True (otherwise the expansion will be False - see the
108 call site in exp_ch4.adb).
109 * exp_attr.adb (Expand_N_Attribute_Reference): When expanding a
110 'Old attribute reference, test for the case where the reference
111 is eligible for conditional evaluation. In that case, use the
112 new "indirect temporary" mechanism provided by Sem_Util.
114 (Expand_Attributes_In_Consequence.Expand_Attributes): If
115 Sem_Util.Indirect_Temp_Needed indicates that there could be
116 correctness problems associated with the old expansion scheme
117 for dealing with 'Old attributes in contract cases consequences,
118 then we use the new "indirect temporary" mechanism provided by
119 Sem_Util instead. We do not want to do this unconditionally.
120 * sem_util.adb: Provide a body for the new Old_Attr_Util
121 package. Further work is needed in several areas for
123 - The function Is_Repeatedly_Evaluated does not deal with
124 container aggregates yet.
125 - The function Is_Known_On_Entry does not deal with interactions
126 with the Global aspect.
127 Each area where more work is needed is indicated with a "???"
128 comment in the code; a more detailed description can be found
129 there. Some optimization opportunties are similarly indicated
130 with a "???" comment.
131 * exp_ch3.adb (Freeze_Type): In deciding whether to generate
132 expansion for the list controller of an access type, take the
133 predicate Is_Access_Type_For_Indirect_Temp into account. If the
134 predicate yields True, then generate the expansion.
135 * exp_util.adb (Build_Allocate_Deallocate_Proc): We don't
136 normally finalize allocated objects that are allocated on the
137 secondary stack. Add an exception to this rule if the predicate
138 Is_Access_Type_For_Indirect_Temp yields True. As a result of
139 this exception, we have to deal with the fact that gigi expects
140 a different parameter profile if we are using the secondary
141 stack pool; the Pool and Alignment parameters must be omitted in
144 2020-10-20 Javier Miranda <miranda@adacore.com>
146 * sem_ch12.adb (Install_Parents_Of_Generic_Context,
147 Remove_Parents_Of_Generic_Context): New subprograms.
148 (Instantiate_Package_Body): Adding assertions to ensure that
149 installed parents are properly removed.
151 2020-10-20 Claire Dross <dross@adacore.com>
153 * sem_attr.adb (Analyze_Attribute): Emit a warning on 'Update
154 when Warn_On_Obsolescent_Feature is set to True.
156 2020-10-20 Richard Kenner <kenner@adacore.com>
158 * gnat_cuda.adb (Build_Register_Function_Call): Make procedure
159 call instead of function, rename to
160 Build_Register_Procedure_Call.
161 (Build_CUDA_Init_Proc): Make procedure call instead of function.
163 2020-10-20 Justin Squirek <squirek@adacore.com>
165 * exp_ch6.adb (Expand_Branch): Properly anticipate expansion of
166 conditional expressions producing object declarations in
167 addition to assignment statements, and rename formal.
169 2020-10-20 Yannick Moy <moy@adacore.com>
171 * errout.adb (Write_Source_Code_Line): Adopt display closer to
173 (Output_Messages): Deal specially with info messages.
174 * erroutc.adb (Prescan_Message): Fix bug leading to check
175 messages being considered as error messages in pretty output
178 2020-10-20 Justin Squirek <squirek@adacore.com>
180 * exp_ch6.adb (Expand_Call_Helper): Properly handle the case
181 where the condition of a conditional expression has been
182 optimized out when calculating the value of an extra
183 accessibility parameter.
185 2020-10-20 Bob Duff <duff@adacore.com>
187 * doc/gnat_ugn/gnat_utility_programs.rst: Change "_" to "-".
189 2020-10-20 Arnaud Charlet <charlet@adacore.com>
191 * sem_aggr.adb (Resolve_Aggregate): Warn on not fully
192 initialized box aggregate.
193 * sem_aggr.ads: Fix typo.
194 * sem_res.adb (Resolve_Actuals): Fix typo in error message
195 format marking it incorrectly as a continuation message.
196 * sem_elab.adb (Check_Internal_Call_Continue): Similarly, add
197 missing primary message in case of a call to an actual generic
199 * sem_warn.adb (Check_References): Do not warn on read but never
200 assigned variables if the type is partially initialized.
201 * libgnat/a-except.ads, libgnat/a-ststun.ads,
202 libgnat/g-sechas.ads, libgnat/a-cbdlli.ads,
203 libgnat/a-cfdlli.ads, libgnat/a-cobove.ads,
204 libgnat/a-cohata.ads, libgnat/a-crbltr.ads,
205 libgnat/a-cbmutr.ads, libgnat/a-crdlli.ads,
206 libgnat/a-cbsyqu.ads: Address new warning.
207 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
208 Update doc on -gnatwv.
209 * gnat_ugn.texi: Regenerate.
211 2020-10-20 Gary Dismukes <dismukes@adacore.com>
213 * sem_ch6.adb (Analyze_Expression_Function): Mark static
214 expression functions as inlined.
216 2020-10-20 Arnaud Charlet <charlet@adacore.com>
218 * contracts.adb (Is_Prologue_Renaming): This function was
219 missing support for E_Constant which can also be generated in
222 2020-10-20 Arnaud Charlet <charlet@adacore.com>
224 * bindgen.adb (Gen_Bind_Env_String): Generate Ada 2012 compatible
225 strings. Code cleanup.
227 2020-10-20 Yannick Moy <moy@adacore.com>
229 * sem_util.adb, sem_util.ads: Comment fix.
231 2020-10-20 Arnaud Charlet <charlet@adacore.com>
233 * sem_ch8.adb (Check_Constrained_Object): Suppress discriminant
234 checks when the type has default discriminants and comes from
235 expansion of a "for of" loop.
237 2020-10-20 Bob Duff <duff@adacore.com>
239 * atree.ads: Make Default_Node a constant. Remove the
240 modification of Comes_From_Source, and use a separate flag for
241 that. Change Sloc to 0; it always overwritten, and never left
242 as the No_Location value.
243 (Print_Statistics): Move to spec so we can call it from
245 (Num_Nodes): Rename to clarify that this is approximate.
246 Correct comment: nodes and entities are never deleted, the count
247 is never decremented, and this is not used by Xref.
248 (Initialize): Correct comment: Error_List is not created here.
249 Other minor naming and comment changes.
250 * atree.adb (Extend_Node, New_Copy, New_Entity, New_Node):
251 Streamline these. Simplify and improve efficiency. Move code
252 from Allocate_Initialize_Node to these, where it can be executed
253 unconditionally. Take advantage of automatic zeroing of the
255 (Allocate_Initialize_Node): Remove this. It was an efficiency
256 bottleneck, and somewhat complicated, because it was called from
257 4 places, and had all sorts of conditionals to check where it
258 was called from. Better to move most of that code to the call
259 sites, where it can be executed (or not) unconditionally.
260 (Allocate_New_Node): New procedure to partly replace
261 Allocate_Initialize_Node (called from just 2 of those 4 places).
262 (Comes_From_Source_Default): New flag written/read by
263 Set_Comes_From_Source_Default/Get_Comes_From_Source_Default.
264 This allows us to make Default_Node into a constant with
266 (Set_Paren_Count_Of_Copy): New procedure to avoid duplicated
268 (Report): New procedure to encapsulate the call to the reporting
270 (Atree_Private_Part): We now need a body for this package, to
271 contain package body Nodes.
272 (Approx_Num_Nodes_And_Entities): Was Num_Nodes. For efficiency,
273 compute the answer from Nodes.Last. That way we don't need to
274 increment a counter on every node creation. Other minor naming
276 * gnat1drv.adb: Call Atree.Print_Statistics if -gnatd.A switch
277 was given. Add comment documenting the new order dependency (we
278 must process the command line before calling Atree.Initialize).
279 * debug.adb: Document -gnatd.A.
280 * einfo.adb, sinfo.adb: Remove useless Style_Checks pragmas.
281 * nlists.ads (Allocate_List_Tables): Inline makes node creation
283 * nlists.adb (Initialize): Remove local constant E, which didn't
285 * treepr.adb (Print_Init): Use renamed
286 Approx_Num_Nodes_And_Entities function.
287 * types.ads: Change the Low and High bounds as described above.
288 * types.h: Change Low and High bounds to match types.ads.
289 * sem_ch8.adb, namet.adb, namet.ads: Move the computation of
290 Last_Name_Id from sem_ch8 to namet, and correct it to not assume
291 Name_Ids are positive.
292 * ali.adb, ali-util.adb, bindo-writers.adb, exp_dist.adb,
293 fmap.adb, fname-uf.adb, osint.adb: Fix various hash functions to
294 avoid assuming the various ranges are positive. Note that "mod"
295 returns a nonnegative result when the second operand is
296 positive. "rem" can return negative values in that case (in
297 particular, if the first operand is negative, which it now is).
298 * switch-c.adb: Allow switch -gnaten to control the value of
300 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
301 Remove traling whitespaces.
302 * opt.ads (Nodes_Size_In_Meg): New Variable.
304 2020-10-20 Eric Botcazou <ebotcazou@adacore.com>
306 * exp_util.adb (Remove_Side_Effects): Always generate a renaming
307 that is handled by the front-end in the case of an indexed or a
308 selected component whose prefix has a nonstandard representation.
310 2020-10-20 Pat Rogers <rogers@adacore.com>
312 * doc/gnat_rm/the_gnat_library.rst: Add Ada.Task_Initialization.
313 * gnat_rm.texi: Regenerate.
315 2020-10-20 Yannick Moy <moy@adacore.com>
317 * errout.adb: (Error_Msg-Internal): Pass the location for a line
318 insertion if any in the message.
319 (Output_Messages: Add display of source code lines if -gnatdF is
321 (Write_Source_Code_Line): Code clean up.
322 * erroutc.adb (Prescan_Message): Apply prescan for continuation
323 lines when -gnatdF is set, and record presence of line
325 * erroutc.ads (Has_Insertion_Line): New global for prescan.
326 (Error_Msg_Object): Add field to record line insertion if
328 * errutil.adb (Error_Msg): Pass no location for Insertion_Sloc.
330 2020-10-20 Arnaud Charlet <charlet@adacore.com>
332 * exp_ch5.adb (Expand_N_Case_Statement): Do not generate
333 validity check when possible.
335 2020-10-20 Ed Schonberg <schonberg@adacore.com>
337 * exp_aggr.adb (Expand_Iterated_Component): Reorganize code to
338 ensure that Loop_Id is properly initialized on all paths, and
339 remove code duplication.
341 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
343 * sem_ch3.adb (Analyze_Subtype_Declaration): Propagate predicate
344 function to full view of the created type as well, if it was
347 2020-10-20 Arnaud Charlet <charlet@adacore.com>
349 * exp_attr.adb (Expand_N_Attribute_Reference): Merge handling of
350 Simple_Storage_Pool and Storage_Pool.
352 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
354 * aspects.ads: Introduce Subprogram_Variant aspect with the
355 following properties: GNAT-specific, with mandatory expression,
356 not a representation aspect, never delayed.
357 * contracts.adb (Expand_Subprogram_Contract): Mention new aspect
359 (Add_Contract_Item): Support addition of pragma
360 Subprogram_Variant to N_Contract node.
361 (Analyze_Entry_Or_Subprogram_Contract): Mention new aspect in
362 the comment; add pragma Subprogram_Variant to N_Contract node.
363 (Build_Postconditions_Procedure): Adapt call to
364 Insert_Before_First_Source_Declaration, which is now reused in
365 expansion of new aspect.
366 (Process_Contract_Cases_For): Also process Subprogram_Variant,
367 which is stored in N_Contract node together with Contract_Cases.
368 * contracts.ads (Analyze_Entry_Or_Subprogram_Contract): Mention
369 new aspect in the comment.
370 (Analyze_Entry_Or_Subprogram_Body_Contract): Likewise.
371 * einfo.adb (Get_Pragma): Support retrieval of new pragma.
372 * einfo.ads (Get_Pragma): Likewise.
373 * exp_ch6.adb (Check_Subprogram_Variant): New routine for
374 emitting call to check Subprogram_Variant expressions at run
376 (Expand_Call_Helper): Check Subprogram_Variant expressions at
378 * exp_prag.adb (Make_Op): Moved from expansion of pragma
379 Loop_Variant to Exp_Util, so it is now reused for expansion of
380 pragma Subprogram_Variant.
381 (Process_Variant): Adapt call to Make_Op after moving it to
383 (Expand_Pragma_Subprogram_Variant): New routine.
384 * exp_prag.ads (Expand_Pragma_Subprogram_Variant): Likewise.
385 * exp_util.adb (Make_Variant_Comparison): Moved from Exp_Prag
387 * exp_util.ads (Make_Variant_Comparison): Likewise.
388 * inline.adb (Remove_Aspects_And_Pragmas): Handle aspect/pragma
389 Subprogram_Variant just like similar contracts.
390 * par-prag.adb (Prag): Likewise.
391 * sem.adb (Insert_Before_First_Source_Declaration): Moved from
392 Contracts (see above).
393 * sem.ads (Insert_Before_First_Source_Declaration): Likewise.
394 * sem_ch12.adb: Mention new aspect in the comment about
395 "Implementation of Generic Contracts", just like similar aspects
397 * sem_ch13.adb (Insert_Pragma): Mention new aspect in the
398 comment, because this routine is now used for Subprogram_Variant
399 just like for other similar aspects.
400 (Analyze_Aspect_Specifications): Mention new aspect in comments;
401 it is handled just like aspect Contract_Cases.
402 (Check_Aspect_At_Freeze_Point): Do not expect aspect
403 Subprogram_Variant just like we don't expect aspect
405 * sem_prag.adb (Ensure_Aggregate_Form): Now also used for pragma
406 Subprogram_Variant, so update comment.
407 (Analyze_Pragma): Add initial checks for pragma
409 (Analyze_Subprogram_Variant_In_Decl_Part): New routine with
410 secondary checks on the new pragma.
411 (Sig_Flags): Handle references within pragma Subprogram_Variant
412 expression just like references in similar pragma
414 (Is_Valid_Assertion_Kind): Handle Subprogram_Variant just like
415 other similar contracts.
416 * sem_prag.ads (Analyze_Subprogram_Variant_In_Decl_Part): New
418 * sem_res.adb (Same_Or_Aliased_Subprograms): Moved to Sem_Util,
419 so it can be reused for detection of recursive calls where
420 Subprogram_Variant needs to be verified.
421 * sem_util.adb (Is_Subprogram_Contract_Annotation): Handle new
422 Subprogram_Variant annotation just like other similar
424 (Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above).
425 * sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new
426 aspect in the comment.
427 (Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above).
428 * sinfo.ads (N_Contract): Document handling of
430 * snames.ads-tmpl: Add name for the internally generated
431 procedure with checks for Subprogram_Variant expression, name
432 for the new aspect and new pragma corresponding to aspect
435 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
437 * exp_util.ads: Reorder declaration.
439 2020-10-19 Ed Schonberg <schonberg@adacore.com>
441 * par-ch4.adb: (P_Aggregate_Or_Paren_Expr): Recognize
442 Iterated_Element_Component.
443 (P_Iterated_Component_Association): Rebuild node as an Iterated_
444 Element_Association when Key_Expression is present, and attach
445 either the Loop_Parameter_Specification or the
446 Iterator_Specification to the new node.
447 * sem_aggr.adb: (Resolve_Container_Aggregate):
448 Resolve_Iterated_Association handles bota Iterated_Component_
449 and Iterated_Element_Associations, in which case it analyzes and
450 resoles the orresponding Key_Expression.
451 * exp_aggr.adb (Expand_Iterated_Component): If a Key_Expression
452 is present, use it as the required parameter in the call to the
453 insertion routine for the destination container aggregate. Call
454 this routine for both kinds of Iterated_Associations.
456 2020-10-19 Arnaud Charlet <charlet@adacore.com>
458 * exp_ch4.adb (Expand_Concatenate): Enable needed range checks.
460 2020-10-19 Bob Duff <duff@adacore.com>
462 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
463 Set the Warnings_Off flag on the pointer object used in the
464 expansion of iterators and similar.
466 2020-10-19 Eric Botcazou <ebotcazou@adacore.com>
468 * Makefile.rtl (PowerPC/Linux): Use s-taspri__posix.ads instead
469 of s-taspri__posix-noaltstack.ads for s-taspri.ads.
471 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
473 * sem_ch13.adb (Add_Call): Remove excessive condition and
474 unnecessary call to Set_Has_Predicates.
476 2020-10-19 Yannick Moy <moy@adacore.com>
478 * debug.adb: Use debug switch -gnatdF for this alternative
480 * errout.adb (Output_Messages): Alternative display when -gnatdF
482 * erroutc.adb (Output_Msg_Text): Likewise.
484 2020-10-19 Arnaud Charlet <charlet@adacore.com>
486 * sem_ch6.adb (Check_Untagged_Equality): Check for AI12-0352.
488 2020-10-19 Ed Schonberg <schonberg@adacore.com>
490 * exp_ch6.adb (Add_View_Conversion_Invariants): Do not insert
491 generated invariant checks when the call is a function call.
492 These tests are properly inserted in the code in procedure
493 Insert_Post_Call_Actions, which takes care of finding the proper
494 insertion point for the checks.
495 (Insert_Post_Call_Actions): Add question marks to indicate
496 possible gap in handling function calls that appear as aggregate
499 2020-10-19 Arnaud Charlet <charlet@adacore.com>
501 * contracts.adb (Process_Preconditions_For): Do not exclude
503 * sem_ch4.adb (Analyze_Quantified_Expression): Disable spurious
504 warning on internally generated variables.
506 2020-10-19 Ghjuvan Lacambre <lacambre@adacore.com>
508 * debug.adb: Document -gnatd_c flag as being used for CUDA.
509 * gnat_cuda.ads: New file.
510 * gnat_cuda.adb: New file.
511 * rtsfind.ads: Add Interfaces_C_Strings package and
512 RE_Fatbin_Wrapper, RE_Register_Fat_Binary,
513 RE_Register_Fat_Binary_End, RE_Register_Function, RE_Chars_Ptr,
514 RE_New_Char_Array entities.
515 * rtsfind.adb: Create new Interfaces_C_Descendant subtype,
517 * sem_ch7.adb (Analyze_Package_Body_Helper): Call CUDA init
519 * sem_prag.adb (Analyze_Pragma): Call Add_Cuda_Kernel procedure.
520 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add gnat_cuda.o.
522 2020-10-19 Bob Duff <duff@adacore.com>
524 * ghost.adb (Whole_Object_Ref): New function to compute the name
526 (Mark_And_Set_Ghost_Assignment): Rewrite to use
527 Whole_Object_Ref. We need to partly analyze the left-hand side
528 in order to distinguish expanded names and record components.
529 * lib-xref.ads, lib-xref.adb (Deferred_References): Move table
530 to body, and add Defer_Reference to update the table, avoiding
532 (Generate_Reference): Avoid duplicates.
533 * sem_ch8.ads, sem_ch8.adb (Find_Direct_Name): Remove _OK
534 parameters, which are no longer needed. Ignore errors in
536 * sem_util.ads, sem_util.adb (Preanalyze_Without_Errors): Make
537 this public, so we can call it from Ghost.
538 * errout.ads, scng.adb, sem_prag.adb: Minor.
540 2020-10-19 Ghjuvan Lacambre <lacambre@adacore.com>
542 * exp_attr.adb (Expand_N_Attribute_Reference): Check if type
543 depends on discriminant.
545 2020-10-19 Bob Duff <duff@adacore.com>
547 * libgnat/a-coinve.adb, libgnat/a-cidlli.adb (Put_Image): Call
550 2020-10-19 Arnaud Charlet <charlet@adacore.com>
552 * sem_aggr.adb (Resolve_Record_Aggregate): Properly apply
553 subtype constraints when using a Default_Value.
554 * freeze.adb: Fix typo.
556 2020-10-19 Yannick Moy <moy@adacore.com>
558 * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix bug
559 where a call to Error_Msg_N leads to crash due to
560 Error_Msg_Name_1 being removed by the call, while a subsequent
561 call to Error_Msg_N tries to use it. The variable
562 Error_Msg_Name_1 should be restored prior to the next call. Also
563 add checking for the new rules.
565 2020-10-19 Arnaud Charlet <charlet@adacore.com>
567 * checks.adb (Apply_Type_Conversion_Checks): Minor code clean
569 * exp_ch4.adb (Discrete_Range_Check): Optimize range checks.
571 (Expand_N_Type_Conversion): Generate range check when rewriting
572 a type conversion if needed. Add assertion.
573 * exp_ch6.adb (Expand_Simple_Function_Return): Minor code clean
575 * sem_res.adb (Resolve_Type_Conversion): Apply range check when
576 needed. Update comments.
578 2020-10-19 Yannick Moy <moy@adacore.com>
580 * libgnat/a-textio.ads: Update top-level comment.
582 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
584 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Fix typo.
586 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
588 * exp_ch6.adb (Expand_Actuals): Simplify condition for by-copy
591 2020-10-19 Yannick Moy <moy@adacore.com>
593 * errout.ads: Add comment regarding lack of preservation of
594 Errout state across successive calls to the API.
596 2020-10-19 Bob Duff <duff@adacore.com>
598 * exp_put_image.adb (Build_Elementary_Put_Image_Call): Use the
599 base type to recognize various cases of access types.
600 * libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb,
601 libgnat/a-cbhama.ads, libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
602 libgnat/a-cbmutr.adb, libgnat/a-cbmutr.ads, libgnat/a-cborma.adb,
603 libgnat/a-cborma.ads, libgnat/a-cborse.adb, libgnat/a-cborse.ads,
604 libgnat/a-cdlili.adb, libgnat/a-cdlili.ads, libgnat/a-cidlli.adb,
605 libgnat/a-cidlli.ads, libgnat/a-cihama.adb, libgnat/a-cihama.ads,
606 libgnat/a-cihase.adb, libgnat/a-cihase.ads, libgnat/a-cimutr.adb,
607 libgnat/a-cimutr.ads, libgnat/a-ciorma.adb, libgnat/a-ciorma.ads,
608 libgnat/a-ciormu.adb, libgnat/a-ciormu.ads, libgnat/a-ciorse.adb,
609 libgnat/a-ciorse.ads, libgnat/a-coboho.adb, libgnat/a-coboho.ads,
610 libgnat/a-cobove.adb, libgnat/a-cobove.ads, libgnat/a-cohama.adb,
611 libgnat/a-cohama.ads, libgnat/a-cohase.adb, libgnat/a-cohase.ads,
612 libgnat/a-coinho.adb, libgnat/a-coinho.ads,
613 libgnat/a-coinho__shared.adb, libgnat/a-coinho__shared.ads,
614 libgnat/a-coinve.adb, libgnat/a-coinve.ads, libgnat/a-comutr.adb,
615 libgnat/a-comutr.ads, libgnat/a-coorma.adb, libgnat/a-coorma.ads,
616 libgnat/a-coormu.adb, libgnat/a-coormu.ads, libgnat/a-coorse.adb,
617 libgnat/a-coorse.ads, libgnat/a-strunb.adb, libgnat/a-strunb.ads,
618 libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads:
619 Implement Put_Image attibute.
620 * libgnat/a-stteou.ads, libgnat/s-putima.ads,
621 libgnat/a-stouut.ads, libgnat/a-stoubu.adb: Make
622 Ada.Strings.Text_Output, Ada.Strings.Text_Output.Utils, and
623 System.Put_Images Pure, so they can be with'ed by Pure units
624 that should have Put_Image defined.
625 * libgnat/a-stouut.adb: Add missing column adjustments, and
626 remove a redundant one.
627 * libgnat/s-putima.adb (Put_Arrow): New routine to print an
628 arrow. Avoids adding a with clause to some containers.
630 2020-10-19 Bob Duff <duff@adacore.com>
632 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Require matching
634 * par.adb, par-tchk.adb (T_Right_Bracket): New procedure to give
635 an error on missing ].
637 2020-10-19 Javier Miranda <miranda@adacore.com>
639 * sem_ch8.adb (Find_Direct_Name): Do not trust in the decoration
640 of the Entity attribute in constants associated with
641 discriminals of protected types.
643 2020-10-19 Gary Dismukes <dismukes@adacore.com>
645 * sem_disp.adb (Check_Dispatching_Context): When the enclosing
646 subprogram is abstract, bypass early return if the call is
647 tag-indeterminate, to continue with the later error checking.
649 2020-10-19 Javier Miranda <miranda@adacore.com>
651 * sem_ch7.adb (Uninstall_Declarations): Uninstall the
652 declaration of a subtype declaration defined in the private part
655 2020-10-19 Arnaud Charlet <charlet@adacore.com>
657 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify code since
658 we are always under -gnatX if we encounter a Tok_Left_Bracket.
659 * scng.adb (Scan): [] is an aggregate under -gnatX and a wide
662 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
664 * exp_ch6.adb (Expand_Call_Helper): Cleanup.
666 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
668 * exp_ch6.adb (Is_Direct_Deep_Call): Refine type from Node_Id to
671 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
673 * exp_ch6.adb (May_Fold): Detect all operators, i.e. both binary
676 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
678 * inline.adb (Expand_Inlined_Call): Simplify repeated calls to
681 2020-10-18 Alexandre Oliva <oliva@adacore.com>
683 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Compile Ada.Numerics
684 child units Aux_Generic_Float, Aux_Long_Long_Float, Aux_Long_Float,
685 Aux_Float, Aux_Short_Float, Aux_Compat, and Aux_Linker_Options.
686 (X86_TARGET_PAIRS): Drop dummy body for Aux. Use x86 version
688 (X86_64_TARGET_PAIRS): Likewise.
689 (LIBGNAT_TARGET_PAIRS): On VxWorks, select the nolibm
690 variants. Drop the darwin version of Aux. Drop the redundant
691 libc-x86 numaux variants on x86* kfreebsd variants.
692 * libgnat/a-nagefl.ads: New Aux_Generic_Float.
693 * libgnat/a-naliop.ads: New Aux_Linker_Options.
694 * libgnat/a-naliop__nolibm.ads: New.
695 * libgnat/a-nallfl.ads: New Aux_Long_Long_Float.
696 * libgnat/a-nalofl.ads: New Aux_Long_Float.
697 * libgnat/a-nuaufl.ads: New Aux_Float.
698 * libgnat/a-nashfl.ads: New Aux_Short_Float.
699 * libgnat/a-ngcefu.adb (Exp): Factor out the Im (X) passed to
700 Sin and Cos in the Complex variant too.
701 * libgnat/a-ngcoty.adb: Switch to Aux_Generic_Float. Drop
702 redundant conversions.
703 * libgnat/a-ngelfu.adb: Likewise.
704 * libgnat/a-nuauco.ads: New Aux_Compat.
705 * libgnat/a-nuauco__x86.ads: New.
706 * libgnat/a-numaux.ads: Replace with Compat wrapper.
707 * libgnat/a-numaux__darwin.adb: Remove.
708 * libgnat/a-numaux__darwin.ads: Remove.
709 * libgnat/a-numaux__dummy.adb: Remove.
710 * libgnat/a-numaux__libc-x86.ads: Remove.
711 * libgnat/a-numaux__vxworks.ads: Remove.
713 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
715 * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch6.adb,
716 freeze.adb, sem_aggr.adb, sem_attr.adb, sem_ch13.adb,
717 sem_ch13.ads, sem_ch6.adb, sem_eval.adb, sem_util.adb: Fix style
720 2020-10-16 Arnaud Charlet <charlet@adacore.com>
722 * sem_cat.adb (Is_Primary): Handle N_Range properly.
724 2020-10-16 Ghjuvan Lacambre <lacambre@adacore.com>
726 * elists.ads (New_Elmt_List): New functions.
727 * elists.adb (New_Elmt_List): New functions.
728 * exp_prag.adb: Add dependency on Elists.
729 (Expand_Pragma_CUDA_Execute): New function.
730 (Expand_N_Pragma): Add call to Expand_Pragma_CUDA_Execute.
731 * rtsfind.ads: Add CUDA.Internal, CUDA.Runtime, System.C
732 packages and RE_Push_Call_Configuration,
733 RE_Pop_Call_Configuration, RE_Launch_Kernel, RO_IC_Unsigned,
734 RO_IC_Unsigned_Long_Long entities.
735 * rtsfind.adb: Extend Interfaces_Descendant to include
738 2020-10-16 Bob Duff <duff@adacore.com>
740 * par-ch4.adb (P_Name): Allow Tok_Left_Bracket in two places to
741 call P_Qualified_Expression. We don't need to modify other
742 places that call P_Qualified_Expression, because a
743 qualified_expression is a name in Ada 2012 and higher, so P_Name
744 is the right place. The parser already parses aggregates with
745 brackets; we just need to allow that in qualified expressions.
747 2020-10-16 Javier Miranda <miranda@adacore.com>
749 * sem_ch12.adb (Check_Generic_Child_Unit): When the child unit
750 is a renaming of a generic child unit then traverse the scope
751 containing the renaming declaration to locate the instance of
752 its parent. Otherwise the parent is not installed and the
753 frontend cannot process the instantiation.
755 2020-10-16 Bob Duff <duff@adacore.com>
757 * libgnat/a-numeri.ads: Remove the greek letter.
759 2020-10-16 Ed Schonberg <schonberg@adacore.com>
761 * exp_imgv.adb (Expand_Image_Attribute): Refine previous patch
762 to use root type (and not base type) on enumeration types.
764 2020-10-16 Ed Schonberg <schonberg@adacore.com>
766 * exp_imgv.adb (Expand_Image_Attribute): Use the base type
767 instead of the root type when type of object is private. Remove
768 Ada_2020 guard, because it has been checked during prior
769 analysis. Use Underlying_Type in all cases, as it is a no-op on
770 types that are not private.
772 2020-10-16 Arnaud Charlet <charlet@adacore.com>
774 * aspects.ads, snames.ads-tmpl: Add support for
775 Exclusive_Functions aspect.
776 * sem_ch13.adb (Analyze_Aspect_Specifications): Ditto.
777 * exp_ch9.adb (Build_Protected_Subprogram_Body): Take aspect
778 Exclusive_Functions into account.
780 2020-10-16 Arnaud Charlet <charlet@adacore.com>
782 * gcc-interface/Make-lang.in: Update dependencies on system.ads,
783 add gnatbind switch -t to avoid timestamp inconsistencies during
785 * libgnat/system.ads: Move...
786 * gcc-interface/system.ads: ... here.
788 2020-10-16 Gary Dismukes <dismukes@adacore.com>
790 * sem_eval.adb (Subtypes_Statically_Match): Retrieve
791 discriminant constraints from the two types via new function
792 Original_Discriminant_Constraint rather than
793 Discriminant_Constraint.
794 (Original_Discriminant_Constraint): New function to locate the
795 nearest explicit discriminant constraint associated with a type
796 that may possibly have inherited a constraint from an ancestor
799 2020-10-16 Bob Duff <duff@adacore.com>
801 * exp_ch6.adb (Expand_Simple_Function_Return): Remove obsolete
804 2020-10-16 Arnaud Charlet <charlet@adacore.com>
807 * libgnat/a-suenco.adb (Convert): Fix handling of third UTF-8
810 2020-10-16 Steve Baird <baird@adacore.com>
812 * exp_util.adb (Is_Related_To_Func_Return): Cope with the case
813 where the FE introduces a type conversion.
815 2020-10-16 Chris Martin <cmartin@adacore.com>
817 * sem_util.ads, sem_util.adb (Is_Access_Variable): New function.
818 (Is_Synchronized_Object): Call new function when determining if
819 a constant can be regarded as synchronized.
821 2020-10-16 Arnaud Charlet <charlet@adacore.com>
823 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
824 Call Set_BIP_Initialization_Call systematically.
825 * exp_ch7.adb (Process_Transient_In_Scope): Take
826 BIP_Initialization_Call into account to decide where to insert
829 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
831 * sem_util.adb (Is_View_Conversion): Detect qualified types.
832 * sem_util.ads (Is_Actual_In_Out_Parameter): Fix style in
835 2020-10-16 Arnaud Charlet <charlet@adacore.com>
837 * scil_ll.adb, sem_scil.adb: Update assertions.
839 2020-10-16 Ed Schonberg <schonberg@adacore.com>
841 * sem_attr.adb (Min_Max): Handle the case where attribute
842 name (qualified by required type) appears as the reducer of a
843 'Reduce attribute reference.
844 (Resolve_Attribute) <Reduce>: Handle properly the presence of a
845 procedure or an attribute reference Min/Max as a reducer.
846 * exp_attr.adb (Expand_Attribute_Reference) <Reduce>: New
847 subprogram Build_Stat, to construct the combining statement
848 which appears in the generated loop for Reduce, and which is
849 either a function call when the reducer is a function or an
850 attribute, or a procedure call when reducer is an appropriate
851 procedure. BuilD_Stat is used both when the prefix of 'Reduce
852 is a value sequence and when it is an object
854 2020-10-16 Arnaud Charlet <charlet@adacore.com>
856 * exp_ch4.adb (Expand_Concatenate): Allocate result of string
857 concatenation on secondary stack when relevant.
859 2020-10-16 Ed Schonberg <schonberg@adacore.com>
861 * sem_res.adb (Resolve_Declare_Expression): Retrieve the created
862 block entity that is the scope of the local declarations, from
863 either a local object declaration or an object renaming
864 declaration. The block entity does not have an explicit
865 declaration, but appears as the scope of all locally declared
868 2020-10-16 Eric Botcazou <ebotcazou@adacore.com>
870 * libgnat/system-aix.ads: Likewise.
871 * libgnat/system-darwin-arm.ads: Likewise.
872 * libgnat/system-darwin-ppc.ads: Likewise.
873 * libgnat/system-darwin-x86.ads: Likewise.
874 * libgnat/system-djgpp.ads: Likewise.
875 * libgnat/system-dragonfly-x86_64.ads: Likewise.
876 * libgnat/system-freebsd.ads: Likewise.
877 * libgnat/system-hpux-ia64.ads: Likewise.
878 * libgnat/system-hpux.ads: Likewise.
879 * libgnat/system-linux-alpha.ads: Likewise.
880 * libgnat/system-linux-arm.ads: Likewise.
881 * libgnat/system-linux-hppa.ads: Likewise.
882 * libgnat/system-linux-ia64.ads: Likewise.
883 * libgnat/system-linux-m68k.ads: Likewise.
884 * libgnat/system-linux-mips.ads: Likewise.
885 * libgnat/system-linux-ppc.ads: Likewise.
886 * libgnat/system-linux-riscv.ads: Likewise.
887 * libgnat/system-linux-s390.ads: Likewise.
888 * libgnat/system-linux-sh4.ads: Likewise.
889 * libgnat/system-linux-sparc.ads: Likewise.
890 * libgnat/system-linux-x86.ads: Likewise.
891 * libgnat/system-lynxos178-ppc.ads: Likewise.
892 * libgnat/system-lynxos178-x86.ads: Likewise.
893 * libgnat/system-mingw.ads: Likewise.
894 * libgnat/system-qnx-aarch64.ads: Likewise.
895 * libgnat/system-rtems.ads: Likewise.
896 * libgnat/system-solaris-sparc.ads: Likewise.
897 * libgnat/system-solaris-x86.ads: Likewise.
898 * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
899 * libgnat/system-vxworks-arm-rtp.ads: Likewise.
900 * libgnat/system-vxworks-arm.ads: Likewise.
901 * libgnat/system-vxworks-e500-kernel.ads: Likewise.
902 * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
903 * libgnat/system-vxworks-e500-rtp.ads: Likewise.
904 * libgnat/system-vxworks-e500-vthread.ads: Likewise.
905 * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
906 * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
907 * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
908 * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
909 * libgnat/system-vxworks-ppc-vthread.ads: Likewise.
910 * libgnat/system-vxworks-ppc.ads: Likewise.
911 * libgnat/system-vxworks-x86-kernel.ads: Likewise.
912 * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
913 * libgnat/system-vxworks-x86-rtp.ads: Likewise.
914 * libgnat/system-vxworks-x86-vthread.ads: Likewise.
915 * libgnat/system-vxworks-x86.ads: Likewise.
916 * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
917 * libgnat/system-vxworks7-aarch64.ads: Likewise.
918 * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
919 * libgnat/system-vxworks7-arm.ads: Likewise.
920 * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
921 * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
922 * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
923 * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
924 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
925 * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
926 * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
927 * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
928 * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
929 * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
930 * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
931 * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
932 * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
934 2020-10-16 Arnaud Charlet <charlet@adacore.com>
936 * Makefile.rtl, gnat1drv.adb, expander.adb
937 doc/gnat_rm/implementation_defined_pragmas.rst,
938 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
939 doc/gnat_ugn/the_gnat_compilation_model.rst, exp_ch5.ads,
940 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
941 exp_util.ads, libgnarl/s-osinte__aix.adb,
942 libgnarl/s-osinte__android.adb, libgnarl/s-osinte__darwin.adb,
943 libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__hpux-dce.adb,
944 libgnarl/s-osinte__lynxos178.adb, libgnarl/s-osinte__posix.adb,
945 libgnarl/s-osinte__qnx.adb, libgnarl/s-osinte__rtems.adb,
946 libgnarl/s-osinte__solaris.adb, libgnarl/s-osinte__vxworks.adb,
947 libgnarl/s-osinte__x32.adb, libgnarl/s-solita.adb,
948 libgnarl/s-taasde.adb, libgnarl/s-taprob.adb,
949 libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb,
950 libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
951 libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
952 libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
953 libgnarl/s-tarest.adb, libgnarl/s-tasini.adb,
954 libgnarl/s-taskin.adb, libgnarl/s-taspri__dummy.ads,
955 libgnarl/s-taspri__hpux-dce.ads, libgnarl/s-taspri__lynxos.ads,
956 libgnarl/s-taspri__mingw.ads,
957 libgnarl/s-taspri__posix-noaltstack.ads,
958 libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads,
959 libgnarl/s-taspri__vxworks.ads, libgnarl/s-tassta.adb,
960 libgnarl/s-tasuti.adb, libgnarl/s-tposen.adb,
961 libgnat/a-except.adb, libgnat/a-except.ads,
962 libgnat/s-dwalin.adb, libgnat/s-dwalin.ads,
963 libgnat/s-mastop.ads, libgnat/s-soflin.adb,
964 libgnat/s-stalib.adb, libgnat/s-stalib.ads,
965 libgnat/s-stchop.adb, libgnat/s-stchop.ads,
966 libgnat/s-stchop__limit.ads, libgnat/s-traceb.ads,
967 libgnat/s-traent.adb, libgnat/s-traent.ads,
968 libgnat/s-trasym.adb, libgnat/s-trasym.ads,
969 libgnat/s-trasym__dwarf.adb, opt.adb, opt.ads, par-prag.adb,
970 sem_prag.adb, snames.ads-tmpl, switch-c.adb, targparm.adb,
971 targparm.ads, usage.adb: Remove support for -gnatP and pragma
973 * gnat_ugn.texi: Regenerate.
974 * libgnat/a-excpol.adb, libgnat/a-excpol__abort.adb: Removed.
976 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
978 * sem_ch3.adb (Array_Type_Declaration): Create itype with unique
981 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
983 * sem_ch3.adb (Analyze_Object_Declaration): Limit scope of a
984 local object by hiding it from local subprograms; simplify
985 nested if-then-if-then condition for an Ada 83 restriction.
986 (Array_Type_Declaration): Confirm with assertion when the else
988 (Find_Type_Of_Object): Simplify membership test with a subtype
991 2020-10-16 Yannick Moy <moy@adacore.com>
993 * sem_prag.adb (Analyze_Global_In_Decl_Part): Update check to
994 reject volatile object for reading.
995 * sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Update
996 check to reject volatile object for reading.
997 * sem_util.adb, sem_util.ads
998 (Check_Nonvolatile_Function_Profile,
999 Has_Effectively_Volatile_Profile): Detect use of volatile object
1001 (Has_Enabled_Property): Accept constants as well.
1002 (Is_Effectively_Volatile_For_Reading): New function based on
1003 existing Is_Effectively_Volatile.
1004 (Is_Effectively_Volatile_Object_For_Reading): Adapted from the
1005 existing Is_Effectively_Volatile_Object, using a shared
1006 implementation in Is_Effectively_Volatile_Object_Shared.
1008 2020-10-16 Gary Dismukes <dismukes@adacore.com>
1010 * exp_ch7.adb (Check_Unnesting_In_Decls_Or_Stmts): In the case
1011 of an if-statement, call Unnest_If_Statement to determine
1012 whether there are nested subprograms in any of the statement
1013 lists of the "if" parts that require a wrapping procedure to
1014 handle possible up-level refeferences.
1015 (Unnest_Block): Call Check_Unnesting_In_Handlers to do unnesting
1016 of subprograms in exception handlers of the block statement.
1017 (Unnest_If_Statement): New procedure to traverse the parts of an
1018 if-statement and create wrapper procedures as needed to
1019 encapsulate nested subprograms that may make up-level
1021 (Check_Stmts_For_Subp_Unnesting): New support procedure in
1022 Unnest_If_Statement to traverse a statement list looking for
1023 top-level subprogram bodies that require wrapping inside a
1024 procedure (via Unnest_Statement_List) as well as possibly having
1025 other statements (block, loop, if) that may themselves require
1026 an unnesting transformation (via
1027 Check_Unnesting_In_Decls_Or_Stmts).
1028 (Unnest_Statement_List): New support procedure to traverse the
1029 statements of a statement list that contains subprogram bodies
1030 at the top level and replace the statement list with a wrapper
1031 procedure body encapsulating the statements and a call to the
1034 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1036 * sem_prag.adb (Check_OK_Stream_Convert_Function): Check for
1037 abstract subprograms.
1039 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
1041 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
1042 (No_Local_Timing_Events): Package Timing_Events is a child of
1043 Ada.Real_Time, not of Ada.
1044 * gnat_rm.texi: Regenerate.
1046 2020-10-16 Eric Botcazou <ebotcazou@adacore.com>
1048 * doc/gnat_rm/implementation_defined_attributes.rst: Document the
1049 new Max_Integer_Size attribute.
1050 * gnat_rm.texi: Regenerate.
1051 * exp_attr.adb (Get_Integer_Type): Call Small_Integer_Type_For.
1052 (Expand_N_Attribute_Reference) <Attribute_Pred>: Replace selection
1053 code with call to Integer_Type_For.
1054 <Attribute_Succ>: Likewise.
1055 <Attribute_Val>: Likewise.
1056 <Attribute_Valid>: Likewise.
1057 <Attribute_Max_Integer_Size>: Raise Program_Error.
1058 * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Replace selection
1059 code with call to Integer_Type_For.
1060 (Simple_Init_Initialize_Scalars_Type): Use Long_Long_Unsigned and
1061 System_Max_Integer_Size to size the largest integer type.
1062 * exp_pakd.adb (Compute_Linear_Subscript): Minor tweak.
1063 (Create_Packed_Array_Impl_Type): Use Small_Integer_Type_For.
1064 * exp_util.ads (Integer_Type_For): New function.
1065 (Small_Integer_Type_For): Likewise.
1066 * exp_util.adb (Adjust_Condition): Use Integer_Type_For.
1067 (Component_May_Be_Bit_Aligned): Use System_Max_Integer_Size.
1068 (Integer_Type_For): New function.
1069 (Small_Integer_Type_For): Likewise.
1070 (Matching_Standard_Type): Use Small_Integer_Type_For.
1071 (Needs_Constant_Address): Replace 64 with System_Max_Integer_Size.
1072 * freeze.adb (Set_Small_Size): Likewise.
1073 (Size_Known): Likewise.
1074 (Check_Suspicious_Modulus): Likewise.
1075 (Check_Large_Modular_Array): Likewise.
1076 (Freeze_Entity): Likewise.
1077 * layout.adb (Layout_Type): Likewise.
1078 * sem_aggr.adb: Add with and use clauses for Ttypes.
1079 (Resolve_Aggregate): Replace 64 with System_Max_Integer_Size.
1080 * sem_attr.ads (Attribute_Impl_Def): Add Attribute_Max_Integer_Size.
1081 * sem_attr.adb (Analyze_Attribute) <Attribute_Max_Integer_Size>: New
1082 (Eval_Attribute): Likewise.
1083 * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Change max
1084 scalar size to System_Max_Integer_Size.
1085 (Check_Array_Type): Replace 64 with System_Max_Integer_Size and
1086 remove superfluous test.
1087 (OK_Component): Likewise.
1088 * sem_ch5.adb: Add with and use clauses for Ttypes.
1089 (Analyze_Assignment): Replace 64 with System_Max_Integer_Size.
1090 * snames.ads-tmpl (Name_Max_Integer_Size): New attribute name.
1091 (Attribute_Id): Add Attribute_Max_Integer_Size.
1092 * ttypes.ads (System_Max_Integer_Size): New constant.
1094 2020-10-15 Arnaud Charlet <charlet@adacore.com>
1096 * sem_ch10.adb (Install_With_Clause): Fix implementation of Ada
1097 2005 AI-262 by taking into account generic packages. Minor
1099 * libgnat/a-cbhase.ads, libgnat/a-cbhase.adb: Remove use clause
1100 on runtime unit spec.
1102 2020-10-15 Arnaud Charlet <charlet@adacore.com>
1104 * einfo.ads, einfo.adb (Scope_Depth_Value,
1105 Set_Scope_Depth_Value): Add assertions on valid nodes and update
1106 documentation accordingly.
1107 (Write_Field22_Name): Sync with change in Scope_Depth_Value.
1108 * sem_ch8.adb (Find_Direct_Name): Fix call to Scope_Depth_Value.
1110 2020-10-15 Javier Miranda <miranda@adacore.com>
1112 * sem_prag.adb (Analyze_Pragma): Adding semantic support of
1113 Standard to Default_Storage_Pool.
1114 * freeze.adb (Freeze_Entity): If pragma Default_Storage_Pool
1115 applies and it is set to Standard then use the global pool as
1116 the associated storage pool of the access type.
1118 2020-10-15 Javier Miranda <miranda@adacore.com>
1120 * exp_ch6.ads (Might_Have_Tasks): Update documentation.
1121 * exp_ch6.adb (Might_Have_Tasks): Return also true when the type
1123 (Make_Build_In_Place_Call_In_Allocator): Code cleanup.
1124 * exp_ch3.adb (Ensure_Activation_Chain_And_Master,
1125 Expand_N_Full_Type_Declaration, Expand_N_Object_Declaration):
1128 2020-10-15 Steve Baird <baird@adacore.com>
1130 * checks.adb (Apply_Predicate_Check): Generate "infinite
1131 recursion" warning message even if run-time predicate checking
1133 * exp_ch6.adb (Expand_Simple_Function_Return): In testing
1134 whether the returned expression is a function call, look for the
1135 case where the call has been transformed into a dereference of
1136 an access value that designates the result of a function call.
1137 * sem_ch3.adb (Analyze_Object_Declaration): Legality checking
1138 for a static expression is unaffected by assertion policy (and,
1139 in particular, enabling/disabling of subtype predicates. To get
1140 the right legality checking, we need to call
1141 Check_Expression_Against_Static_Predicate for a static
1142 expression even if predicate checking is disabled for the given
1143 predicate-bearing subtype. On the other hand, we don't want to
1144 call Make_Predicate_Check unless predicate checking is enabled.
1145 * sem_ch7.adb (Uninstall_Declarations.Preserve_Full_Attributes):
1146 Preserve the Predicates_Ignored attribute.
1147 * sem_eval.adb (Check_Expression_Against_Static_Predicate):
1148 Previously callers ensured that this procedure was only called
1149 if predicate checking was enabled; that is no longer the case,
1150 so predicates-disabled case must be handled.
1151 * sem_prag.adb (Analyze_Pragma): Fix bug in setting
1152 Predicates_Ignored attribute in Predicate pragma case.
1154 2020-10-15 Ed Schonberg <schonberg@adacore.com>
1156 * freeze.adb (Freeze_Fixed_Point_Type): Do not scale the bounds
1157 of a declared subtype using the 'Small of the type; this is
1158 done during resolution of the bound itself, unlike what is done
1159 for the bounds of the base type, which are used to determine its
1160 required size. Previous code performed this scaling twice,
1161 leading to meaningless values for such a subtype.
1163 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
1165 * sem_util.adb (Bad_Predicated_Subtype_Use): Emit an
1166 unconditional error, not a conditional warning.
1168 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
1170 * sem_ch3.adb (Process_Subtype): Combine guards for
1171 Null_Exclusion_Present in May_Have_Null_Exclusion; use this
1172 combined guard when checking AI-231.
1174 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
1176 * sem_ch3.adb (Process_Subtype): Sync May_Have_Null_Exclusion
1177 with assertion in Null_Exclusion_Present; clarify the scope of
1180 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
1182 * sem_ch3.adb (Analyze_Subtype_Declaration): Fix style.
1183 (Make_Index): Refactor to avoid repeated detection of subtype
1184 indication; add comment.
1186 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
1188 * sem_prag.adb (Is_Acceptable_Dim3): Use Is_RTE to not pull CUDA
1189 package unless necessary; rename local Tmp variable; iterate
1190 with procedural Next.
1192 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
1194 * sem_ch3.adb (Array_Type_Declaration): Refine type of a local
1196 (Make_Index): Simplify to avoid assignment with a type entity
1197 and then backtracking by reassigning to Empty; remove excessive
1199 * sem_ch9.adb (Analyze_Entry_Body): Remove extra parens.
1201 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
1203 * sem_ch3.adb (Access_Subprogram_Declaration): Remove extra
1205 (Make_Index): Remove excessive calls to Is_Type.
1207 2020-10-15 Arnaud Charlet <charlet@adacore.com>
1209 * sem_util.adb (Enter_Name): Remove unnecessary conditions in
1210 Enter_Name that come from the beginning of times.
1212 2020-10-15 Bob Duff <duff@adacore.com>
1214 * exp_ch6.adb (Expand_Simple_Function_Return): Remove DSP part
1215 of comment, and reformat.
1217 2020-10-15 Boris Yakobowski <yakobowski@adacore.com>
1219 * exp_attr.adb (Expand_N_Attribute_Reference): Do not expand
1220 'Initialized in CodePeer mode.
1222 2020-10-15 Arnaud Charlet <charlet@adacore.com>
1224 * sem_ch12.adb (Reset_Entity): Protect against malformed tree.
1226 2020-10-15 Arnaud Charlet <charlet@adacore.com>
1228 * sem_ch13.adb (Add_Predicates): Prevent analyzing twice the
1229 same pragma in case an inner package references the type with a
1230 predicate (as opposed to defining the type).
1232 2020-10-15 Eric Botcazou <ebotcazou@adacore.com>
1234 * libgnat/a-cfinve.adb (Int): Use subtype of Long_Long_Integer.
1235 * libgnat/a-cofove.adb (Int): Likewise.
1236 * libgnat/a-cgcaso.adb (T): Likewise.
1237 * libgnat/a-cogeso.adb (T): Likewise.
1238 * libgnat/g-debpoo.ads (Byte_Count): Use Long_Long_Integer'Size.
1240 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
1242 * sem_ch12.adb: Replace list of N_Defining_... enumerations with
1245 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
1247 * sem_ch3.ads, sem_ch3.adb (Make_Index): Refined type of
1249 (Constrain_Index): Likewise.
1250 (Array_Type_Declaration): Refine type of a local counter
1251 variable; remove a trivially useless initialization.
1253 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
1255 * sem_ch3.adb (Analyze_Subtype_Declaration): Recognize both
1256 identifiers and expanded names; use high-level Is_Scalar_Type
1257 instead of low-level membership test.
1259 2020-10-15 Arnaud Charlet <charlet@adacore.com>
1261 * sem_eval.adb (Eval_Intrinsic_Call, Fold_Shift): Add support
1262 for Shift_Right_Arithmetic and for signed integers.
1263 * exp_ch4.adb (Expand_N_Op_Rotate_Left,
1264 Expand_N_Op_Rotate_Right, Expand_N_Op_Shift_Left,
1265 Expand_N_Op_Shift_Right_Arithmetic): Minor reformatting and code
1266 cleanup to ensure a consistent handling. Update comments and add
1269 2020-10-15 Bob Duff <duff@adacore.com>
1271 * sem_ch13.adb (Visible_Component): Enable this code for task
1272 and protected types, as well as record and private types.
1273 * sem_ch13.ads (Replace_Type_References_Generic): Update
1274 comment. Move the efficiency comment into the body, because
1275 it's about the implementation.
1277 2020-10-15 Arnaud Charlet <charlet@adacore.com>
1279 * par-ch13.adb (Get_Aspect_Specifications): Generate a warning
1280 rather than an error on unknown aspects unless -gnatd2 is used.
1281 (Aspect_Specifications_Present): Improve detection of unknown
1283 * debug.adb (Debug_Flag_2): Update document.
1285 2020-10-15 Arnaud Charlet <charlet@adacore.com>
1287 * sem_res.adb (Resolve_Call): Do not try to inline intrinsic
1290 2020-10-15 Ed Schonberg <schonberg@adacore.com>
1292 * exp_aggr.adb (Expand_N_Aggregate): A record aggregate requires
1294 * sem_ch13.adb (Valid_Assign_Indexed): New subprogram local to
1295 Resolve_Aspect_Aggregate, to handle the case when the
1296 corresponding name appearing in the aspect specification for an
1297 indexed aggregate is an overloaded operation.
1298 * libgnat/a-convec.ads, libgnat/a-convec.adb,
1299 libgnat/a-coinve.ads, libgnat/a-coinve.adb,
1300 libgnat/a-cobove.ads, libgnat/a-cobove.adb,
1301 libgnat/a-cdlili.ads, libgnat/a-cdlili.adb,
1302 libgnat/a-cbdlli.ads, libgnat/a-cbdlli.adb,
1303 libgnat/a-cohama.ads, libgnat/a-cihama.ads,
1304 libgnat/a-cbhama.ads, libgnat/a-cborma.ads,
1305 libgnat/a-ciorma.ads, libgnat/a-coorma.ads,
1306 libgnat/a-cihase.ads, libgnat/a-cohase.ads,
1307 libgnat/a-cbhase.ads, libgnat/a-cborse.ads,
1308 libgnat/a-ciorse.ads, libgnat/a-coorse.ads: Add Ada_2020 aspect
1309 Aggregate to types declared in standard containers, as well as
1310 new subprograms where required.
1312 2020-10-15 Arnaud Charlet <charlet@adacore.com>
1314 * libgnat/g-arrspl.ads, libgnat/g-arrspl.adb (Create,
1315 First_Cursor, Advance, Has_Element): New.
1317 2020-10-15 Arnaud Charlet <charlet@adacore.com>
1319 * Makefile.rtl: Add target pair for interfac.ads.
1320 * libgnat/interfac.ads: Add a comment.
1321 * libgnat/interfac__2020.ads: New, used for bootstrap purposes.
1322 * sem_util.adb (Is_Static_Function): Always return False for pre
1323 Ada 2020 to e.g. ignore the Static aspect in Interfaces for
1326 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
1328 * exp_util.adb (Remove_Side_Effects): Move special-casing for
1329 GNATprove to be applied to all object declarations.
1331 2020-10-12 Alexandre Oliva <oliva@adacore.com>
1333 * libgnat/a-ngelfu.ads (Sin, Cos): Make the single-argument
1336 2020-10-11 Alexandre Oliva <oliva@adacore.com>
1338 * libgnat/a-numaux.ads: Make all imports Intrinsic.
1339 * libgnat/a-numaux__darwin.ads: Likewise.
1340 * libgnat/a-numaux__libc-x86.ads: Likewise.
1341 * libgnat/a-numaux__vxworks.ads: Likewise.
1343 2020-09-28 Eric Botcazou <ebotcazou@adacore.com>
1345 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the end locus
1346 of body and declaration earlier.
1348 2020-09-28 Eric Botcazou <ebotcazou@adacore.com>
1350 * gcc-interface/decl.c (maybe_saturate_size): Add ALIGN parameter
1351 and round down the result to ALIGN.
1352 (gnat_to_gnu_entity): Adjust calls to maybe_saturate_size.
1354 2020-09-14 Jakub Jelinek <jakub@redhat.com>
1356 * gcc-interface/trans.c (gigi): Adjust build_optimization_node
1359 2020-09-12 Eric Botcazou <ebotcazou@adacore.com>
1361 * fe.h: Fix pilot error in previous change.
1362 * gcc-interface/gigi.h (enum standard_datatypes): Add ADT_mulv128_decl.
1363 (mulv128_decl): New macro.
1364 (get_target_long_long_long_size): Declare.
1365 * gcc-interface/decl.c (gnat_to_gnu_entity): Use a maximum size of
1366 128 bits for discrete types if Enable_128bit_Types is true.
1367 * gcc-interface/targtyps.c: Include target.h.
1368 (get_target_long_long_long_size): New function.
1369 * gcc-interface/trans.c (gigi): Initialize mulv128_decl if need be.
1370 (build_binary_op_trapv): Call it for 128-bit multiplication.
1371 * gcc-interface/utils.c (make_type_from_size): Enforce a maximum
1372 size of 128 bits if Enable_128bit_Types is true.
1374 2020-09-12 Eric Botcazou <ebotcazou@adacore.com>
1376 * gcc-interface/trans.c (lvalue_for_aggr_p) <N_Object_Declaration>:
1377 Return false unconditionally.
1379 2020-09-12 Eric Botcazou <ebotcazou@adacore.com>
1381 * gcc-interface/trans.c (gnat_to_gnu) <N_Object_Declaration>: Clear
1382 the SLOC of the expression of a tag.
1384 2020-09-12 Eric Botcazou <ebotcazou@adacore.com>
1386 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Only give
1387 a warning for the overlay of an aliased array with an unconstrained
1388 nominal subtype if the address is absolute.
1390 2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
1392 * gcc-interface/utils.c (type_has_variable_size): New function.
1393 (create_field_decl): In the packed case, also force byte alignment
1394 when the type of the field has variable size.
1396 2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
1398 * gcc-interface/misc.c (get_array_bit_stride): Return TYPE_ADA_SIZE
1399 for record and union types.
1401 2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
1403 * gcc-interface/misc.c (gnat_get_fixed_point_type): Bail out only
1404 when the GNAT encodings are specifically used.
1406 2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
1408 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Only
1409 create extra subtypes for discriminants if the RM size of the base
1410 type of the index type is lower than that of the index type.
1412 2020-09-10 Eric Botcazou <ebotcazou@adacore.com>
1414 * gcc-interface/decl.c (set_rm_size): Do not take into account the
1415 Value_Size clause if it is not for the entity itself.
1417 2020-09-10 Eric Botcazou <ebotcazou@adacore.com>
1419 * gcc-interface/decl.c (build_subst_list): For a definition, make
1420 sure to instantiate the SAVE_EXPRs generated by the elaboration of
1421 the constraints in front of the elaboration of the type itself.
1423 2020-09-10 Eric Botcazou <ebotcazou@adacore.com>
1425 * gcc-interface/misc.c: Include tree-pass.h.
1426 (internal_error_function): Call emergency_dump_function.
1428 2020-09-03 Arnaud Charlet <charlet@adacore.com>
1430 * fe.h, opt.ads (Enable_128bit_Types): New.
1431 * stand.ads (Standard_Long_Long_Long_Integer,
1432 S_Long_Long_Long_Integer): New.
1434 2020-09-03 Arnaud Charlet <charlet@adacore.com>
1436 * sem_util.ads, sem_util.adb (Get_Fullest_View): New procedure.
1437 * exp_unst.adb (Check Static_Type): Do all processing on fullest
1438 view of specified type.
1440 2020-08-27 Martin Liska <mliska@suse.cz>
1442 * gcc-interface/trans.c (gigi): Set exact argument of a vector
1443 growth function to true.
1444 (Attribute_to_gnu): Likewise.
1446 2020-07-27 Alexandre Oliva <oliva@adacore.com>
1448 * switch.adb (Is_Internal_GCC_Switch): Revert accidental
1449 reintroduction of auxbase and auxbase-strip.
1451 2020-07-27 Javier Miranda <miranda@adacore.com>
1453 * sem_res.adb (Resolve_Actuals): Restrict the check on matching
1454 aliased components to view conversions of array types that are
1455 not placed in an instance. In such case at runtime an object is
1457 * sem_util.ads (Is_Actual_In_Out_Parameter, Is_View_Conversion):
1459 * sem_util.adb (Is_Actual_In_Out_Parameter, Is_View_Conversion):
1462 2020-07-27 Arnaud Charlet <charlet@adacore.com>
1464 * lib-xref.adb (Generate_Reference): Protect against malformed
1465 tree in case of severe errors.
1466 * sem_ch8.adb (Add_Implicit_Operator): Ditto.
1468 2020-07-27 Arnaud Charlet <charlet@adacore.com>
1470 * opt.ads (Ada_Version_Runtime): Set to Ada_2020.
1471 * sem_ch3.adb (Analyze_Subtype_Declaration): Propagate
1472 Is_Independent flag to subtypes.
1473 * libgnarl/s-taprop__linux.adb: Adapt to Ada 2020 warning.
1474 * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
1475 libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
1476 libgnat/a-nbnbre.ads, libgnat/a-stobbu.adb,
1477 libgnat/a-stobbu.ads, libgnat/a-stobfi.adb,
1478 libgnat/a-stobfi.ads, libgnat/a-stoubu.adb,
1479 libgnat/a-stoubu.ads, libgnat/a-stoufi.adb,
1480 libgnat/a-stoufi.ads, libgnat/a-stoufo.adb,
1481 libgnat/a-stoufo.ads, libgnat/a-stouut.adb,
1482 libgnat/a-stouut.ads, libgnat/a-strsto.ads,
1483 libgnat/a-ststbo.adb, libgnat/a-ststbo.ads,
1484 libgnat/a-ststun.adb, libgnat/a-ststun.ads,
1485 libgnat/a-stteou.ads, libgnat/s-aoinar.ads,
1486 libgnat/s-aomoar.ads, libgnat/s-atopex.ads,
1487 libgnat/s-putaim.adb, libgnat/s-putaim.ads,
1488 libgnat/s-putima.adb, libgnat/s-putima.ads: Remove pragma
1489 Ada_2020, now redundant.
1491 2020-07-27 Justin Squirek <squirek@adacore.com>
1493 * exp_ch6.adb (Expand_Call_Helper): Modify addition of the extra
1494 accessibility parameter to take into account the extra
1495 accessibility of formals within the calling subprogram.
1497 2020-07-27 Bob Duff <duff@adacore.com>
1499 * exp_imgv.adb (Expand_Image_Attribute): Add Root_Type, so
1500 constrained subtypes work.
1502 2020-07-27 Ghjuvan Lacambre <lacambre@adacore.com>
1504 * exp_prag.adb (Arg1, Arg2, Arg3): Removed.
1505 (Arg_N): New function.
1507 2020-07-27 Arnaud Charlet <charlet@adacore.com>
1509 * sem_ch8.adb (Analyze_Object_Renaming): Allow values in Ada
1512 2020-07-27 Arnaud Charlet <charlet@adacore.com>
1514 * sem_res.adb (Resolve_Actuals): Refine 6.4.1 rules as per
1517 2020-07-27 Bob Duff <duff@adacore.com>
1519 * errout.ads, errout.adb (Error_Msg_Ada_2020_Feature): New
1520 procedure analogous to Error_Msg_Ada_2012_Feature.
1521 * sem_attr.adb (Analyze_Image_Attribute): Use
1522 Error_Msg_Ada_2012_Feature and Error_Msg_Ada_2020_Feature to
1523 indicate that Object'Image is allowed in Ada 2012, and that
1524 'Image is allowed for any type in Ada 2020.
1526 2020-07-27 Dmitriy Anisimkov <anisimko@adacore.com>
1528 * libgnat/a-strunb.adb (Sum, Mul, Saturated_Sum, Saturated_Mul):
1529 New routines. Use them when resulting string size more that
1530 length of the strings in parameters.
1531 (Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side
1532 of condition to avoid overflow.
1533 * libgnat/a-strunb__shared.adb (Sum, Mul): New routines.
1534 (Allocate): New routine with 2 parameters. Use routine above
1535 when resulting string size more that length of the strings in
1537 (Aligned_Max_Length): Do not try to align to more than Natural'Last.
1538 (Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side
1539 of condition to avoid overflow.
1541 2020-07-27 Arnaud Charlet <charlet@adacore.com>
1543 * sem_attr.adb (Resolve_Attribute): Remove dead code.
1545 2020-07-27 Arnaud Charlet <charlet@adacore.com>
1547 * aspects.adb, atree.adb, atree.ads, checks.adb, contracts.adb,
1548 einfo.adb, errout.adb, exp_aggr.adb, exp_attr.adb, exp_cg.adb,
1549 exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb,
1550 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb,
1551 exp_dbug.adb, exp_disp.adb, exp_intr.adb, exp_pakd.adb,
1552 exp_prag.adb, exp_put_image.adb, exp_smem.adb, exp_tss.adb,
1553 exp_unst.adb, exp_util.adb, freeze.adb, ghost.adb, gnat1drv.adb,
1554 inline.adb, lib-writ.adb, lib-xref-spark_specific.adb,
1555 lib-xref.adb, namet.adb, namet.ads, nlists.adb, par-ch10.adb,
1556 par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
1557 par-prag.adb, par-util.adb, par_sco.adb, pprint.adb,
1558 repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, sem.adb,
1559 sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb,
1560 sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb,
1561 sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb,
1562 sem_ch8.adb, sem_ch9.adb, sem_dim.adb, sem_disp.adb,
1563 sem_dist.adb, sem_elab.adb, sem_elim.adb, sem_eval.adb,
1564 sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
1565 sem_scil.adb, sem_type.adb, sem_util.adb, sem_warn.adb,
1566 sinfo.adb, sinfo.ads, sprint.adb, styleg.adb, tbuild.adb,
1567 treepr.adb (Nkind_In, Nam_In, Ekind_In): Removed, replaced by
1570 2020-07-27 Gary Dismukes <dismukes@adacore.com>
1572 * sem_prag.adb (Analyze_Pragma, Pragma_Max_Entry_Queue_Length):
1573 Refine error message to indicate that the pragma must apply to
1574 an entry declaration, not just an entry.
1576 2020-07-27 Javier Miranda <miranda@adacore.com>
1578 * exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator):
1579 Revert previous patch, and add a missing type conversion to
1580 displace the pointer to the allocated object to reference the
1581 target dispatch table.
1583 2020-07-27 Javier Miranda <miranda@adacore.com>
1585 * sem_res.adb (Resolve_Actuals): Restore restrictive check on
1586 view conversions which required matching value of
1587 Has_Aliased_Components of formals and actuals. Required to avoid
1588 the regression of ACATS b460005.
1590 2020-07-27 Eric Botcazou <ebotcazou@adacore.com>
1592 * sem_ch12.adb (Instantiate_Package_Body): Add commentary for a
1593 nesting issue with parent handling and private view switching.
1594 (Switch_View): Do not skip specific private-dependent subtypes.
1596 2020-07-27 Patrick Bernardi <bernardi@adacore.com>
1598 * Makefile.rtl: Remove X86_TARGET_PAIRS for x86-lynx178elf.
1600 2020-07-27 Ed Schonberg <schonberg@adacore.com>
1602 * sem_ch13.adb (Analyze_Address_Specification_Clause): Do not
1603 emit a warning when a constant declaration in a generic unit
1604 overlays a generic In_Parameter.
1606 2020-07-27 Gary Dismukes <dismukes@adacore.com>
1608 * sem_ch3.adb (Check_Abstract_Overriding): Remove Scope
1609 comparison test from test related to initial implementation of
1610 AI12-0042, plus remove the related ??? comment.
1611 (Derive_Subprogram): Add test requiring that the type extension
1612 appear in the visible part of its enclosing package when
1613 checking the overriding requirement of 7.3.2(6.1/4), as
1614 clarified by AI12-0382.
1616 2020-07-27 Piotr Trojanek <trojanek@adacore.com>
1618 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference) Extend
1619 existing workaround to 'Pos.
1621 2020-07-27 Bob Duff <duff@adacore.com>
1623 * libgnat/s-rannum.ads, libgnat/s-rannum.adb: Add Put_Image.
1624 This will be inherited by the language-defined packages
1625 Ada.Numerics.Discrete_Random and Ada.Numerics.Float_Random.
1626 * libgnat/a-convec.ads, libgnat/a-convec.adb: Add Put_Image.
1627 * libgnat/s-putima.ads: Add pragma Preelaborate, so this can be
1628 imported into containers packages.
1629 * libgnat/s-putima.adb: Move Digit to private part; otherwise
1630 reference to Base is illegal in Preelaborate generic.
1631 * exp_put_image.adb (Build_Record_Put_Image_Procedure): Use the
1634 2020-07-23 Arnaud Charlet <charlet@adacore.com>
1636 * aspects.ads: Declare CUDA_Global as aspect.
1637 * einfo.ads: Use Flag118 for the Is_CUDA_Kernel flag.
1638 (Set_Is_CUDA_Kernel): New function.
1639 (Is_CUDA_Kernel): New function.
1640 * einfo.adb (Set_Is_CUDA_Kernel): New function.
1641 (Is_CUDA_Kernel): New function.
1642 * par-prag.adb (Prag): Ignore Pragma_CUDA_Execute and
1644 * rtsfind.ads: Define CUDA.Driver_Types.Stream_T and
1645 CUDA.Vector_Types.Dim3 entities
1646 * rtsfind.adb: Define CUDA_Descendant subtype.
1647 (Get_Unit_Name): Handle CUDA_Descendant packages.
1648 * sem_prag.ads: Mark CUDA_Global as aspect-specifying pragma.
1649 * sem_prag.adb (Analyze_Pragma): Validate Pragma_CUDA_Execute and
1651 * snames.ads-tmpl: Define Name_CUDA_Execute and Name_CUDA_Global.
1653 2020-07-23 Arnaud Charlet <charlet@adacore.com>
1655 * sem_ch13.ads (Same_Representation): Renamed as
1656 Has_Compatible_Representation because now the order of the arguments
1657 are taken into account; its formals are also renamed as Target_Type
1659 * sem_ch13.adb (Same_Representation): Renamed and moved to place the
1660 routine in alphabetic order.
1661 * sem_attr.adb (Prefix_With_Safe_Accessibility_Level): New subprogram.
1662 (Resolve_Attribute): Check that the prefix of attribute Access
1663 does not have a value conversion of an array type.
1664 * sem_res.adb (Resolve_Actuals): Remove restrictive check on view
1665 conversions which required matching value of Has_Aliased_Components of
1666 formals and actuals.
1667 * exp_ch4.adb (Handle_Changed_Representation): Update call to
1668 Same_Representation.
1669 (Expand_N_Type_Conversion): Update call to Same_Representation.
1670 * exp_ch5.adb (Change_Of_Representation): Update call to
1671 Same_Representation.
1672 * exp_ch6.adb (Add_Call_By_Copy_Code): Update call to
1673 Same_Representation.
1674 (Expand_Actuals): Update call to Same_Representation.
1675 (Expand_Call_Helper): Update call to Same_Representation.
1677 2020-07-23 Arnaud Charlet <charlet@adacore.com>
1679 * output.ads (Push_Output, Pop_Output): New procedures.
1680 * output.adb (FD_Array, FD_Stack, FD_Stack_Idx): New type and vars.
1681 (Push_Output, Pop_Output): New procedures.
1683 2020-07-16 Javier Miranda <miranda@adacore.com>
1685 * exp_ch3.adb (Expand_N_Full_Type_Declaration): Ensure a _master
1686 declaration on limited types that might have tasks.
1687 * exp_ch9.adb (Build_Master_Renaming): For private types, if we
1688 are processing declarations in the private part, ensure that
1689 master is inserted before its full declaration; otherwise the
1690 master renaming may be inserted in the public part of the
1691 package (and hence before the declaration of its _master
1694 2020-07-16 Arnaud Charlet <charlet@adacore.com>
1696 * sem_ch8.adb (Analyze_Subprogram_Renaming): A renames-as-body
1697 freezes the expression of any expression function that it
1700 2020-07-16 Ed Schonberg <schonberg@adacore.com>
1702 * sem_aggr.adb (Resolve_Container_Aggregate): Add semantic
1703 checks for indexed aggregates, including component associations
1704 and iterated component associations.
1705 * exp_aggr.adb (Expand_Iterated_Component): New subprogram,
1706 subsidiary of Expand_Container_Aggreggate, used for positional,
1707 named, and indexed aggregates.
1708 (Aggregate_Size): New subprogram to precompute the size of an
1709 indexed aggregate prior to call to allocate it.
1710 (Expand_Range_Component): New subprogram so generate loop for a
1711 component association given by a range or a subtype name in an
1714 2020-07-16 Bob Duff <duff@adacore.com>
1716 * bindo-diagnostics.adb (Output_Invocation_Related_Suggestions):
1717 Use Cumulative_Restrictions.Set, because Restriction_Active only
1718 works at compile time.
1720 2020-07-16 Bob Duff <duff@adacore.com>
1722 * gnatbind.adb (Gnatbind): For No_Tasks_Unassigned_To_CPU, check
1723 that CPU has been set on the main subprogram.
1724 (Restriction_Could_Be_Set): Don't print
1725 No_Tasks_Unassigned_To_CPU if it would violate the
1726 above-mentioned rule. Up to now, all restrictions were checked
1727 by the compiler, with the binder just checking for consistency.
1728 But the compiler can't know which subprogram is the main, so
1729 it's impossible to check this one at compile time.
1730 * restrict.ads, restrict.adb: Misc refactoring. Change Warning
1731 to Warn, for consistency, since most already use Warn.
1732 (Set_Restriction): New convenience routine.
1733 * sem_ch13.adb (Attribute_CPU): Check
1734 No_Tasks_Unassigned_To_CPU.
1735 * sem_prag.adb (Pragma_CPU): Check No_Tasks_Unassigned_To_CPU.
1737 * tbuild.ads, tbuild.adb (Sel_Comp): New functions for building
1738 selected components.
1740 2020-07-16 Eric Botcazou <ebotcazou@adacore.com>
1742 * impunit.adb (Non_Imp_File_Names_95): Remove duplicate entry.
1744 2020-07-16 Arnaud Charlet <charlet@adacore.com>
1746 * Makefile.rtl: replace a-numaux__x86.ads by
1747 a-numaux__libc-x86.ads and a-numaux__x86.adb by
1748 a-numaux__dummy.adb.
1749 * libgnat/a-numaux__x86.ads, libgnat/a-numaux__x86.adb: Removed.
1750 * libgnat/a-numaux__dummy.adb: New.
1752 2020-07-16 Ed Schonberg <schonberg@adacore.com>
1754 * sem_ch12.adb (Load_Parent_Of_Generic): If an ancestor is an
1755 instance whose source appears within a formal package of the
1756 current unit, there is no body of the ancestor needed to
1757 complete the current generic compilation.
1759 2020-07-16 Doug Rupp <rupp@adacore.com>
1761 * libgnat/s-thread__ae653.adb (taskVarAdd): Defunct, so remove.
1762 (Current_ATSD): Make it a TLS variable.
1763 (OK): Move to package scope.
1764 (System.Storage_Elements): Import and Use.
1766 2020-07-16 Eric Botcazou <ebotcazou@adacore.com>
1768 * exp_ch9.adb (Expand_N_Accept_Statement): Set Parent of the
1769 created block entity to the created block statement.
1771 2020-07-16 Arnaud Charlet <charlet@adacore.com>
1773 * scng.adb (Scan): Detect wide characters not in NFKC.
1774 * libgnat/a-chahan.adb, libgnat/a-chahan.ads,
1775 libgnat/a-wichha.adb, libgnat/a-wichha.ads,
1776 libgnat/a-wichun.adb, libgnat/a-wichun.ads,
1777 libgnat/a-zchhan.adb, libgnat/a-zchhan.ads,
1778 libgnat/a-zchuni.adb, libgnat/a-zchuni.ads (Is_NFKC): New.
1779 * libgnat/s-utf_32.ads, libgnat/s-utf_32.adb (Is_UTF_32_NFKC):
1782 2020-07-16 Bob Duff <duff@adacore.com>
1784 * libgnat/s-rident.ads (Restriction_Id): Add
1785 No_Tasks_Unassigned_To_CPU.
1787 2020-07-16 Bob Duff <duff@adacore.com>
1789 * exp_aggr.adb (Max_Aggregate_Size): Use the small size of 64
1790 when copying is needed (for example, for the initialization of a
1791 local variable, and for assignment statements). Use the larger
1792 size when static allocation can be done without copying.
1794 2020-07-16 Bob Duff <duff@adacore.com>
1796 * libgnat/s-rident.ads (No_Dynamic_CPU_Assignment): New
1797 restriction. Add it to all relevant profiles.
1798 * sem_ch13.adb (Attribute_CPU): Check No_Dynamic_CPU_Assignment
1800 (Attribute_CPU, Attribute_Dispatching_Domain,
1801 Attribute_Interrupt_Priority): Remove error checks -- these are
1802 checked in the parser.
1803 * sem_prag.adb (Pragma_CPU): Check No_Dynamic_CPU_Assignment
1804 restriction. We've got a little violation of DRY here.
1805 * sem.ads, sem_ch3.ads: Minor comment fix.
1807 2020-07-16 Gary Dismukes <dismukes@adacore.com>
1809 * sem_ch4.adb (Try_Container_Indexing): When the prefix type is
1810 an access type, change it to the designated type, change the
1811 prefix to an explicit dereference, and emit a ?d? warning for
1812 the implicit dereference. Include a ??? comment questioning
1813 whether this is the right context in which to perform the
1814 implicit dereferencing.
1816 2020-07-16 Arnaud Charlet <charlet@adacore.com>
1818 * sem_ch13.adb (Validate_Literal_Aspect): Ensure that the
1819 parameter is not aliased. Minor reformatting.
1820 * sem_util.adb (Statically_Names_Object): Update comment.
1822 2020-07-16 Ghjuvan Lacambre <lacambre@adacore.com>
1824 * sem_case.adb (Build_Choice): Set Is_Static_Expression flag.
1825 (Lit_Of): Update specification to mention Is_Static_Expression
1827 * sem_ch13.adb (Membership_Entry): Check for N_Others_Choice.
1829 2020-07-16 Bob Duff <duff@adacore.com>
1831 * sem_ch6.adb (Null_Exclusions_Match): New function to check
1832 that the null exclusions match, including in the case addressed
1834 (Check_Conformance): Remove calls to Comes_From_Source
1835 when calling Null_Exclusions_Match. These are not
1836 needed, as indicated by an ancient "???" comment.
1838 2020-07-16 Justin Squirek <squirek@adacore.com>
1840 * exp_ch4.adb (Expand_N_Type_Conversion): Remove flawed test for
1841 whether "statically deeper" accessibility rules apply to a given
1842 target type and instead use the new routine
1843 Statically_Deeper_Relation_Applies.
1844 (Statically_Deeper_Relation_Applies): Created to centralize the
1845 calculation of whether a target type within a conversion must
1846 have static accessibility checks.
1847 * sem_ch13.adb (Check_One_Function): Minor comment revision.
1849 2020-07-16 Eric Botcazou <ebotcazou@adacore.com>
1851 * fe.h (Is_OK_Static_Expression): Delete.
1852 * sem_eval.ads (Is_OK_Static_Expression): Remove WARNING note.
1854 2020-07-16 Justin Squirek <squirek@adacore.com>
1856 * einfo.adb, einfo.ads (Is_Named_Access_Type): Created for
1858 * sem_ch6.adb (Check_Return_Construct_Accessibility): Add
1859 special cases for formals.
1860 * sem_util.adb (Object_Access_Level): Add handling of access
1861 attributes and named access types in the general case.
1863 2020-07-16 Piotr Trojanek <trojanek@adacore.com>
1865 * sem_case.adb (Build_Choice): Simplify.
1867 2020-07-16 Arnaud Charlet <charlet@adacore.com>
1869 * frontend.adb: Disable Initialize_Scalars on runtime files.
1871 2020-07-16 Ghjuvan Lacambre <lacambre@adacore.com>
1873 * sem_ch3.adb (Analyze_Object_Declaration): Add
1874 Comes_From_Source call.
1876 2020-07-16 Javier Miranda <miranda@adacore.com>
1878 * exp_attr.adb (Expand_Access_To_Protected_Op): Initialize
1879 variable Sub to Empty to avoid false positive reported by
1882 2020-07-16 Arnaud Charlet <charlet@adacore.com>
1884 * sem_ch8.adb (Note_Redundant_Use): Add missing warning tag.
1885 Do not check for redundant use clauses in predefined units to avoid
1886 misleading warnings that may occur as part of a rtsfind load.
1888 2020-07-16 Javier Miranda <miranda@adacore.com>
1890 * exp_attr.adb (Has_By_Protected_Procedure_Prefixed_View): New
1892 (Expand_Access_To_Protected_Op): Adding support for prefixed
1893 class-wide view with By_Protected_Procedure convention.
1894 * sem_attr.adb (Get_Convention): New subprogram.
1895 (Get_Kind): Adapted to use Get_Convention.
1896 * sem_ch4.adb (Try_By_Protected_Procedure_Prefixed_View): New
1898 (Analyze_Selected_Component): Invoke
1899 Try_By_Protected_Procedure_Prefixed_View.
1900 * sem_util.ads (Is_By_Protected_Procedure): New subprogram.
1901 * sem_util.adb (Is_By_Protected_Procedure): New subprogram.
1903 2020-07-16 Arnaud Charlet <charlet@adacore.com>
1905 * libgnat/s-ststop.ads: Fix typo.
1906 * libgnat/s-ststop.adb (Read, Write): Fix block number
1907 computation to avoid overflows in case of large strings.
1909 2020-07-16 Arnaud Charlet <charlet@adacore.com>
1911 * libgnat/s-genbig.adb ("**"): Remove capacity limit check.
1912 Improve code by using an extended return.
1913 (Normalize): Perform capacity limit check here instead which is
1914 the centralized place where (potentially large) big integers are
1917 2020-07-16 Gary Dismukes <dismukes@adacore.com>
1919 * exp_ch4.adb (Expand_N_Type_Conversion): Handle the case of
1920 applying an invariant check for a conversion to a class-wide
1921 type whose root type has a type invariant, when the conversion
1922 appears within the immediate scope of the type and the
1923 expression is of a specific tagged type.
1924 * sem_ch3.adb (Is_Private_Primitive): New function to determine
1925 whether a primitive subprogram is a private operation.
1926 (Check_Abstract_Overriding): Enforce the restriction imposed by
1927 AI12-0042 of requiring overriding of an inherited nonabstract
1928 private operation when the ancestor has a class-wide type
1929 invariant and the ancestor's private operation is visible.
1930 (Derive_Subprogram): Set Requires_Overriding on a subprogram
1931 inherited from a visible private operation of an ancestor to
1932 which a Type_Invariant'Class expression applies.
1934 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
1936 * sem_util.adb (Find_Overlaid_Entity): Fix style in comment.
1937 (Note_Possible_Modification): Simplify repeated calls to Ekind.
1939 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
1941 * exp_aggr.adb (Flatten): Adjust description.
1942 (Convert_To_Positional): Remove obsolete ??? comment and use
1943 Compile_Time_Known_Value in the final test.
1945 2020-07-15 Arnaud Charlet <charlet@adacore.com>
1947 * par-ch4.adb (P_Iterated_Component_Association): Extended to
1948 recognzize the similar Iterated_Element_Association. This node
1949 is only generated when an explicit Key_Expression is given.
1950 Otherwise the distinction between the two iterated forms is done
1951 during semantic analysis.
1952 * sinfo.ads: New node N_Iterated_Element_Association, for
1953 Ada202x container aggregates. New field Key_Expression.
1954 * sinfo.adb: Subprograms for new node and newn field.
1955 * sem_aggr.adb (Resolve_Iterated_Component_Association): Handle
1956 the case where the Iteration_Scheme is an
1957 Iterator_Specification.
1958 * exp_aggr.adb (Wxpand_Iterated_Component): Handle a component
1959 with an Iterated_Component_Association, generate proper loop
1960 using given Iterator_Specification.
1961 * exp_util.adb (Insert_Axtions): Handle new node as other
1962 aggregate components.
1963 * sem.adb, sprint.adb: Handle new node.
1964 * tbuild.adb (Make_Implicit_Loop_Statement): Handle properly a
1965 loop with an Iterator_ specification.
1967 2020-07-15 Arnaud Charlet <charlet@adacore.com>
1969 * libgnat/s-stposu.adb (Allocate_Any_Controlled): Fix logic in
1972 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
1974 * sem_util.adb (Is_Object_Reference): Return True on
1977 2020-07-15 Arnaud Charlet <charlet@adacore.com>
1979 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Add proper
1980 handling of Aspect_Predicate_Failure, consistent with
1981 Check_Aspect_At_Freeze_Point.
1983 2020-07-15 Arnaud Charlet <charlet@adacore.com>
1985 * sem_ch13.adb (Check_Aspect_Too_Late): Mention -gnat2020 switch
1988 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
1990 * einfo.ads (Delayed Freezing and Elaboration): Adjust description.
1991 * freeze.adb (Freeze_Object_Declaration): Likewise.
1992 * sem_ch3.adb (Delayed_Aspect_Present): Likewise. Do not return
1994 * sem_ch13.adb (Analyze_Aspect_Specifications): Do not always delay
1995 for Alignment. Moreover, for Alignment and various Size aspects,
1996 do not delay if the expression is an attribute whose prefix is the
1999 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
2001 * exp_ch6.adb (Requires_Atomic_Or_Volatile_Copy): Return false
2002 inside an initialization procedure.
2004 2020-07-15 Ghjuvan Lacambre <lacambre@adacore.com>
2006 * sem_util.adb (Is_Renaming): Add ekind checks.
2008 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2010 * doc/gnat_ugn/gnat_utility_programs.rst: Remove doc on obsolete
2012 * gnat_ugn.texi: Regenerate.
2014 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2016 * sem_res.adb (Resolve_Type_Conversion): Protect against null
2017 entity. Add proper tag for -gnatwr warning.
2019 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2021 * sem_ch6.adb (Analyze_Procedure_Call): Detect use of operators
2022 in a procedure call.
2023 * sem_util.adb: Minor edit.
2025 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
2027 * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Apply scalar
2028 range checks against the base type of an index type, not against
2029 the index type itself.
2031 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
2033 * einfo.ads (Delayed Freezing and Elaboration): Minor tweaks.
2034 Document the discrepancy between the aspect and the non-aspect
2035 cases for alignment settings in object declarations.
2037 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2039 * exp_ch3.adb (Freeze_Type): Remove warning in expander,
2040 replaced by a corresponding error in sem_ch13.adb. Replace
2041 RTE_Available by RTU_Loaded to avoid adding unnecessary
2043 * sem_ch13.adb (Associate_Storage_Pool): New procedure.
2044 (Analyze_Attribute_Definition_Clause
2045 [Attribute_Simple_Storage_Pool| Attribute_Storage_Pool]): Call
2046 Associate_Storage_Pool to add proper legality checks on
2049 2020-07-15 Yannick Moy <moy@adacore.com>
2051 * libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
2052 libgnat/a-cbhama.adb, libgnat/a-cbhama.ads,
2053 libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
2054 libgnat/a-cbmutr.adb, libgnat/a-cbmutr.ads,
2055 libgnat/a-cborma.adb, libgnat/a-cborma.ads,
2056 libgnat/a-cborse.adb, libgnat/a-cborse.ads,
2057 libgnat/a-cbprqu.adb, libgnat/a-cbprqu.ads,
2058 libgnat/a-cbsyqu.adb, libgnat/a-cbsyqu.ads,
2059 libgnat/a-cdlili.adb, libgnat/a-cdlili.ads,
2060 libgnat/a-cidlli.adb, libgnat/a-cidlli.ads,
2061 libgnat/a-cihama.adb, libgnat/a-cihama.ads,
2062 libgnat/a-cihase.adb, libgnat/a-cihase.ads,
2063 libgnat/a-cimutr.adb, libgnat/a-cimutr.ads,
2064 libgnat/a-ciorma.adb, libgnat/a-ciorma.ads,
2065 libgnat/a-ciormu.adb, libgnat/a-ciormu.ads,
2066 libgnat/a-ciorse.adb, libgnat/a-ciorse.ads,
2067 libgnat/a-cohama.adb, libgnat/a-cohama.ads,
2068 libgnat/a-cohase.adb, libgnat/a-cohase.ads,
2069 libgnat/a-coinve.adb, libgnat/a-coinve.ads,
2070 libgnat/a-comutr.adb, libgnat/a-comutr.ads,
2071 libgnat/a-convec.adb, libgnat/a-convec.ads,
2072 libgnat/a-coorma.adb, libgnat/a-coorma.ads,
2073 libgnat/a-coormu.adb, libgnat/a-coormu.ads,
2074 libgnat/a-coorse.adb, libgnat/a-coorse.ads: Add SPARK_Mode =>
2077 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
2079 * sem_ch3.adb (Delayed_Aspect_Present): Fix oversight in loop.
2080 * freeze.adb (Freeze_Object_Declaration): Use Declaration_Node
2081 instead of Parent for the sake of consistency.
2083 2020-07-15 Javier Miranda <miranda@adacore.com>
2085 * sem_attr.adb (Resolve_Attribute): Resolve overloaded
2086 N_Selected_Component prefix of 'Access. Required to handle
2087 overloaded prefixed view of protected subprograms.
2089 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2091 * doc/gnat_ugn/about_this_guide.rst: Remove old section and
2092 update for Ada 202x.
2093 * doc/gnat_ugn/getting_started_with_gnat.rst: Add a system
2094 requirements section. Remove obsolete section and minimal
2095 rewording on the getting started section.
2096 * gnat_ugn.texi: Regenerate.
2098 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
2100 * exp_ch5.adb (Expand_Assign_Array): Use short-circuit operator
2102 * sem_res.adb (Resolve_Indexed_Component): Fix style in comment.
2103 * sem_util.adb (Is_Effectively_Volatile_Object): Handle slices
2104 just like indexed components; handle qualified expressions and
2105 type conversions lie in Is_OK_Volatile_Context.
2106 (Is_OK_Volatile_Context): Handle qualified expressions just like
2109 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
2111 * sem_prag.adb (Atomic_Components): Simplify with Ekind_In.
2112 (Complex_Representation): Fix type of E_Id, which just like when
2113 for pragma Atomic_Components will hold an N_Identifier node, not
2115 * sem_util.adb (Is_Effectively_Volatile): Refactor to avoid
2116 unnecessary computation.
2118 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2120 * inline.adb, inline.ads
2121 (Inline_Static_Expression_Function_Call): Renamed
2122 Inline_Static_Function_Call.
2123 * sem_ch13.adb (Analyze_Aspect_Static): Allow static intrinsic
2124 imported functions under -gnatX.
2125 * sem_util.ads, sem_util.adb (Is_Static_Expression_Function):
2126 Renamed Is_Static_Function.
2127 (Is_Static_Expression_Function_Call): Renamed
2128 Is_Static_Function_Call.
2129 * sem_ch6.adb, sem_elab.adb, sem_res.adb: Update calls to
2130 Is_Static_Function*.
2131 * sem_eval.adb (Fold_Dummy, Eval_Intrinsic_Call, Fold_Shift):
2133 (Eval_Call): Add support for intrinsic calls, code refactoring.
2134 (Eval_Entity_Name): Code refactoring.
2135 (Eval_Logical_Op): Update comment.
2136 (Eval_Shift): Call Fold_Shift. Update comments.
2137 * par-prag.adb (Par [Pragma_Extensions_Allowed]): Set
2138 Ada_Version to Ada_Version_Type'Last to handle
2139 Extensions_Allowed (On) consistently.
2140 * opt.ads (Extensions_Allowed): Update documentation.
2141 * sem_attr.adb: Update comment.
2142 * doc/gnat_rm/implementation_defined_pragmas.rst: Update
2143 documentation of Extensions_Allowed.
2144 * gnat_rm.texi: Regenerate.
2146 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2148 * sem_aggr.adb (Resolve_Iterated_Component_Association): Ensure
2149 Typ is never accessed uninitialized.
2151 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
2153 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Fix typo.
2154 * gnat_rm.texi: Regenerate.
2155 * libgnat/s-secsta.ads (Memory_Alignment): Likewise.
2157 2020-07-15 Gary Dismukes <dismukes@adacore.com>
2159 * exp_ch6.adb: Add a comma and fix a typo (machinary =>
2160 machinery) in comment.
2161 * exp_aggr.adb: Reformat, fix capitalization, and add a couple
2162 of commas in a comment. Adjust columns in several code
2164 * sem_aggr.adb: Reformat and add a comma in a comment.
2166 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
2168 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Use the Sloc of
2169 the delay statement in the expansion.
2171 2020-07-15 Ed Schonberg <schonberg@adacore.com>
2173 * sem_aggr.adb (Resolve_Iterated_Component_Association): New
2174 procedure, internal to Resolve_Container_Aggregate, to complete
2175 semantic analysis of Iterated_Component_Associations.
2176 * exp_aggr.adb (Expand_Iterated_Component): New procedure,
2177 internal to Expand_Container_Aggregate, to expand the construct
2178 into an implicit loop that performs individual insertions into
2179 the target aggregate.
2181 2020-07-15 Justin Squirek <squirek@adacore.com>
2183 * exp_ch6.adb (Make_Build_In_Place_Call_Allocator): Normalize
2184 the associated node for internally generated objects to be like
2185 their SOAAT counter-parts.
2187 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2189 * libgnat/g-socket.adb (Wait_On_Socket): Fix potentially
2190 uninitialized variable.
2192 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
2194 * sem_ch8.adb (Find_Direct_Name): Fix code to match the comment.
2196 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
2198 * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Address>:
2199 Issue an unconditional warning for an overlay that changes the
2200 scalar storage order.
2202 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
2204 * sem_ch8.adb (Is_Actual_Parameter): Fix processing when parent
2205 is a procedure call statement; extend comment.
2207 2020-07-10 Bob Duff <duff@adacore.com>
2209 * sem_res.adb (Resolve_Expression_With_Actions): Check the rules
2210 of AI12-0368, and mark the declare expression as static or known
2211 at compile time as appropriate.
2212 * sem_ch4.adb: Minor reformatting.
2213 * libgnat/a-stoufo.ads, libgnat/a-stoufo.adb: Allow up to 9
2214 replacement parameters. I'm planning to use this in the test
2215 case for this ticket.
2217 2020-07-10 Ed Schonberg <schonberg@adacore.com>
2219 * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Create a
2220 proper signature when the access type denotes a parameterless
2222 * exp_ch6.adb (Expand_Call): Handle properly a parameterless
2223 indirect call when the corresponding access type has contracts.
2225 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
2228 (Convert_To_Positional): Add Dims local variable
2229 and pass it in calls to Is_Flat and Flatten.
2230 (Check_Static_Components): Pass Dims in call to
2232 (Nonflattenable_Next_Aggr): New predicate.
2233 (Flatten): Add Dims parameter and Expr local variable. Call
2234 Nonflattenable_Next_Aggr in a couple of places. In the case
2235 when an Others choice is present, check that the element is
2236 either static or a nested aggregate that can be flattened,
2237 before disregarding the replication limit for elaboration
2238 purposes. Check that a nested array is flattenable in the case
2239 of a multidimensional array in any position. Remove redundant
2240 check in the Others case and pass Dims in call to
2241 Is_Static_Element. Use Expr variable.
2242 (Is_Flat): Change type of Dims parameter from Int to Nat.
2243 (Is_Static_Element): Add Dims parameter. Replace tests on
2244 literals with call to Compile_Time_Known_Value. If everything
2245 else failed and the dimension is 1, preanalyze the expression
2246 before calling again Compile_Time_Known_Value on it. Return
2248 (Late_Expansion): Do not expand further if the assignment to the
2249 target can be done directly by the back end.
2251 2020-07-10 Arnaud Charlet <charlet@adacore.com>
2253 * osint-c.adb (Set_File_Name): Preserve casing of file.
2254 * osint.adb (File_Names_Equal): New.
2255 (Executable_Name): Use File_Equal instead of
2256 Canonical_Case_File_Name.
2258 2020-07-10 Pascal Obry <obry@adacore.com>
2260 * libgnat/g-socket.adb (Wait_On_Socket): Fix memory leaks and
2261 file descriptor leaks. A memory leak was created each time the
2262 routine was called without a selector (Selector = Null). Also,
2263 in case of exception in the routine a memory leak and descriptor
2264 leak was created as the created file selector was not closed.
2266 2020-07-10 Pascal Obry <obry@adacore.com>
2268 * libgnat/g-socket.adb: Minor style fixes.
2270 2020-07-10 Javier Miranda <miranda@adacore.com>
2273 (Immediate_Context_Implies_Is_Potentially_Unevaluated): New
2275 (Is_Potentially_Unevaluated): Do not stop climbing the tree on
2276 the first candidate subexpression; required to handle nested
2279 2020-07-10 Gary Dismukes <dismukes@adacore.com>
2281 * exp_aggr.adb, exp_spark.adb, sem_ch13.ads, sem_ch13.adb,
2282 snames.ads-tmpl: Minor reformatting and typo fixes.
2284 2020-07-10 Yannick Moy <moy@adacore.com>
2286 * sem_util.adb (Has_Enabled_Property): Add handling of
2287 non-variable objects.
2289 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
2291 * sem_ch3.adb (Check_Completion): Refactor chained
2292 if-then-elsif-... statement to be more like a case
2293 statement (note: we can't simply use case statement because of
2294 Is_Intrinsic_Subprogram in the first condition).
2296 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
2298 * einfo.ads (E_Protected_Object): Enumeration literal removed.
2299 * lib-xref.ads (Xref_Entity_Letters): Remove reference to
2301 * sem_ch3.adb (Check_Completion): Likewise.
2302 * sem_util.adb (Has_Enabled_Property): Likewise.
2304 2020-07-10 Arnaud Charlet <charlet@adacore.com>
2306 * exp_aggr.adb (Max_Aggregate_Size): Use small limit for
2307 aggregate inside subprograms.
2308 * sprint.adb (Sprint_Node_Actual [N_Object_Declaration]): Do not
2309 print the initialization expression if the No_Initialization
2311 * sem_util.ads, sem_util.adb (Predicate_Enabled): New.
2312 * exp_ch4.adb (Expand_N_Type_Conversion): Code cleanup and apply
2313 predicate check consistently.
2314 * exp_ch6.adb (Expand_Actuals.By_Ref_Predicate_Check): Ditto.
2315 * sem_ch3.adb (Analyze_Object_Declaration): Ditto.
2316 * exp_ch3.adb (Build_Assignment): Revert handling of predicate
2317 check for allocators with qualified expressions, now handled in
2318 Freeze_Expression directly.
2319 * sem_aggr.adb: Fix typos.
2320 * checks.adb: Code refactoring: use Predicate_Enabled.
2321 (Apply_Predicate_Check): Code cleanup.
2322 * freeze.adb (Freeze_Expression): Freeze the subtype mark before
2323 a qualified expression on an allocator.
2324 * exp_util.ads, exp_util.adb (Within_Internal_Subprogram):
2325 Renamed Predicate_Check_In_Scope to clarify usage, refine
2326 handling of predicates within init procs which should be enabled
2327 when the node comes from source.
2328 * sem_ch13.adb (Freeze_Entity_Checks): Update call to
2329 Predicate_Check_In_Scope.
2331 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
2333 * exp_ch4.adb (Expand_Array_Comparison): Reformat.
2334 (Expand_Concatenate): Use standard size values directly and use
2335 Standard_Long_Long_Unsigned instead of RE_Long_Long_Unsigned.
2336 (Expand_Modular_Op): Use Standard_Long_Long_Integer in case the
2337 modulus is larger than Integer.
2338 (Expand_N_Op_Expon): Use standard size value directly.
2339 (Narrow_Large_Operation): Use Uint instead of Nat for sizes and
2340 use a local variable for the size of the type.
2341 (Get_Size_For_Range): Return Uint instead of Nat.
2342 (Is_OK_For_Range): Take Uint instead of Nat.
2344 2020-07-10 Javier Miranda <miranda@adacore.com>
2346 * exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator):
2347 Build the internal anonymous access type using as a reference
2348 the designated type imposed by the context (instead of using the
2349 return type of the called function).
2351 2020-07-10 Yannick Moy <moy@adacore.com>
2353 * sem_res.adb (Resolve_Actuals): Protect call to
2354 Is_Valued_Procedure.
2356 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
2358 * sem_ch3.adb (Process_Discriminants): Revert recent change to
2359 location of Set_Ekind; detect effectively volatile discriminants
2362 2020-07-10 Joffrey Huguet <huguet@adacore.com>
2364 * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Add global
2365 contract (Global => null) to all functions.
2367 2020-07-10 Ed Schonberg <schonberg@adacore.com>
2369 * aspects.ads: Add Aspect_Aggregate.
2370 * exp_aggr.adb (Expand_Container_Aggregate): Expand positional
2371 container aggregates into separate initialization and insertion
2373 * sem_aggr.ads (Resolve_Container_Aggregate): New subprogram.
2374 * sem_aggr.adb (Resolve_Container_Aggregate): Parse aspect
2375 aggregate, establish element types and key types if present, and
2376 resolve aggregate components.
2377 * sem_ch13.ads (Parse_Aspect_Aggregate): Public subprogram used
2378 in validation, resolution and expansion of container aggregates
2380 (Parse_Aspect_Aggregate): Retrieve names of primitives specified
2381 in aspect specification.
2382 (Validate_Aspect_Aggregate): Check legality of specified
2383 operations given in aspect specification, before nane
2385 (Resolve_Aspect_Aggregate): At freeze point resolve operations
2386 and verify that given operations have the required profile.
2387 * sem_res.adb (Resolve): Call Resolve_Aspect_Aggregate if aspect
2388 is present for type.
2389 * snames.ads-tmpl: Add names used in aspect Aggregate: Empty,
2390 Add_Named, Add_Unnamed, New_Indexed, Assign_Indexed.
2392 2020-07-10 Arnaud Charlet <charlet@adacore.com>
2394 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-shabig.o.
2395 * libgnat/s-shabig.ads: New file to share definitions.
2396 * libgnat/s-genbig.ads, libgnat/s-genbig.adb: Reorganized to
2397 make it more generic and flexible in terms of memory allocation
2398 and data structure returned.
2399 (To_String): Moved to System.Generic_Bignums to allow sharing
2401 (Big_And, Big_Or, Big_Shift_Left, Big_Shift_Right): New.
2402 * libgnat/s-bignum.adb, libgnat/s-bignum.ads: Adapt to new
2403 System.Generic_Bignums spec.
2404 * libgnat/a-nbnbin.adb: Likewise.
2405 (To_String): Moved to System.Generic_Bignums to allow sharing
2407 * libgnat/a-nbnbre.adb (Normalize): Fix handling of Num = 0
2408 leading to an exception.
2410 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
2412 * freeze.adb (Freeze_Expr_Types): Replace call to Find_Aspect
2413 with call to Find_Value_Of_Aspect and adjust accordingly.
2415 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
2417 * einfo.adb (Write_Field24_Name): Handle E_Loop_Parameter.
2418 * freeze.adb (Freeze_Expr_Types): Freeze the iterator type used as
2419 Default_Iterator of the name of an N_Iterator_Specification node.
2421 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
2423 * checks.adb (Determine_Range): Deal with Min and Max attributes.
2424 * exp_ch6.adb (Expand_Call_Helper): When generating code to pass
2425 the accessibility level to the caller in the case of an actual
2426 which is an if-expression, also remove the nodes created after
2427 the declaration of the dummy temporary.
2428 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use Natural as
2429 the type of the minimum accessibility level object.
2431 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
2433 * sem_ch3.adb (Process_Discriminants): Set Ekind of the
2434 processed discriminant entity before passing to
2435 Is_Effectively_Volatile, which was crashing on a failed
2437 * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Prevent
2438 call to No_Caching_Enabled with entities other than variables,
2439 which was crashing on a failed assertion.
2440 (Analyze_Pragma): Style cleanups.
2441 * sem_util.adb (Is_Effectively_Volatile): Enforce comment with
2442 an assertion; prevent call to No_Caching_Enabled with entities
2443 other than variables.
2444 (Is_Effectively_Volatile_Object): Only call
2445 Is_Effectively_Volatile on objects, not on types.
2446 (No_Caching_Enabled): Enforce comment with an assertion.
2448 2020-07-10 Yannick Moy <moy@adacore.com>
2450 * debug.adb: Update comments to free usage of -gnatdF.
2452 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
2454 * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Refactored from
2455 Expand_SPARK_N_Attribute_Reference; rewrite into N_Aggregate or
2456 N_Delta_Aggregate depending on what is being rewritten.
2457 (Expand_SPARK_N_Delta_Aggregate): New routine to expand
2459 (Expand_SPARK_N_Attribute_Reference): Call the refactored
2462 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
2464 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Fix
2465 expansion of attribute Update.
2467 2020-07-10 Arnaud Charlet <charlet@adacore.com>
2469 * sem.adb (Walk_Library_Items): Fix handling of Ghost units.
2471 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
2473 * tracebak.c [generic implementation]: Add pragma GCC diagnostic
2474 to disable warning about __builtin_frame_address.
2476 2020-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
2478 * socket.c [_WIN32] (__gnat_minus_500ms): Parentheses around &&
2479 operations. Remove notes about TN in comment.
2481 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
2483 * adaint.h (__gnat_expect_portable_execvp): Fix prototype.
2484 (__gnat_expect_poll): Likewise.
2485 * expect.c [_WIN32]: Include adaint.h file.
2486 (__gnat_waitpid): Remove useless variable.
2487 (__gnat_expect_portable_execvp): Add ATTRIBUTE_UNUSED on parameter.
2488 * raise-gcc.c [SEH] (__gnat_personality_v0): Add ATTRIBUTE_UNUSED.
2489 * socket.c [_WIN32] (__gnat_getservbyport): Add ATTRIBUTE_UNUSED on
2490 a couple of parameters.
2491 (__gnat_gethostbyname): Likewise.
2492 (__gnat_gethostbyaddr): Likewise.
2493 (__gnat_getservbyname): Likewise.
2494 (__gnat_last_socket_in_set): Use variables local to loops.
2495 (__gnat_socket_ioctl): Cast 3rd parameter to proper type if _WIN32.
2496 (__gnat_inet_pton): Cast 2nd parameter to proper type if _WIN32.
2497 * sysdep.c (__gnat_localtime_tzoff): Remove superfluous test.
2498 * terminals.c [_WIN32]: Include io.h file.
2499 (is_gui_app): Remove useless variables and fix unsigned comparison.
2500 (nt_spawnve): Add ATTRIBUTE_UNUSED on first parameter. Initialize a
2501 local variable and remove others that are useless. Add missing cast
2502 (__gnat_setup_child_communication): Remove useless variable and call
2503 Use proper formatting string in call to sprintf.
2504 (__gnat_setup_parent_communication): Cast to proper type.
2505 (find_child_console): Fix prototype and remove useless variable.
2506 (find_process_handle): Likewise.
2507 (_gnat_interrupt_process): Move to after __gnat_interrupt_pid.
2508 (__gnat_reset_tty): Add ATTRIBUTE_UNUSED on parameter, remove return
2509 (__gnat_setup_winsize): Add ATTRIBUTE_UNUSED on all parameters.
2511 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
2513 * exp_ch4.adb (Expand_N_Allocator): In the subtype mark case, do
2514 not apply constraint checks if the No_Initialization flag is set.
2516 2020-07-08 Javier Miranda <miranda@adacore.com>
2519 (Build_Class_Wide_Master): Insert the declaration of _Master
2520 before its use; required to avoid assertion failure in the
2523 2020-07-08 Arnaud Charlet <charlet@adacore.com>
2525 * libgnat/i-cexten.ads (long_long, unsigned_long_long): Now
2526 subtypes of Interfaces.C types.
2527 * libgnat/a-calcon.ads, libgnat/a-calcon.adb
2528 (To_Unix_Nano_Time): Use Interfaces.C.long_long instead of
2529 Interfaces.C.Extensions.long_long.
2531 2020-07-08 Vasiliy Fofanov <fofanov@adacore.com>
2533 * debug.adb: Document new switch.
2534 * exp_ch6.adb (Warn_BIP): New function that warns if the switch
2535 is on. Call it from Make_Build_In_Place_* functions. Warn_BIP
2536 is not needed in Make_Build_In_Place_Iface_*, because those call
2537 Make_Build_In_Place_Call_In_Object_Declaration or similar.
2539 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
2541 * erroutc.adb (Matches): Fix comments.
2543 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
2545 * freeze.adb (Has_Decl_In_List): New predicate to check that an
2546 entity is declared in a list of nodes.
2547 (Freeze_Expression): Use it to deal with Expression_With_Actions,
2548 short-circuit expression, if- and case-expression and ensure that
2549 the freeze node is put onto their Actions list if the entity is
2552 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
2554 * freeze.adb (In_Expanded_Body): Return true for the body of a
2555 generated predicate function.
2557 2020-07-08 Gary Dismukes <dismukes@adacore.com>
2559 * sem_attr.adb: Remove hyphens in comments, plus minor code
2561 * sem_ch13.adb: Fix typo (that => than).
2562 * sem_util.adb: Add hyphen in comment ("class-wide").
2564 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
2566 * freeze.adb (Freeze_Array_Type): Add comment on implementation
2567 choice for byte-packed array types.
2569 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
2571 * sem_attr.adb (Analyze_Attribute): Correct prefix of 'Result
2572 this prefix is a generic function but the enclosing aspect or
2573 pragma is attached to its instance.
2574 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Analyze
2575 generic subprogram formal parameters (including the implicit
2576 result of a generic function) and only then analyse its aspects,
2577 because with Relaxed_Initialization the aspect expression might
2578 refer to those formal parameters.
2579 * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Accept
2580 aspect on generic subprograms; install formal parameters of a
2581 generic subprogram but not formal parameters of the generic unit
2582 itself (the previous code was inspired by aspects Post and
2583 Depends, where both kinds of formals are allowed).
2584 * sem_util.ads (Enter_Name): Fix name of a subprogram referenced
2587 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
2589 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Call
2590 Analyze_Aspect_Specifications after setting Ekind of the
2592 * sem_ch13.adb (Analyze_Aspect_Yield): Remove minimal decoration
2593 of generic subprograms.
2595 2020-07-08 Arnaud Charlet <charlet@adacore.com>
2597 * sem_prag.adb (Process_Inline): Check for duplicate
2598 pragma+aspect Inline. Minor code cleanup.
2599 (Check_Duplicate_Pragma): Add warning for duplicate
2600 pragma [No_]Inline under -gnatwr.
2601 * sinfo.ads, sinfo.adb (Next_Rep_Item): Allow N_Null_Statement
2602 which can appear when a pragma is rewritten.
2603 * sem_util.ads, sem_util.adb, bindo-writers.adb: Fix bad
2604 copy/paste now flagged.
2605 * libgnat/s-mmap.ads: Remove redundant pragma Inline.
2607 2020-07-08 Ed Schonberg <schonberg@adacore.com>
2609 * sem_util.adb (Build_Class_Wide_Clone_Body): Update entities to
2610 refer to the right spec.
2612 2020-07-08 Bob Duff <duff@adacore.com>
2614 * sem_ch13.adb (Predicate_Failure): Check that the type has
2615 predicates. Remove the setting of Has_Delayed_Aspects and
2616 Freeze_Node, because (if the code is legal) it should have
2617 already been done by the predicate aspect.
2619 2020-07-08 Gary Dismukes <dismukes@adacore.com>
2621 * par-ch4.adb (P_Iterated_Component_Association): Typo
2624 2020-07-08 Ed Schonberg <schonberg@adacore.com>
2626 * par.adb (P_Iterator_Specification): Make public for use in
2627 other parser subprograms.
2628 * par-ch4.adb (P_Iterated_Component_Association): In Ada_2020,
2629 recognize use of Iterator_Specification in an element iterator.
2630 To simplify disambiguation between the two iterator forms, mark
2631 the component association as carrying an Iterator_Specification
2632 only when the element iterator (using "OF") is used.
2633 * par-ch5.adb (P_Loop_Parameter_Specification): In Ada_2020,
2634 parse iterator filter when present.
2635 (P_Iterator_Specification): Ditto. Remove declaration of
2636 P_Iterator_Specification, now in parent unit.
2637 * exp_ch5.adb (Expand_N_Loop_Statement): Apply Iterator filter
2639 (Expand_Iterator_Loop_Over_Array): Ditto.
2640 (Expand_Iterator_Loop_Over_Container): Ditto.
2641 * sem_aggr.adb (Resolve_Array_Aggregate): Emit error nessage if
2642 an iterated component association includes a iterator
2643 specificcation with an element iterator, i.e. one that uses the
2645 * sem_ch5.adb (Analyze_Iterator_Specification): Analyze Iterator
2646 filter when present.
2647 (Analyze_Loop_Parameter_Specification): Ditto.
2648 * sinfo.adb: Suprogram bodies for new syntactic element
2650 * sinfo.ads: Add Iterator_Filter to relevant nodes. Structure
2651 of Component_Association and Iteroted_Component_Association
2652 nodes is modified to take into account the possible presence of
2653 an iterator specification in the latter.
2655 2020-07-08 Yannick Moy <moy@adacore.com>
2657 * sem_util.ads, sem_util.adb (Is_Attribute_Loop_Entry): New
2658 function for GNATProve.
2660 2020-07-08 Ghjuvan Lacambre <lacambre@adacore.com>
2662 * sem_ch13.adb (Analyze_Record_Representation_Clause,
2663 Check_Record_Representation_Clause): Add expected and actual
2664 size to error message.
2666 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
2668 * sem_util.ads, sem_util.adb (Safe_To_Capture_Value): Return
2669 True for in-parameters.
2671 2020-07-08 Justin Squirek <squirek@adacore.com>
2673 * exp_attr.adb (Expand_Attribute): Set
2674 Stores_Attribute_Old_Prefix to generated renamings of 'Old
2675 constants for later use in generating finalization routines.
2676 * exp_ch7.adb (Build_Finalizer): Minor reformatting. Use "or
2679 2020-07-08 Gary Dismukes <dismukes@adacore.com>
2681 * exp_ch6.adb (Expand_Simple_Function_Return): Remove ugly code
2682 that was copying the return expression, resetting Analyzed
2683 flags, etc. for the return expression of static expression
2685 * inline.adb (Inline_Static_Expression_Function_Call): Set the
2686 Parent of the copied expression to that of the call. This avoids
2687 a blowup in Insert_Actions when GNATprove_Mode is set and there
2688 are nested SEF calls. Add ??? comment.
2689 * sem_ch6.adb (Analyze_Expression_Function): In the case of a
2690 static expression function, create a new copy of the expression
2691 and replace the function's expression with the copy; the
2692 original expression is used in the expression function's body
2693 and will be analyzed and rewritten, and we need to save a clean
2694 copy for later use in processing static calls to the function.
2695 This allows removing the kludgy code that was in
2696 Expand_Simple_Function_Return.
2697 * sem_eval.adb (Eval_Qualified_Expression): Return immediately
2698 if any errors have been posted on the qualified expression, to
2699 avoid blowups when GNATprove_Mode is enabled (or with -gnatd.F),
2700 since illegal static expressions are handled differently in that
2701 case and attempting to fold such expressions would fail.
2703 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
2705 * repinfo.adb (Compute_Max_Length): Skip hidden discriminants.
2706 (List_Record_Layout): Likewise.
2707 (List_Structural_Record_Layout): Use First_Discriminant instead
2708 of First_Stored_Discriminant and Next_Discriminant instead of
2709 Next_Stored_Discriminant to walk the list of discriminants.
2711 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
2713 * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Analyze
2714 optional boolean expressions.
2715 * sem_util.ads, sem_util.adb (Has_Relaxed_Initialization): Adapt
2716 query; update comment.
2718 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
2720 * einfo.ads (Current_Value): Fix typo in comment.
2721 * exp_ch2.adb (Expand_Current_Value): Remove unnecessary "Start
2722 of processing ..." comment.
2723 * exp_util.adb (Set_Entity_Current_Value): Fix unbalanced paren
2725 (Get_Current_Value_Condition): Fix layout in comment.
2726 * sem_ch5.adb (Analyze_Cond_Then): Replace commented condition
2729 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
2731 * exp_ch5.adb (Expand_N_If_Statement): Detect True/False
2732 prefixed with Standard.
2734 2020-07-08 Bob Duff <duff@adacore.com>
2736 * sem_ch13.adb (Analyze_Aspect_Specifications): Add freeze node
2737 for the Underlying_Full_View if it exists. The freeze node is
2738 what triggers the generation of the predicate function.
2739 * freeze.adb: Minor reformatting.
2741 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
2743 * exp_ch4.adb (Narrow_Large_Operation): Use the base type instead
2744 of the first subtype of standard integer types as narrower type.
2746 2020-07-07 Eric Botcazou <ebotcazou@adacore.com>
2748 * freeze.adb (Freeze_Array_Type): Use Ctyp more consistently.
2749 Move code setting the alignment in the non-packed case to...
2750 * layout.adb (Layout_Type): ...here.
2752 2020-07-07 Bob Duff <duff@adacore.com>
2754 * treepr.adb (Print_Node): Add code to test Is_Extension.
2756 2020-07-07 Arnaud Charlet <charlet@adacore.com>
2758 * sem_ch4.adb (Try_Container_Indexing): Add ??? comment. Protect
2759 against malformed tree in case of errors.
2761 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
2763 * einfo.adb, sem_ch10.adb, sem_ch12.adb, sem_ch8.adb: Use
2764 Is_Generic_Subprogram.
2766 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
2768 * sem_ch8.adb (Analyze_Use_Package): Replace low-level,
2769 error-prone Ekind_In tests with high-level Is_Generic_Subprogram
2772 2020-07-07 Arnaud Charlet <charlet@adacore.com>
2774 * sem_ch6.adb (Check_Formal_Subprogram_Conformance): New
2775 subprogram to handle checking without systematically emitting an
2777 (Check_Conformance): Update call to
2778 Check_Formal_Subprogram_Conformance and fix handling of Conforms
2779 and Errmsg parameters.
2781 2020-07-07 Arnaud Charlet <charlet@adacore.com>
2783 * exp_ch4.adb (Tagged_Membership): Generate a call to
2784 CW_Membership instead of using Build_CW_Membership.
2785 (Expand_N_In): Remove wrong handling of null access types and
2786 corresponding comment.
2787 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Generate a
2788 call to CW_Membership instead of using Build_CW_Membership.
2789 * rtsfind.ads: Add CW_Membership.
2790 * exp_atag.ads, exp_atag.adb (Build_CW_Membership): Removed.
2791 * einfo.ads: Fix typo.
2792 * libgnat/a-tags.ads, libgnat/a-tags.adb (CW_Membership): Moved
2795 2020-07-07 Ed Schonberg <schonberg@adacore.com>
2797 * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Create
2798 proper subprogram specification for body, using names in the
2799 subprogram declaration but distinct entities.
2800 * exp_ch6.adb (Expand_Call): If this is an indirect call
2801 involving a subprogram wrapper, insert pointer parameter in list
2802 of actuals with a parameter association, not as a positional
2805 2020-07-07 Justin Squirek <squirek@adacore.com>
2807 * exp_ch6.adb (Expand_Branch): Verify the original node is a
2808 conditional expression before recursing further.
2809 (Insert_Level_Assign): Transform assertion into an explicit
2812 2020-07-07 Steve Baird <baird@adacore.com>
2814 * sem_attr.adb (Eval_Attribute): Generalize static evaluation of
2815 Size attribute references to also handle
2816 Max_Size_In_Storage_Elements references.
2818 2020-07-07 Javier Miranda <miranda@adacore.com>
2820 * sem_util.adb (Is_Potentially_Unevaluated): Code cleanup.
2822 2020-07-07 Eric Botcazou <ebotcazou@adacore.com>
2824 * checks.ads (Expander Routines): Update the description of the
2825 Do_Range_Check mechanism.
2826 * checks.adb (Selected_Range_Checks): Fix typo.
2827 * exp_ch9.adb: Add with and use clause for Checks.
2828 (Actual_Index_Expression): Generate a range check if requested.
2829 (Entry_Index_Expression): Likewise.
2830 * sem_attr.adb (Resolve_Attribute) <Attribute_Count>: Call
2831 Apply_Scalar_Range_Check instead of Apply_Range_Check.
2832 * sem_ch9.adb (Analyze_Accept_Statement): Likewise.
2833 * sem_res.adb (Resolve_Entry): Likewise, after having set the
2834 actual index type on the prefix of the indexed component.
2835 (Resolve_Indexed_Component): Remove useless conditional construct.
2837 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
2839 * contracts.adb (Analyze_Entry_Or_Subprogram_Contract,
2840 Process_Preconditions_For): Freeze expression that has been
2841 relocated to pragma Precondition, not the expression which is
2842 still in the aspect.
2844 2020-07-07 Arnaud Charlet <charlet@adacore.com>
2846 * sem_ch6.adb (Check_Conformance): Remove unnecessary (and
2848 * sem_ch8.adb (Check_Null_Exclusion): Post error at proper
2849 location. Introduce new helper Null_Exclusion_Mismatch and fix
2850 implementation wrt formal subprograms used in generic bodies.
2851 (Analyze_Subprogram_Renaming): Fix missing setting of
2853 (Analyze_Object_Renaming): Replace "in Anonymous_Access_Kind" by
2854 Is_Anonymous_Access_Type.
2855 * sem_util.adb (Has_Null_Exclusion): Fix handling of
2856 N_Parameter_Specification.
2857 * sem_ch12.adb (Instantiate_Object): Replace "in
2858 Anonymous_Access_Kind" by Is_Anonymous_Access_Type.
2860 2020-07-07 Ed Schonberg <schonberg@adacore.com>
2862 * freeze.adb (Freeze_Expr_Types): Freeze the designated type of
2863 the explicit dereference.
2865 2020-07-07 Javier Miranda <miranda@adacore.com>
2867 * sem_util.adb (Is_Potentially_Unevaluated): Protect reading
2870 2020-07-07 Bob Duff <duff@adacore.com>
2872 * libgnat/g-catiio.adb (Value, Parse_ISO_8601): Unsuppress
2873 checks, and don't rely on 'Valid.
2875 2020-07-07 Arnaud Charlet <charlet@adacore.com>
2877 * Makefile.rtl: Remove dead code.
2878 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
2879 Document gnatbind -xdr switch.
2880 * gnat_ugn.texi: Regenerate.
2882 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
2884 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
2885 (Validity Checking): Add "p" to the list of switches enabled by
2887 * gnat_ugn.texi: Regenerate.
2889 2020-07-07 Ghjuvan Lacambre <lacambre@adacore.com>
2891 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Add call
2892 to Check_Restriction_No_Specification_Of_Aspect.
2893 * sem_prag.adb (Analyze_Pragma): Likewise.
2894 * restrict.ads (Check_Restriction_No_Specification_Of_Aspect):
2895 Mention possible new node kinds in documentation.
2896 * restrict.adb (Check_Restriction_No_Specification_Of_Aspect):
2897 Retrieve aspect id from different fields if given node is an
2898 N_Pragma or an N_Attribute_Definition_Clause.
2900 2020-07-07 Gary Dismukes <dismukes@adacore.com>
2902 * contracts.adb (Add_Invariant_And_Predicate_Checks): Relax the
2903 condition for doing invariant checks so that in-mode parameters
2904 of procedures are also checked (required by AI05-0289, and
2905 restricted to procedures by AI12-0044). This is done in a
2906 procedure's nested postconditions procedure.
2907 * exp_ch6.adb (Expand_Actuals): Also perform postcall invariant
2908 checks for in parameters of procedures (but not functions).
2909 Moved invariant-checking code to end of Expand_Actuals
2910 (including the nested function Is_Public_Subp).
2912 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
2914 * sem_aggr.adb (Resolve_Delta_Array_Aggregate): Make Index_Type
2917 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
2919 * exp_aggr.adb (Expand_N_Delta_Aggregate): Use type of the delta
2920 base expression for the anonymous object of the delta aggregate.
2922 2020-07-07 Javier Miranda <miranda@adacore.com>
2924 * sem_util.ads (Interval_Lists): Reordering routine.
2925 * sem_util.adb (Interval_Lists): Reordering routines to keep
2926 them alphabetically ordered.
2928 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
2930 * sem_attr.adb (Resolve_Attribute): Do not call
2931 Check_Non_Static_Context.
2933 2020-07-07 Arnaud Charlet <charlet@adacore.com>
2935 * sem_elab.adb (Is_Guaranteed_ABE): Take into account null
2938 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
2940 * sem_ch5.adb (Analyze_Assignment): Reuse Is_Assignable.
2942 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
2944 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Add scalar
2945 range checks for 'Update on arrays just like for 'Update on
2947 * sem_attr.adb (Analyze_Array_Component_Update): Do not set
2948 range checks for single-dimensional arrays.
2949 (Resolve_Attribute): Do not set range checks for both single-
2950 and multi- dimensional arrays.
2952 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
2954 * sem.ads (Sem): Fix description.
2956 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
2958 * sem_ch13.adb (Analyze_Relaxed_Parameter): Fix for protected
2961 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
2963 * checks.adb (Apply_Scalar_Range_Check): Use Is_RTE.
2965 2020-07-06 Bob Duff <duff@adacore.com>
2967 * libgnat/g-catiio.ads: Document newly supported format. Add
2968 ISO_Time constant, for convenience.
2969 * libgnat/g-catiio.adb (Image_Helper): New helper function to do
2970 all the formatting work, called by the two exported Image
2971 functions. Add support for "%:::z" here. Add a Time_Zone
2972 parameter used by the "%:::z" processing. This parameter is not
2973 used for the actual time zone computations; local time is always
2974 used for that, for ease of implementation reasons. It would
2975 make sense to use Append throughout this function, but that's a
2976 cleanup for another day.
2977 (Image): Modify these to pass the local time zone, or the
2978 specified time zone, as appropriate.
2980 2020-07-06 Bob Duff <duff@adacore.com>
2982 * libgnat/g-catiio.ads: Change the regular expression that
2983 documents the allowed format to match what ISO-8601 allows.
2984 * libgnat/g-catiio.adb (Scan_Subsecond): Rewrite so it doesn't
2985 assume the subsecond comes last.
2986 (Parse_ISO_8601): Parse an optional subsecond, followed by an
2987 optional time zone, rather than making these alternatives to
2990 2020-07-06 Bob Duff <duff@adacore.com>
2992 * libgnat/g-catiio.adb (Parse_ISO_8601): Minor cleanups:
2993 Give some objects clearer names.
2994 Make some objects more local to where they are used.
2995 Remove some validity checks that can't fail, because some of
2996 the variables tested have been moved so they're not visible here.
2997 Anyway, Wrong_Syntax is about errors in the input, not data
2999 Use Time_Zone_Seen instead of Local_Sign = ' ' to determine
3000 that a time zone indication was seen.
3001 We don't need to distinguish two different kinds of
3002 syntax error (End_Of_Source_Reached and Wrong_Syntax),
3003 so use Wrong_Syntax always.
3004 Remove comment, "Certain scanning scenarios may handle
3005 this exception on their own."; there are no such scenarios.
3007 2020-07-06 Bob Duff <duff@adacore.com>
3009 * libgnat/g-catiio.ads, libgnat/g-catiio.adb (Image): New
3010 function. It might seem like the local-time Image should be
3011 implemented in terms of the Time_Zone Image, but that would be
3012 far harder to implement, so we do it the other way around.
3014 2020-07-06 Thomas Quinot <quinot@adacore.com>
3016 * libgnat/g-sechas.ads, libgnat/g-sechas.adb: Refactor to use
3017 Stream_Element_Array as the internal buffer type.
3018 * libgnat/g-shshco.adb: Adjust to use Stream_Element_Offset
3019 instead of Integer as the index in the internal state buffer.
3021 2020-07-06 Gary Dismukes <dismukes@adacore.com>
3023 * doc/gnat_rm/implementation_defined_pragmas.rst, errout.ads,
3024 erroutc.adb, exp_ch4.adb, exp_ch6.adb, freeze.adb: Comment
3025 rewording/reformatting/typo fixes. Replace "ie." with "that is"
3026 in comment; "can not" -> "cannot", and remove an extraneous
3027 underscore in another comment.
3028 * gnat_rm.texi, gnat_ugn.texi: Regenerate.
3030 2020-07-06 Javier Miranda <miranda@adacore.com>
3032 * sem_util.ads (Interval_Lists.Aggregate_Intervals): New
3034 * sem_util.adb (Has_Null_Others_Choice,
3035 Non_Static_Or_Null_Range, Interval_Lists.Aggregate_Intervals):
3037 (Is_Potentially_Unevaluated): Adding support to detect
3038 potentially unevaluated components of array aggregates.
3040 2020-07-06 Bob Duff <duff@adacore.com>
3042 * libgnat/g-catiio.adb (Parse_ISO_8601): New name for
3043 Parse_ISO_8861_UTC. 8601 is the correct ISO standard number.
3044 Also, "UTC" was confusing. All Time values are represented in
3045 UTC, but the ISO 8601 date strings include a time zone.
3046 If a time zone was specified, call
3047 Ada.Calendar.Formatting.Time_Of instead of
3048 GNAT.Calendar.Time_Of, because the latter adjusts to the current
3049 time zone, whereas we want to use (just) the time zone specified
3050 in the ISO string. This allows us to pass Time_Zone instead to
3051 Time_Of, instead of adjusting by Local_Disp by hand.
3052 If no time zone was specified, call GNAT.Calendar.Time_Of as
3054 Use expanded names to clarify which Time_Of is being called.
3055 Remove redundant comment, and move nonredundant part of the
3056 commment to the spec.
3057 (Value): Minor: use "not in" instead of "or else".
3058 * libgnat/g-catiio.ads: Comment moved here. Correct the ISO
3060 * libgnat/g-calend.adb: Add ??? comments.
3061 * libgnat/a-calend.ads, libgnat/a-calend.adb: Update obsolete
3062 comments regarding the representation of type Time. Move the
3063 information about the epoch (year 2150) to the spec, and avoid
3064 uttering "2150" more than once.
3065 * libgnat/a-catizo.ads (Time_Offset): Add comment.
3067 2020-07-06 Ed Schonberg <schonberg@adacore.com>
3069 * exp_ch5.adb (Find_Component): If the target type is a derived
3070 record type and the required component is a discriminant that is
3071 renamed in the derived type declaration, use the name of the
3072 original discriminant to locate the intended target component.
3074 2020-07-06 Justin Squirek <squirek@adacore.com>
3076 * sem_ch12.adb (Analyze_Associations): Add check for errors on
3077 the generic formal before continuing with instantiation.
3079 2020-07-06 Arnaud Charlet <charlet@adacore.com>
3081 * libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
3082 libgnat/a-nbnbin__gmp.adb: Use more Valid_Big_Integer.
3084 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
3086 * exp_util.ads (Get_Index_Subtype): Fix duplicate "Last".
3088 2020-07-06 Ed Schonberg <schonberg@adacore.com>
3090 * sinfo.ads: Indicate that Field 1 of an N_Delta_Aggregate is
3091 unused. Previously it was erroneously labelled as holding an
3092 Expressions list, in analogy with other aggregate constructs,
3093 but there are no Expressions attached to this node syntactically
3096 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
3098 * sem_attr.adb (Eval_Attribute): Check if constant has an
3099 initialization expression.
3101 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
3103 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
3104 scalar range checks.
3105 * sem_attr.adb (Resolve_Attribute): Do not set scalar range
3106 checks when resolving attribute Update.
3108 2020-07-06 Gary Dismukes <dismukes@adacore.com>
3110 * sem_attr.adb (Analyze_Attribute, Attribute_Constrained): Issue
3111 a warning if the attribute prefix is a current instance
3112 reference within an aspect of a type or subtype.
3113 (Address_Checks): Replace test of Is_Object (Ent) with
3114 Is_Object_Reference (P) so that testing for current instances
3116 (Eval_Attribute): Add test for current instance reference, to
3117 ensure that we still fold array attributes when current
3118 instances are involved, since value prefixes are allowed for
3119 array attributes, and will now be excluded by
3120 Is_Object_Reference.
3121 * sem_util.ads (Is_Current_Instance_Reference_In_Type_Aspect):
3122 New exported query function.
3123 * sem_util.adb (Is_Object_Reference): Return False for the case
3124 where N is a current instance reference within an
3125 aspect_specification of a type or subtype (basically if the
3126 reference occurs within a predicate, invariant, or DIC aspect
3128 (Is_Current_Instance_Reference_In_Type_Aspect): New function
3129 that tests whether a node is a reference to a current instance
3130 formal of a predicate, invariant, or
3131 Default_Initial_Condition (DIC) subprogram.
3133 2020-07-06 Ed Schonberg <schonberg@adacore.com>
3135 * sem_res.adb (Resolve_Declare_Expression): New subprogram, to
3136 install the scope holding local declarations of the expression,
3137 before completing its resolution.
3138 (Resolve): For an Expression_With_Actions that comes from a
3139 source occurrence of a Declare_Expression, call new subprogram.
3141 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
3143 * sem_attr.adb (Analyze_Attribute): Reuse SPARK_Implicit_Load.
3145 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
3147 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Propagate
3148 exception when switch -gnatdk is used and no previous errors are
3150 * sem_eval.adb (Compile_Time_Known_Value, Is_In_Range):
3152 * sem_warn.adb (Operand_Has_Warnings_Suppressed): Likewise.
3154 2020-07-06 Richard Kenner <kenner@adacore.com>
3156 * exp_unst.adb (Needs_Fat_Pointer): Don't check for formal.
3157 (Unnest_Subprogram): Use 'Unchecked_Access instead of 'Access
3158 when populating activation record.
3160 2020-07-06 Eric Botcazou <ebotcazou@adacore.com>
3162 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Rename parameter
3163 from Bit_Packed_Array to Force.
3164 (Expand_Actuals): Do not apply BIP processing if the subprogram
3165 is intrinsic. Adjust calls to Add_Simple_Call_By_Copy_Code and
3166 add one for In parameters whose actual is a CPP constructor call.
3168 2020-07-06 Eric Botcazou <ebotcazou@adacore.com>
3170 * sem_attr.adb (Eval_Attribute): Do not apply range checks in
3171 the case of 'Pos applied to an integer type here.
3173 2020-07-06 Ed Schonberg <schonberg@adacore.com>
3175 * sem_ch3.adb (Analyze_Object_Declaration): If the type is an
3176 Unchecked_Union, and the expression is an aggregate. complete
3177 the analysis and resolution of the aggregate, and treat like a
3178 regular object declaration, instead of as a renaming
3181 2020-07-06 Eric Botcazou <ebotcazou@adacore.com>
3183 * exp_ch9.adb (Is_Potentially_Large_Family): Add documentation.
3184 (Actual_Index_Expression): Use Entry_Index_Type.
3185 (Build_Entry_Count_Expression): Likewise.
3186 (Build_Find_Body_Index): Likewise.
3187 (Collect_Entry_Families): Likewise. Use directly the bounds of
3188 the index type to find out whether the family is large.
3189 (Entry_Index_Expression): Likewise.
3191 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
3193 * sem_res.adb (Resolve_Range): Resolve both low and high bounds
3194 with the range type.
3196 2020-07-06 Arnaud Charlet <charlet@adacore.com>
3198 * aspects.ads (Is_Representation_Aspect):
3199 Default_Component_Value is a representation aspect.
3200 * sem_ch13.adb (Check_Aspect_Too_Late, Rep_Item_Too_Late): Relax
3201 RM 13.1(10) rule wrt primitive operations for Ada 202x.
3203 2020-07-06 Eric Botcazou <ebotcazou@adacore.com>
3205 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Move to library
3206 level and use a new predicate Is_OK_Aggregate to recognize the
3207 aggregates suitable for direct assignment by the back-end.
3208 (Convert_Array_Aggr_In_Allocator): If neither in CodePeer mode nor
3209 generating C code, generate a direct assignment instead of further
3210 expanding if Aggr_Assignment_OK_For_Backend returns true.
3212 2020-07-06 Gary Dismukes <dismukes@adacore.com>
3214 * sem_aux.adb: Add a with clause for Nlists.
3215 (Nearest_Ancestor): Test for the case of concurrent
3216 types (testing for both Is_Concurrent_Type and
3217 Is_Concurrent_Record_Type), and return the first ancestor in the
3218 Interfaces list if present (otherwise will return Empty if no
3220 * sem_ch13.adb (Build_Predicate_Functions): Add a ??? comment
3221 about missing handling for adding predicates when they can be
3222 inherited from multiple progenitors.
3224 2020-07-06 Arnaud Charlet <charlet@adacore.com>
3226 * par-ch6.adb (P_Return_Object_Declaration): Set
3227 Has_Init_Expression flag.
3229 2020-07-02 Eric Botcazou <ebotcazou@adacore.com>
3231 * debug.adb (d.K): Document new usage.
3232 * fe.h (Debug_Flag_Dot_KK): Declare.
3233 * gcc-interface/decl.c (gnat_to_gnu_field): Give an error when the
3234 component overlaps with the parent subtype, except with -gnatd.K.
3236 2020-06-26 Eric Botcazou <ebotcazou@adacore.com>
3238 * exp_ch4.adb (Expand_Set_Membership): Expand the membership test
3239 using left associativity instead of right associativity.
3241 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
3243 * gcc-interface/utils2.c (build_binary_op): Remove space.
3245 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
3247 * gcc-interface/trans.c (gnat_to_gnu) <N_Allocator>: Minor tweaks.
3248 Call Has_Constrained_Partial_View on base type of designated type.
3250 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
3252 * gcc-interface/utils.c (gnat_write_global_declarations): Output
3253 integral global variables first and the imported functions later.
3255 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
3257 * gcc-interface/decl.c (elaborate_expression_1): When GNAT encodings
3258 are not used, do not create a variable for debug info purposes if
3259 the expression is itself a user-declared variable.
3261 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
3263 * gcc-interface/ada-tree.h (DECL_RENAMED_OBJECT): Delete.
3264 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Always use
3265 the stabilized reference directly for renaming and create a variable
3266 pointing to it separately if requested.
3267 * gcc-interface/misc.c (gnat_print_decl): Adjust for deletion.
3268 * gcc-interface/trans.c (Identifier_to_gnu): Likewise.
3269 (gnat_to_gnu) <N_Object_Renaming_Declaration>:
3270 Do not deal with side-effects here.
3271 <N_Exception_Renaming_Declaration>: Likewise.
3273 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
3275 * gcc-interface/decl.c (elaborate_expression): Replace calls to
3276 Is_OK_Static_Expression with Compile_Time_Known_Value.
3278 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
3280 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Set
3281 debug type to the base type and only if the subtype is artificial.
3283 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
3285 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Do
3286 not test Is_Bit_Packed_Array in the memset path.
3288 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
3290 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Do not deal
3292 (Attribute_to_gnu): Likewise.
3293 * gcc-interface/utils.c (create_field_decl): Small formatting fix.
3295 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
3297 * gcc-interface/trans.c (adjust_for_implicit_deref): Delete.
3298 (maybe_implicit_deref): Likewise.
3299 (Attribute_to_gnu): Replace calls to maybe_implicit_deref by calls
3300 to maybe_padded_object.
3301 (Call_to_gnu): Likewise.
3302 (gnat_to_gnu) <N_Indexed_Component>: Likewise.
3303 <N_Slice>: Likewise.
3304 <N_Selected_Component>: Likewise.
3305 <N_Free_Statement>: Remove call to adjust_for_implicit_deref and
3306 manually make sure that the designated type is complete.
3307 * gcc-interface/utils2.c (build_simple_component_ref): Add comment.
3309 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
3311 * gcc-interface/decl.c (gnat_to_gnu_param): Tidy up.
3312 (gnat_to_gnu_subprog_type): For a variadic C function, do not
3313 build unnamed parameters and do not add final void node.
3314 * gcc-interface/misc.c: Include snames.h.
3315 * gcc-interface/trans.c (Attribute_to_gnu): Tidy up.
3316 (Call_to_gnu): Implement support for unnamed parameters in a
3317 variadic C function.
3318 * gcc-interface/utils.c: Include snames.h.
3319 (copy_type): Tidy up.
3321 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
3323 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not apply
3324 range checks to allocators here.
3326 2020-06-19 Justin Squirek <squirek@adacore.com>
3328 * lib.adb (Check_Same_Extended_Unit): Add check to determine if
3329 the body for the subunits exist in the same file as their
3332 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
3334 * exp_aggr.adb (In_Place_Assign_OK): In an allocator context,
3335 check the bounds of an array aggregate against those of the
3336 designated type, except if the latter is unconstrained.
3338 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
3340 * sem_ch3.adb (Is_Visible_Component): Reason only on the private
3341 status of the original type in an instance body.
3343 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
3345 * sem_res.adb (Resolve_Qualified_Expression): Do not override the
3346 type of the node when it is unconstrained if it is for an allocator.
3348 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
3350 * sem_res.adb (Resolve_Allocator): Call Resolve_Qualified_Expression
3351 on the qualified expression, if any, instead of doing an incomplete
3352 type resolution manually.
3353 (Resolve_Qualified_Expression): Apply predicate check to operand.
3355 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
3357 * sem_ch4.adb (Analyze_Selected_Component): In an instance body,
3358 also invoke Find_Component_In_Instance on the parent subtype of
3359 a derived tagged type immediately visible. Remove obsolete case.
3361 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
3363 * exp_attr.adb (Get_Integer_Type): Return the largest supported
3364 unsigned integer type if need be.
3366 2020-06-19 Justin Squirek <squirek@adacore.com>
3368 * sem_warn.adb (Warn_On_Known_Condition): Add general sanity
3369 check that asserts the original source node being checked
3370 contains an entity. If not, it could be the result of special
3371 case expansion for type conversions.
3373 2020-06-19 Ed Schonberg <schonberg@adacore.com>
3375 * sem_ch6.adb (Analyze_Expression_Function): Do not indicate
3376 that the function has a completion if it appears within a Ghost
3379 2020-06-19 Bob Duff <duff@adacore.com>
3381 * libgnat/a-ststbo.adb (Write): Replace pragma Assert with "if
3382 ... raise Constraint_Error".
3384 2020-06-19 Justin Squirek <squirek@adacore.com>
3386 * widechar.adb, widechar.ads (Skip_Wide): Catch validity check
3387 failure when skipping over characters, and update comment to
3388 reflect Skip_Wide's usage in error printing.
3390 2020-06-19 Javier Miranda <miranda@adacore.com>
3392 * exp_ch3.ads (Ensure_Activation_Chain_And_Master): New
3394 * exp_ch3.adb (Ensure_Activation_Chain_And_Master): New
3395 subprogram that factorizes code.
3396 (Expand_N_Object_Declaration): Call new subprogram.
3397 * sem_ch6.adb (Analyze_Function_Return): Returning a
3398 build-in-place unconstrained array type defer the full analysis
3399 of the returned object to avoid generating the corresponding
3400 constrained subtype; otherwise the bounds would be created in
3401 the stack and a dangling reference would be returned pointing to
3404 2020-06-19 Arnaud Charlet <charlet@adacore.com>
3406 * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
3407 libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
3408 libgnat/a-nbnbre.ads: Update spec according to AI12-0366.
3410 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
3412 * checks.ads: Remove excessive whitespace in declarations of
3413 functions for check suppression.
3415 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
3417 * sem_ch7.adb (Hide_Public_Entities): Split handling of objects
3418 and subprograms, and do not reject the latter upfront in nested
3419 instance specs if there are no referencer subprograms at all.
3420 (Analyze_Package_Body_Helper): Also call Hide_Public_Entities on
3421 nested generic instances.
3423 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
3425 * sem_attr.adb (Analyze_Attribute): Reject illegal positional
3426 component associations; fix syntax in comment about named
3427 component associations.
3429 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
3431 * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Modify a nested
3432 Get_Component_Type routine to return a component and not just
3433 its type; use this routine to decorate the identifier within the
3436 2020-06-19 Arnaud Charlet <charlet@adacore.com>
3438 * sem_ch4.adb (Find_Equality_Types.Check_Access_Attribute): New.
3439 (Find_Equality_Types): Move universal_access related checks at
3440 the end of the processing and add call to
3441 Check_Access_Attribute.
3443 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
3445 * sem_prag.adb (Process_Convention): Revert previous change.
3447 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
3449 * checks.ads (Apply_Static_Length_Check): Move up.
3450 (Apply_Range_Check): Add parameter Insert_Node.
3451 * checks.adb (Apply_Selected_Range_Checks): Merge into...
3452 (Apply_Range_Check): ...this. Add parameter Insert_Node,
3453 pass it as Warn_Node to Selected_Range_Checks and use it
3454 as insertion point for the checks.
3455 * sem_ch3.adb (Analyze_Subtype_Declaration): Rewrite block
3456 dealing with the range checks for the subtype indication.
3457 Use local variable and call Apply_Range_Check in both cases.
3459 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
3461 * exp_attr.adb (Expand_N_Attribute_Reference): Call Ensure_Valid
3462 on the expression of an object declaration that captures the
3463 value of 'Old prefix.
3465 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
3467 * exp_attr.adb (Expand_N_Attribute_Reference): Add comment.
3468 * sem_attr.adb (Analyze_Attribute): Add ??? comment.
3469 * sem_util.ads (Valid_Scalars): This routine is only used for
3470 'Valid_Scalars and not for 'Valid.
3472 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
3474 * exp_attr.adb (Expand_N_Attribute_Reference): Do not call
3475 Scalar_Part_Present on the array component's type.
3476 (Build_Array_VS_Func): Remove Comp_Typ parameter, because it can
3477 be easily computed from the Array_Top parameter *and redundant
3478 parameters are confusing and error-prone).
3480 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
3482 * exp_attr.adb (Build_Record_VS_Func): Strip privacy and type
3483 derivation from the root type when 'Valid_Scalars is applied to
3486 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
3488 * checks.adb (Apply_Parameter_Validity_Checks): Remove testing
3489 of Check_Validity_Of_Parameters for every formal parameter and
3492 2020-06-19 Arnaud Charlet <charlet@adacore.com>
3494 * sem_warn.adb (Warn_On_Overlapping_Actuals): Add missing
3497 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
3499 * exp_ch4.adb (Get_Size_For_Range): Only make sure to return a
3500 size lower than that of the original type if possible.
3501 * libgnat/s-rannum.adb (Random_Discrete): Back out optimization
3502 added for 32-bit types.
3504 2020-06-18 Arnaud Charlet <charlet@adacore.com>
3506 * sem_ch6.ads, sem_ch6.adb (Check_Formal_Conformance): New
3508 (Check_Conformance): Move code to Check_Formal_Conformance.
3509 * sem_ch8.adb (Analyze_Subprogram_Renaming): Check for formal
3510 conformance when needed.
3512 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
3514 * exp_ch4.adb (Narrow_Large_Operation): New procedure to try
3515 and narrow large arithmetic and comparison operations.
3516 (Expand_N_In): Call it.
3517 (Expand_N_Op_Abs): Likewise.
3518 (Expand_N_Op_Add): Likewise.
3519 (Expand_N_Op_Divide): Likewise.
3520 (Expand_N_Op_Eq): Likewise.
3521 (Expand_N_Op_Ge): Likewise.
3522 (Expand_N_Op_Gt): Likewise.
3523 (Expand_N_Op_Le): Likewise.
3524 (Expand_N_Op_Lt): Likewise.
3525 (Expand_N_Op_Minus): Likewise.
3526 (Expand_N_Op_Mod): Likewise.
3527 (Expand_N_Op_Multiply): Likewise.
3528 (Expand_N_Op_Ne): Likewise.
3529 (Expand_N_Op_Plus): Likewise.
3530 (Expand_N_Op_Rem): Likewise.
3531 (Expand_N_Op_Subtract): Likewise.
3532 (Expand_N_Type_Conversion): Use Convert_To procedure.
3533 * exp_ch9.adb (Is_Pure_Barrier) <N_Identifier>: Skip all
3535 <N_Type_Conversion>: Use explicit criterion.
3537 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
3539 * exp_ch4.adb (Expand_Allocator_Expression): Apply constraint
3540 and predicate checks for the qualified expression on entry,
3541 followed by constraint and predicate checks for the allocator
3542 itself, and return early if this results in a static error.
3543 (Expand_N_Allocator): Do not do the same here. Instead apply
3544 constraint and predicate checks for arrays in the subtype
3546 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not apply
3547 range checks to allocators here.
3549 2020-06-18 Javier Miranda <miranda@adacore.com>
3551 * exp_ch6.adb (BIP_Suffix_Kind, Is_Build_In_Place_Entity): Move
3553 * exp_ch6.ads: Here.
3554 * exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Do not rely
3555 on the name of the scope to locate the extra formal BIPalloc
3556 since they are copied when the pointer type associated with
3557 dispatching calls is built; rely on routines
3558 Is_Build_In_Place_Entity and BIP_Suffix_Kind.
3559 * exp_disp.adb (Expand_Dispatching_Call): Set the scope of the
3560 first extra formal of the internally built pointer type.
3561 * sem_ch3.adb (Derive_Subprogram): Do not inherit extra formals
3562 from a limited interface parent since limitedness is not
3563 inherited in such case (AI-419) and this affects the extra
3565 * sprint.adb (Write_Itype): Output extra formals of subprogram
3568 2020-06-18 Ghjuvan Lacambre <lacambre@adacore.com>
3570 * errout.adb (Write_Error_Summary): Display number of warnings
3572 * errutil.ads: Update comment.
3574 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
3576 * exp_attr.adb (Analyze_Attribute) <Asm_{In,Out}put>: Alphabetize.
3577 <Component_Size>: Add check for universal integer attribute.
3578 <Aft>, <Bit_Order>, <Definite>, <Max_Alignment_For_Allocation>,
3579 <Scalar_Storage_Order>: Raise Program_Error on them.
3580 * sem_attr.adb (Eval_Attribute) <Component_Size>: Add comment on
3581 the packed array case.
3583 2020-06-18 Steve Baird <baird@adacore.com>
3585 * sem_util.adb (Object_Access_Level): Treat a 'Old attribute
3586 reference like an aggregate in determining its static
3587 accessibility level; after the evaluation of the relevant
3588 post-condition, the implicitly declared constant associated with
3589 an Old attribute reference ceases to exist. Similarly for
3590 Loop_Entry attribute.
3591 * exp_ch6.adb (Expand_Call_Helper): For an attribute reference
3592 that is expanded into a reference to an implicitly declared
3593 constant (e.g., a 'Old or 'Loop_Entry attribute), compute the
3594 dynamic accessibility level of that constant by looking at the
3595 declaration of the constant (as opposed to looking at the
3596 attribute reference).
3598 2020-06-18 Steve Baird <baird@adacore.com>
3600 * exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a
3601 default initial condition check for the declaration of an
3604 2020-06-18 Arnaud Charlet <charlet@adacore.com>
3606 * Makefile.rtl: Add s-statxd.o.
3607 * bindgen.adb (Gen_Adainit): Add support for XDR_Stream.
3608 * bindusg.adb (Display): Add mention of -xdr.
3609 * gnatbind.adb: Process -xdr switch.
3610 * init.c (__gl_xdr_stream): New.
3611 * opt.ads (XDR_Stream): New.
3612 * libgnat/s-stratt__xdr.adb: Rename to...
3613 * libgnat/s-statxd.adb: this and adjust.
3614 * libgnat/s-statxd.ads: New.
3615 * libgnat/s-stratt.ads, libgnat/s-stratt.adb: Choose between
3616 default and XDR implementation at runtime.
3617 * libgnat/s-ststop.ads: Update comments.
3618 * doc/gnat_rm/implementation_advice.rst: Update doc on XDR
3620 * gnat_rm.texi: Regenerate.
3622 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
3624 * sem_attr.adb (Analyze_Attribute) <To_Address>: Use the address
3625 size of the target instead of the host when checking the value of
3626 a static expression. Also use standard idiom for exponentiation.
3628 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
3630 * sem_prag.adb (Process_Convention): Give a warning on C_Variadic_n
3631 being applied to a subprogram with exactly n parameters.
3633 2020-06-18 Arnaud Charlet <charlet@adacore.com>
3635 * libgnarl/s-osinte__linux.ads, libgnat/g-io.adb,
3636 libgnat/g-socket.adb, libgnat/g-socthi.adb,
3637 libgnat/g-socthi.ads, libgnat/g-socthi__vxworks.adb,
3638 libgnat/g-socthi__vxworks.ads, libgnat/g-sothco.ads,
3639 libgnat/s-io.adb, libgnat/a-except.adb: Fix function profile
3640 mismatch with imported C functions.
3642 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
3644 * exp_ch6.adb (Expand_Call_Helper): Remove superfluous calls
3645 to Relocate_Node and merge calls to Analyze and Resolve in a
3646 couple of places. Do not attempt to generate a range check
3647 for an actual parameter against the formal's type of a derived
3648 subprogram after generating a conversion to the formal's type
3649 of the parent subprogram.
3651 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
3653 * checks.adb (Compute_Range_For_Arithmetic_Op): New procedure to
3654 compute a range for an arithmetical operation extracted from...
3655 (Minimize_Eliminate_Overflows): ...here. Call it.
3656 (Determine_Range_Cache_O): New cache for Original_Node nodes.
3657 (Determine_Range): Call Compute_Range_For_Arithmetic_Op for all
3658 arithmetic expressions. Use Attribute_Id in lieu of Attribute_Name
3659 for attributes. Add handling for Range_Length alongside Length.
3660 Add specific handling for Alignment, Bit, First_Bit, Last_Bit,
3661 Max_Size_In_Storage_Elements, Position, Bit_Position,
3662 Component_Size, Object_Size, Size, Value_Size, Descriptor_Size.
3663 (Enable_Overflow_Check): Omit the check for Abs and Minus if the
3664 operand cannot be the largest negative number.
3665 (Selected_Length_Checks): Use Pos for Number_Dimensions.
3666 * exp_attr.adb (Expand_N_Attribute_Reference): Move compile-time
3667 handling of Bit_Position, Descriptor_Size, First_Bit, Last_Bit
3669 * sem_attr.adb (Eval_Attribute): ...here. Move up Alignment for
3670 objects and use Compile_Time_Known_Attribute in this case too.
3672 2020-06-18 Ghjuvan Lacambre <lacambre@adacore.com>
3674 * erroutc.ads: Declare new Is_Compile_Time_Msg boolean,
3675 add new Compile_Time_Pragma field to Error_Msg_Object type.
3676 (Count_Compile_Time_Pragma_Warnings): New function.
3677 * erroutc.adb (Count_Compile_Time_Pragma_Warnings): New
3679 (Compilation_Errors): Take Compile_Time warnings into account
3680 when tallying Errors/Warnings.
3681 * errout.ads (Error_Msg): New procedure.
3682 * errout.adb (Error_Msg): New procedure.
3683 (Error_Msg_Internal): Set new Compile_Time_Pragma field in
3685 * errutil.adb (Error_Msg): Set new Compile_Time_Pragma field in
3687 * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Pass
3688 True to new Error_Msg procedure.
3689 * doc/gnat_rm/implementation_defined_pragmas.rst: Update doc for
3690 the Compile_Time_Warning pragma.
3691 * gnat_rm.texi: Regenerate.
3692 * opt.ads: Update comment.
3694 2020-06-18 Arnaud Charlet <charlet@adacore.com>
3696 * sem_ch4.adb (Check_Compatible_Profiles): Add explicit
3699 2020-06-18 Piotr Trojanek <trojanek@adacore.com>
3701 * checks.adb (Generate_Index_Checks): Handle
3702 N_Subtype_Indication returned from Scalar_Range.
3704 2020-06-18 Piotr Trojanek <trojanek@adacore.com>
3706 * checks.adb, sem_ch3.adb: Minor refactorings.
3707 * sem_eval.adb (Eval_Qualified_Expression): Fix reference to RM
3708 rule in comment; only set a local variable Hex in the branch
3711 2020-06-18 Piotr Trojanek <trojanek@adacore.com>
3713 * sem_eval.adb (Check_Non_Static_Context): Use Is_RTE.
3715 2020-06-18 Arnaud Charlet <charlet@adacore.com>
3717 * sem_ch4.adb (Find_Equality_Types.Check_Access_Object_Types):
3718 New function, used to implement RM 4.5.2 (9.6/2).
3719 (Find_Equality_Types.Check_Compatible_Profiles): New function,
3720 used to implement RM 4.5.2(9.7/2).
3721 (Find_Equality_Types.Reference_Anonymous_Access_Type): New
3723 (Find_Equality_Types.Try_One_Interp): Fix handling of anonymous
3724 access types which was accepting both too much and too little.
3725 Remove accumulated special and incomplete cases for
3726 instantiations, replaced by Has_Compatible_Type.
3727 (Analyze_Overloaded_Selected_Component): Use
3728 Is_Anonymous_Access_Type instead of Ekind_In.
3729 * sem_res.adb: Code cleanup and bug fix: use
3730 Is_Anonymous_Access_Type instead of Ekind_In. Relax checking of
3731 anonymous access parameter when universal_access "=" is
3733 * sem_type.adb: Likewise.
3734 (Find_Unique_Type): Move code from here...
3735 (Specific_Type): ...to here. Also add missing handling of access
3736 to class wide types.
3737 * einfo.ads, einfo.adb (Is_Access_Object_Type): New.
3739 2020-06-18 Bob Duff <duff@adacore.com>
3741 * libgnat/a-strsto.ads, libgnat/a-ststbo.adb,
3742 libgnat/a-ststbo.ads, libgnat/a-ststun.adb,
3743 libgnat/a-ststun.ads: New files, containing packages
3744 Ada.Streams.Storage, Ada.Streams.Storage.Bounded, and
3745 Ada.Streams.Storage.Unbounded.
3746 * impunit.adb, Makefile.rtl: Add new file names.
3748 2020-06-18 Javier Miranda <miranda@adacore.com>
3750 * sem_ch13.adb (Has_Good_Profile): Enforce strictness in the
3751 check. Required to detect wrong profiles for Input and Output.
3752 (Analyze_Stream_TSS_Definition): Minor enhancement in the text
3753 of the error for class-wide attributes.
3755 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
3757 * exp_attr.adb (Get_Integer_Type): Pick an unsigned type based
3758 on the Esize of the base type of the input type.
3760 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
3762 * exp_ch4.adb (Expand_Array_Equality): For the optimization of
3763 the 2-element case, build new expression lists for the indices.
3765 2020-06-18 Richard Kenner <kenner@adacore.com>
3767 * sem_util.adb (Enclosing_Subprogram): No longer need
3768 Convention_Protected.
3770 2020-06-18 Claire Dross <dross@adacore.com>
3772 * sem_util.adb (Is_OK_Volatile_Context): Return False on
3773 definitions of constants declared in declare expressions.
3775 2020-06-18 Piotr Trojanek <trojanek@adacore.com>
3777 * doc/gnat_rm/implementation_defined_aspects.rst
3778 (Relaxed_Initialization): New implementation-defined aspect.
3779 * doc/gnat_rm/implementation_defined_attributes.rst
3780 (Initialized): New implementation-defined attribute.
3781 * gnat_rm.texi: Regenerate.
3783 2020-06-18 Javier Miranda <miranda@adacore.com>
3785 * exp_disp.adb (Expand_Dispatching_Call): Add missing decoration
3786 of attribute Extra_Accessibility_Of_Result.
3787 * freeze.adb (Check_Extra_Formals): No check required if
3788 expansion is disabled; Adding check on
3789 Extra_Accessibilty_Of_Result.
3790 (Freeze_Subprogram): Fix decoration of
3791 Extra_Accessibility_Of_Result.
3792 * sem_ch3.adb (Derive_Subprogram): Fix decoration of
3793 Extra_Accessibility_Of_Result
3795 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
3797 * exp_ch4.adb (Optimize_Length_Comparison): Accept 32-bit values
3798 in the full unsigned range.
3800 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
3802 * checks.adb (Apply_Universal_Integer_Attribute_Checks): Do not do
3803 anything when the type of the node is already Universal_Integer.
3805 2020-06-17 Arnaud Charlet <charlet@adacore.com>
3807 * sem_ch10.adb (Expand_With_Clause): Add missing handling of
3808 N_Generic_Subprogram_Declaration, N_Subprogram_Declaration,
3811 2020-06-17 Ed Schonberg <schonberg@adacore.com>
3813 * sem_ch13.adb: (Check_Inherited_Indexing): Check that a type
3814 derived from an indexable container type cannot specify an
3815 indexing aspect if the same aspect is not specified for the
3816 parent type (RM 4.1.6 (6/5), AI12-160). Add a check that a
3817 specified indexing aspect for a derived type is confirming.
3819 2020-06-17 Gary Dismukes <dismukes@adacore.com>
3821 * exp_ch9.adb (Build_Protected_Subp_Specification): Add ???
3822 comment about the flag Has_Nested_Subprogram not being set here.
3823 (Expand_N_Protected_Body): If the original body for a protected
3824 subprogram has the flag Has_Nested_Subprogram set, then set that
3825 flag on the new unprotected subprogram body that's created for
3826 it, and reset the Scope fields of its top level declarations,
3827 which have been effectively taken from the original protected
3828 subprogram body. Add ??? comment about unclear testing of
3831 2020-06-17 Javier Miranda <miranda@adacore.com>
3833 * aspects.ads (type Aspect_Id): Add Aspect_Yield as a Boolean
3834 aspect, and update the Is_Representation_Aspect, Aspect_Names,
3835 and Aspect_Delay arrays.
3836 * einfo.ads, einfo.adb (Has_Yield_Aspect, Yield_Aspect): New
3838 * exp_ch6.adb (Add_Return, Expand_Non_Function_Return,
3839 Expand_Simple_Function_Return): Add calls to Yield.
3840 * exp_ch9.adb (Build_Accept_Body, Expand_N_Accept_Statement):
3842 * rtsfind.ads (RE_Yield): Adding support to generate calls to
3843 the runtime service Ada.Dispatching.Yield
3844 * sem_ch13.adb (Analyze_Aspect_Yield): New subprogram.
3845 * sem_ch3.adb (Derive_Subprogram): Inherit attribute
3847 * sem_ch8.adb (Analyze_Subprogram_Renaming): Check consistency
3848 of Has_Yield in the actual subprogram of a generic
3850 * sem_disp.adb (Check_Dispatching_Operation): Check that if the
3851 Yield aspect is specified for a dispatching subprogram that
3852 inherits the aspect, the specified value shall be confirming.
3853 * sem_prag.adb (Analyze_Pragma [Pragma_Implemented]): Check that
3854 the implementation kind By_Protected_Procedure cannot be applied
3855 to a procedure that has aspect Yield.
3857 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
3859 * exp_ch4.adb (Expand_N_Op_Expon): Replace all occurrences of
3860 the original right operand with the relocated version.
3862 2020-06-17 Javier Miranda <miranda@adacore.com>
3864 * exp_ch6.adb (Has_BIP_Extra_Formal): New subprogram.
3865 (Needs_BIP_Task_Actuals): Add support for the subprogram type
3866 internally generated for dispatching calls.
3867 * exp_disp.adb (Expand_Dispatching_Call): Adding code to
3868 explicitly duplicate the extra formals of the target subprogram.
3869 * freeze.adb (Check_Extra_Formals): New subprogram.
3870 (Freeze_Subprogram): Fix decoration of Extra_Formals.
3871 * sem_ch3.adb (Derive_Subprogram): Fix decoration of
3874 2020-06-17 Bob Duff <duff@adacore.com>
3876 * par.adb (P_Basic_Declarative_Items): Update comment about
3878 * par-ch3.adb (P_Declarative_Items): Pass in Declare_Expression
3879 flag, and if True, skip the call to Style.Check_Indentation.
3880 * par-ch4.adb (P_Declare_Expression): Fix incorrect comment.
3882 2020-06-17 Arnaud Charlet <charlet@adacore.com>
3884 * sem_res.adb (Valid_Conversion): Change error message to make
3885 it more user-friendly.
3887 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
3889 * checks.ads (Apply_Length_Check_On_Assignment): Declare.
3890 * checks.adb (Apply_Length_Check_On_Assignment): New procedure
3891 to apply a length check to an expression in an assignment.
3892 * exp_ch5.adb (Expand_Assign_Array): Call it instead of calling
3893 Apply_Length_Check to generate a length check.
3894 * sem_ch5.adb (Analyze_Assignment): Likewise.
3896 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
3898 * einfo.adb (Is_Relaxed_Initialization_State): Add reference to
3900 * sem_attr.adb (Analyze_Attribute_Old_Result): Likewise.
3901 * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Reject
3902 aspect on completions of private types and deferred constants.
3903 * sem_util.ads, sem_util.adb (Has_Relaxed_Initialization):
3904 Adjust comments; support queries for constants.
3906 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
3908 * cstand.adb (Stloc): Change to a renaming.
3910 (Build_Unsigned_Integer_Type): Remove Nam parameter, use local
3911 constants and do not call Make_Name.
3912 (Make_Dummy_Index): Use local constants.
3913 (Create_Standard): Pass the name of entities as parameter in
3914 calls to New_Standard_Entity and remove calls to Make_Name.
3915 Adjust calls to Build_Unsigned_Integer_Type.
3916 (Identifier_For): Use local constant.
3917 (Make_Component): Pass the name of the component as parameter
3918 in call to New_Standard_Entity and remove call to Make_Name.
3919 (Make_Formal): Likewise. Rename Formal_Name parameter into
3920 Nam and use local constant.
3921 (Make_Name): Delete.
3922 (New_Operator): Use local constant.
3923 (New_Standard_Entity): Rename S parameter into Nam and build
3924 the name here. Remove call to Make_Name.
3925 (Register_Float_Type): Pass the name of the type as parameter
3926 in call to New_Standard_Entity and remove call to Make_Name.
3928 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
3930 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
3931 Remove condition added for scalar types.
3933 2020-06-17 Gary Dismukes <dismukes@adacore.com>
3935 * exp_ch3.ads (Build_Access_Subprogram_Wrapper_Body): Adjust
3936 colon columns; reformat comment.
3938 (Build_Access_Subprogram_Wrapper_Body): Likewise.
3939 * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Reformat spec
3940 comment and reformat comment in body.
3941 (Analyze_Full_Type_Declaration): Reformat comment.
3942 (Replace_Type_Name): Fixed three typos, plus reformatting of
3944 * sem_prag.adb (Analyze_Pre_Post_Condition): Fix typos.
3945 * sem_warn.adb (Warn_On_Overlapping_Actuals): Edit comments:
3946 remove hyphen, add missing word.
3948 2020-06-17 Bob Duff <duff@adacore.com>
3950 * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
3951 libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb,
3952 libgnat/a-cborma.adb, libgnat/a-cborse.adb,
3953 libgnat/a-cdlili.adb, libgnat/a-chtgbk.adb,
3954 libgnat/a-chtgke.adb, libgnat/a-cidlli.adb,
3955 libgnat/a-cihama.adb, libgnat/a-cihase.adb,
3956 libgnat/a-cimutr.adb, libgnat/a-ciorma.adb,
3957 libgnat/a-ciorse.adb, libgnat/a-cobove.adb,
3958 libgnat/a-cohama.adb, libgnat/a-cohase.adb,
3959 libgnat/a-coinve.adb, libgnat/a-comutr.adb,
3960 libgnat/a-convec.adb, libgnat/a-coorma.adb,
3961 libgnat/a-coorse.adb, libgnat/a-crbtgk.adb,
3962 libgnat/a-crbtgo.adb, libgnat/a-rbtgso.adb: Move tampering
3965 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
3967 * exp_attr.adb (Get_Integer_Type): Use standard types without
3969 * sem_res.adb (Resolve_Unchecked_Type_Conversion): Remove a
3970 redundant intermediate conversion to Universal_Integer.
3972 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
3974 * sem_util.ads, sem_util.adb (Get_Iterable_Type_Primitive): Fix
3975 comment and enforce it with an assertion in the body.
3977 2020-06-17 Ed Schonberg <schonberg@adacore.com>
3979 * sem_ch3.adb (Analyze_Full_Type_Declaration): For an
3980 access_to_subprogram declaration that has aspect specifications,
3981 call Build_Access_ Subprogram_Wrapper at once, so that pre- and
3982 postcondition aspects are analyzed in the context of a
3983 subprogram declaration.
3984 (Build_Access_Subprogram_Wrapper): Examine aspect specifications
3985 of an Access_To_Subprogram declaration. If pre- or
3986 postconditions are declared for it, create declaration for
3987 subprogram wrapper and add the corresponding aspect
3988 specifications to it. Replace occurrences of the type name by
3989 that of the generated subprogram, so that attributes 'Old and
3990 'Result can appear in a postcondition.
3991 * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Moved
3992 here from sem_prag.adb.
3993 * exp_ch3.ads (Build_Access_Subprogram_Wrapper_Body): Visible
3995 * sem_prag.adb (Build_Access_Subprogram_Wrapper / _Body): Moved
3996 to sem_ch3.adb and exp_ch3.adb.
3998 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
4000 * atree.adb (Preserve_Comes_From_Source): Rewrite using
4001 Set_Comes_From_Source and Comes_From_Source, which enforce that
4002 the parameters are valid.
4003 * exp_ch4.adb, exp_ch5.adb, sem_ch12.adb, sem_ch6.adb,
4004 sem_res.adb: Rewrite using Preserve_Comes_From_Source.
4006 2020-06-17 Arnaud Charlet <charlet@adacore.com>
4008 * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Remove obsolete
4011 2020-06-17 Gary Dismukes <dismukes@adacore.com>
4013 * aspects.ads (type Aspect_Id): Add Aspect_Static as a Boolean
4014 aspect, and update the Is_Representation_Aspect, Aspect_Names,
4015 and Aspect_Delay arrays.
4016 * exp_ch6.adb (Expand_Simple_Function_Return): In the case of a
4017 return for a static expression function, capture a copy of the
4018 expression of the return statement before it's expanded and
4019 reset its Analyzed flags. Then, just before leaving this
4020 procedure, if the expression was rewritten, set the
4021 Original_Node of the rewritten expression to the new copy and
4022 also set the Expression of the associated static expression
4023 function to designate that copy. This ensures that later copies
4024 of the expression made via New_Copy_Tree will fully copy all
4025 nodes of the expression tree.
4026 * inline.ads (Inline_Static_Expression_Function_Call): New
4027 procedure to evaluate and produce the result of a static call to
4028 a static expression function.
4029 * inline.adb: Add with and use for Sem_Res.
4030 (Establish_Actual_Mapping_For_Inlined_Call): New procedure
4031 extracted from code in Expand_Inlined_Call that traverses the
4032 actuals and formals of an inlined call and in some cases creates
4033 temporaries for holding the actuals, plus establishes an
4034 association between formals and actuals (via the Renamed_Object
4035 fields of the formals).
4036 (Formal_Is_Used_Once): Function removed from Expand_Inlined_Call
4037 and now nested in the above procedure.
4038 (Expand_Inlined_Call): Code for doing the formal/actual
4039 traversal is moved to Create_Actual_Temporaries and replaced
4040 with a call to that new procedure.
4041 (Inline_Static_Expression_Function_Call): New procedure to
4042 evaluate a static call to a static expression function,
4043 substituting actuals for their corresponding formals and
4044 producing a fully folded and static result expression. The
4045 function has subsidiary functions Replace_Formal and Reset_Sloc
4046 that take care of doing the mapping of formals to actuals and
4047 resetting the Slocs of subnodes of the mapped expression to that
4048 of the call so errors will be flagged on the call rather than
4050 * sem_ch6.adb (Analyze_Expression_Function): In the case of a
4051 static expression function, perform an additional preanalysis of
4052 the function's expression to ensure that it's a potentially
4053 static expression (according to the requirements of
4054 6.8(3.2/5-3.4/5)), and issue an error if it's not. The global
4055 flag Checking_Potentially_Static_Expression is set and unset
4056 around this checking.
4057 * sem_ch13.adb (Analyze_Aspect_Static): New procedure to enforce
4058 selected requirements of the new aspect Static on expression
4059 functions, including checking that the language version is
4060 Ada_2020 and that the entity to which it applies is an
4061 expression function whose formal parameters are of a static
4062 subtype and have mode 'in', its result subtype is a static
4063 subtype, and it has no pre- or postcondition aspects. A ???
4064 comment is added to indicate the need for adding checking that
4065 type invariants don't apply to the result type if the function
4066 is a boundary entity.
4067 (Analyze_One_Aspect): Call Analyze_Aspect_Static for aspect
4069 * sem_elab.adb (Build_Call_Marker): Return without creating a
4070 call marker when the subprogram is a static expression function,
4071 since no ABE checking is needed for such functions.
4072 * sem_eval.ads (Checking_Potentially_Static_Expression): New
4073 function to return whether the checking for potentially static
4074 expressions is enabled.
4075 (Set_Checking_Potentially_Static_Expression): New procedure to
4076 enable or disable checking of potentially static expressions.
4077 * sem_eval.adb (Checking_For_Potentially_Static_Expression): New
4078 global flag for determining whether preanalysis of potentially
4079 static expression is being done, which affects the behavior of
4080 certain static evaluation routines.
4081 (Checking_Potentially_Static_Expression): New function to return
4082 whether the checking for potentially static expressions is
4084 (Eval_Call): When evaluating a call within a static expression
4085 function with checking of potentially static expression
4086 functions enabled, substitutes a static value in place of the
4087 call to allow folding of the expression.
4088 (Eval_Entity_Name): When evaluating a formal parameter of a
4089 static expression function with checking of potentially static
4090 expression functions enabled, substitutes a static value in
4091 place of the reference to the formal to allow folding of the
4093 (Set_Checking_Potentially_Static_Expression): New procedure to
4094 enable or disable checking of potentially static expressions.
4095 * sem_res.adb (Resolve_Call): Test for a recursive call
4096 occurring within a static expression function and issue an error
4097 for such a call. Prevent the establishment of a transient scope
4098 in the case this is a call to a (string-returning) static
4099 expression function. When calling a static expression function,
4100 if no error has been posted on the function, call
4101 Inline_Static_Expression_Function_Call to convert the call into
4102 its equivalent static value.
4103 * sem_util.ads (Is_Static_Expression_Function): New function
4104 returning whether the subprogram entity passed to it is a static
4105 expression function.
4106 (Is_Static_Expression_Function_Call): New function to determine
4107 whether the call node passed to it is a static call to a static
4108 expression function.
4109 * sem_util.adb (Compile_Time_Constraint_Error): Suppress
4110 compile-time Constraint_Error reporting when checking for a
4111 potentially static expression.
4112 (Is_Static_Expression_Function): New function returning whether
4113 the subprogram entity passed to it is a static expression
4114 function by testing for the presence of aspect Static.
4115 (Has_All_Static_Actuals): New function in
4116 Is_Static_Expression_Function_Call that traverses the actual
4117 parameters of a function call and returns True only when all of
4118 the actuals are given by static expressions. In the case of a
4119 string-returning function, we call Resolve on each actual to
4120 ensure that their Is_Static_Expression flag properly reflects
4121 whether they're static, to allow suppressing creation of a
4122 transient scope within Resolve_Call. A prominent ??? comment is
4123 added to explain this rather unconventional call to Resolve.
4124 (Is_Static_Expression_Function_Call): New function that
4125 determines whether a node passed to it is a call to a static
4126 expression function all of whose actual parameters are given by
4129 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4131 * exp_ch4.adb (Optimize_Length_Comparison): New local variable to
4132 record whether this may be a dynamic superflat case.
4133 (Is_Optimizable): Accept 0 as lower bound and set it in this case,
4134 but return false if the operand is not a length too.
4135 (Rewrite_For_Equal_Lengths): New procedure.
4136 Optimize the comparison of two lengths in the superflat case when
4137 the arrays have the same bounds.
4139 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4141 * doc/gnat_rm/implementation_defined_attributes.rst (Bit): Sharpen
4142 the comparison with System.Storage_Unit.
4143 (Descriptor_Size): Clear confusion about alignment and padding.
4144 * gnat_rm.texi: Regenerate.
4146 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4148 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
4149 Do not replace the bound for an array type if it is public.
4151 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4153 * exp_ch4.adb (Optimize_Length_Comparison): Make sure the base
4154 types are the same when comparing Y'Last and X'Last directly.
4156 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4158 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
4159 Replace it with a direct reference to an entity which is not a
4160 discriminant for constrained array types. Add same condition
4162 <Attribute_Last>: Merge with above implementation.
4163 * exp_ch4.adb (Optimize_Length_Comparison): Be prepared for a
4164 second entity whose length is compared. Rename Prepare_64 to
4165 Convert_To_Long_Long_Integer. If the second entity is present,
4166 compute the difference of the 'First attributes and compare the
4167 sum of 'Last of the second entity with this difference against
4168 'Last of the first entity. Add a special case when the 'First
4169 attributes are equal. Suppress overflow checks in all cases.
4171 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
4173 * doc/gnat_rm/implementation_defined_pragmas.rst, lib-writ.ads,
4174 par-prag.adb, sem_ch12.adb, sem_ch8.adb, sem_prag.adb: Fix
4175 casing of GNATprove.
4176 * gnat_rm.texi: Regenerate.
4178 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
4180 * checks.adb (Generate_Range_Check): Simplify redundant
4182 * sem_ch3.adb (Check_Initialization, Process_Discriminants):
4184 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Likewise.
4186 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4188 * exp_fixd.adb (Build_Conversion): Also preserve the
4189 Conversion_OK flag of an inner conversion.
4191 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
4193 * sem_ch5.adb (Analyze_Iterator_Specification): Enable expansion
4194 that creates a renaming that removes side effects from the
4195 iterated object in the GNATprove mode; then analyze reference to
4196 this renaming (it is required for GNATprove and harmless for
4199 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
4201 * sinfo.ads (Conversion_OK): Document use for 'Pos and 'Val.
4202 * exp_attr.adb (Get_Integer_Type): New function returning a
4203 small integer type appropriate for an enumeration type.
4204 (Expand_N_Attribute_Reference) <Attribute_Enum_Rep>: Call it.
4205 <Attribute_Pos>: For an enumeration type with a standard
4206 representation, expand to a conversion with Conversion_OK.
4207 <Attribute_Val>: Likewise.
4208 * exp_ch4.adb (Expand_N_Type_Conversion): Do not expand when
4209 the target is an enumeration type and Conversion_OK is set.
4211 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
4213 * sem_ch4.adb (Common_Type): Go to Underlying_Full_View, if any.
4215 2020-06-16 Richard Kenner <kenner@adacore.com>
4217 * exp_unst.adb (Subp_Index): Change way we detect internal
4218 protected subprograms.
4220 2020-06-16 Richard Kenner <kenner@adacore.com>
4222 * comperr.adb (Compiler_Abort): Clarify message displayed to
4225 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
4227 * checks.adb, doc/gnat_ugn/the_gnat_compilation_model.rst,
4228 einfo.ads, exp_ch5.adb, exp_ch7.adb, lib-xref.ads,
4229 libgnat/g-spitbo.ads, make.adb, sem_aux.adb, sem_ch3.adb,
4230 sem_ch4.adb, sem_ch5.adb, urealp.adb: Fix wrong casing.
4231 * gnat_ugn.texi: Regenerate.
4233 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
4235 * einfo.adb, exp_spark.adb, exp_util.adb, sem_eval.adb: Replace
4236 "Ekind ... in Object_Kind" with "Is_Object (...)".
4238 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
4240 * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix typo in
4243 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
4245 * exp_util.adb (Evaluate_Name): Force evaluation of aggregates;
4246 recursively evaluate expression of a qualified expression; fix
4247 location of the comment for an attribute referenced and an
4250 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
4252 * freeze.adb (Freeze_Expression): Use consistent style and
4253 formatting in a couple of cases.
4255 2020-06-16 Steve Baird <baird@adacore.com>
4257 * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Uncomment the
4258 commented-out Integer_Literal aspect specification for type
4261 2020-06-16 Javier Miranda <miranda@adacore.com>
4263 * exp_ch6.adb (BIP_Suffix_Kind, Check_BIP_Actuals,
4264 Is_Build_In_Place_Entity): New subprograms.
4265 (Make_Build_In_Place_Call_In_Allocator,
4266 Make_Build_In_Place_Call_In_Anonymous_Context,
4267 Make_Build_In_Place_Call_In_Assignment,
4268 Make_Build_In_Place_Call_In_Object_Declaration): Add assertions.
4269 (Needs_BIP_Task_Actuals): Add missing support for thunks.
4270 (Expand_Actuals): Ensure that the BIP call has available an
4271 activation chain and the _master variable.
4272 * exp_ch9.adb (Find_Enclosing_Context): Initialize the list of
4273 declarations of empty blocks when the _master variable must be
4274 declared and the list was not available.
4276 2020-06-16 Bob Duff <duff@adacore.com>
4278 * par-ch4.adb (P_Case_Expression): Move to be local.
4279 (P_Declare_Expression): New parsing routine.
4280 (P_Unparen_Cond_Expr_Etc): New name for
4281 P_Unparen_Cond_Case_Quant_Expression which was missing one case
4282 in its name (iterated component association), and we're adding a
4283 new case (declare expression), so lets use "Etc" instead of
4284 trying to pack all those things into the name. Add call to
4285 P_Declare_Expression, and check for missing parens.
4286 (P_Expression_If_OK, P_Expression_Or_Range_Attribute_If_OK): Add
4288 * par.adb (P_Basic_Declarative_Items): Add parameter
4289 Declare_Expression so we can tailor the error message about
4291 (P_Case_Expression): Move to body.
4292 * par-ch3.adb (P_Basic_Declarative_Items): Tailor the error
4293 message about incorrect bodies.
4294 * par-ch7.adb (P_Package): Pass Declare_Expression => False to
4295 P_Basic_Declarative_Items.
4296 * sem.ads (In_Declare_Expr): Counter used to determine whether
4297 we are analyzing a declare_expression. Needed to give errors
4298 about things that are not allowed in declare_expression, such as
4299 the 'Access attribute.
4300 * sem.adb (Do_Analyze): Save/restore In_Declare_Expr.
4301 * sem_ch4.adb (Analyze_Expression_With_Actions): Give this node
4302 its own scope. That seems better in general, but it is
4303 necessary for declare_expressions. For example, an identifier
4304 declared in a declare_expression should not clash with the same
4305 identifier in an outer scope. If this is a declare_expression,
4306 indicated by Comes_From_Source, then check legality rules, and
4307 incr/decr In_Declare_Expr.
4308 * sem_aggr.adb (Resolve_Aggregate): Allow an applicable index
4309 constraint for a declare_expression, so if its expression is an
4310 array aggregate, it can have "others => ...".
4311 * sem_attr.adb (Analyze_Access_Attribute): Disallow these
4312 attributes in declare_expressions. Add comment to make it clear
4313 that Unrestricted_Access is included.
4314 * sinfo.ads, sinfo.adb, atree.ads, atree.adb: Remove the
4315 now-incorrect comment in sinfo.ads that says
4316 N_Expression_With_Actions has no proper scope. Add 17-parameter
4317 versions of Nkind_In. Remove the 16-parameter versions of
4320 2020-06-16 Arnaud Charlet <charlet@adacore.com>
4322 * sem_aux.ads, sem_aux.adb (Is_Record_Or_Limited_Type): New
4324 * exp_ch4.adb, sem_ch4.adb (Analyze_Membership_Op,
4325 Expand_Set_Membership.Make_Cond): Choose between primitive and
4326 predefined equality for membership tests.
4328 2020-06-16 Ed Schonberg <schonberg@adacore.com>
4330 * sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify code and
4331 implement AI12-0216 which clarifies the conditions under which
4332 overlapping actuals in a call are illegal. If proper warnings
4333 are enabled, GNAT also emits warnings in legal cases of
4334 overlopping actuals.
4336 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
4338 * freeze.adb (Freeze_Expression): Stop climbing the parent chain
4339 at a N_{Case,If}_Expression node for a type or an entity that
4340 does not come from source.
4342 2020-06-16 Steve Baird <baird@adacore.com>
4344 * snames.ads-tmpl: Define names of the three new aspects.
4345 * aspects.ads: Define the three new aspects.
4346 * sem_util.ads, sem_util.adb, sem_dim.adb: Move the function
4347 String_From_Numeric_Literal from being declared in the body of
4348 package Sem_Dim to being declared in the visible part of package
4350 * sem_ch13.ads, sem_ch13.adb: Declare new visible procedure
4351 Validate_Literal_Aspect. This is where most of the legality
4352 checking occurs for an aspect specification for one of the three
4353 new aspects, as well as resolution of the subprogram named in
4354 the aspect specification. Follow example of other aspects (e.g.,
4355 Validate_Literal_Aspect is called in much the same way as
4356 Validate_Iterable_Aspect in Analyze_Aspects_At_Freeze_Point; a
4357 small amount of legality checking is performed in
4358 Analyze_One_Aspect in much the same way as for Default_Value or
4359 Default_Component_Value aspects). Most of the work is done in
4360 Validate_Literal_Aspect.
4361 * contracts.adb (Add_Contract_Item): Call
4362 Validate_Literal_Aspect in much the same way that
4363 Validate_Iterable_Aspect was already being called.
4364 * sem_res.adb (Resolve): Rewrite a literal as a call if it is a
4365 user-defined literal. This is where the dynamic semantics of
4366 the 3 new aspects are implemented.
4367 * sem_ch6.adb (Fully_Conformant_Expressions): Two numeric
4368 literals that have different text but the same value (e.g.,
4369 12345 and 12_345) do not conform if they are user-defined
4370 literals. Introduce a new function
4371 User_Defined_Numeric_Literal_Mismatch to avoid duplication in
4373 * sem_type.adb (Has_Compatible_Type): A numeric literal can be
4374 compatible with a non-numeric type (and a string literal can be
4375 compatible with a non-string type) if it can be interpreted as a
4376 user-defined literal.
4378 2020-06-16 Arnaud Charlet <charlet@adacore.com>
4380 * sem_aggr.adb (Resolve_Extension_Aggregate): Fix implementation
4381 of AI05-0115 by checking the correct type.
4383 2020-06-16 Arnaud Charlet <charlet@adacore.com>
4385 * sem_ch6.adb (Analyze_Subprogram_Specification): Generate error
4386 message for functions returning interfaces.
4388 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
4390 * sem_ch13.adb (Membership_Entry): Relax assertion to also
4391 recognize qualified identifiers.
4393 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
4395 * exp_util.adb (Evaluate_Name): Force evaluation of operators.
4397 2020-06-16 Arnaud Charlet <charlet@adacore.com>
4399 * sem_ch4.adb (Analyze_Membership_Op): Reset entity of equality
4400 nodes for membership tests with singletons.
4401 (Analyze_User_Defined_Binary_Op): Always perform the analysis
4402 since nodes coming from the expander also may refer to non
4403 standard operators as part of membership expansion.
4404 * exp_ch4.adb (Expand_Set_Membership.Make_Cond): Reset entity of
4406 * sem_type.ads: Fix typo in comment.
4408 2020-06-16 Ghjuvan Lacambre <lacambre@adacore.com>
4410 * sem_attr.adb (Analyze_Attribute): Add
4411 Check_Not_Incomplete_Type call.
4413 2020-06-16 Gary Dismukes <dismukes@adacore.com>
4415 * sem_ch6.adb: Add closing paren in a comment.
4416 * sem_util.adb: Correct comment typo (aggreate => aggregate).
4418 2020-06-16 Javier Miranda <miranda@adacore.com>
4420 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
4423 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
4425 * freeze.adb (In_Expanded_Body): Remove unreachable code.
4426 (Freeze_Expression): Rename a couple of local variables.
4427 In the case of an expanded body, also freeze locally the
4428 entities declared in a nested block.
4430 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
4432 * sem_ch4.adb (Transform_Object_Operation): Document that it
4433 may be partially destructive for the parent of the node.
4434 (Try_Object_Operation): Undo the changes made above on failure.
4436 2020-06-16 Javier Miranda <miranda@adacore.com>
4438 * restrict.adb (Global_No_Tasking): Adding
4439 Targparm.Restrictions_On_Target Fixes regressions with zfp.
4441 2020-06-16 Ed Schonberg <schonberg@adacore.com>
4443 * freeze.adb: (Freeze_Expression, In_Expanded_Body): Treat the
4444 generated body of an expression function like other bodies
4445 generated during expansion (e.g. stream subprograms) so that
4446 those bodies are not treated as freezing points. Handle properly
4447 other global references in such completions.
4449 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
4451 * sem_ch8.adb (Analyze_Object_Renaming): Remove trivially
4452 useless initialization of Is_Object_Reference.
4453 * sem_util.adb (Is_Object_Reference): Simplify detection of
4454 binary and unary operators; literally implement rules about
4455 aggregates and qualified expressions; recognize string literals
4456 as object references.
4458 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
4460 * sem_ch12.adb (Validate_Derived_Type_Instance): Reword error
4461 message for 12.5.1(8) subclause and add secondary message if
4462 the incompatibility comes from the predicates.
4463 * sem_ch3.adb (Check_Constraining_Discriminant): New procedure
4464 to give the error required by the 3.7(15) subclause. Mention
4465 "statically" in the error message and add secondary message
4466 if the incompatibility comes from the predicates.
4467 (Build_Derived_Concurrent_Type): Call it when a new discriminant
4468 constrains an old one.
4469 (Build_Derived_Record_Type): Likewise.
4470 * sem_eval.ads (Predicates_Compatible): Declare.
4471 * sem_eval.adb (Predicates_Compatible): New function to implement
4472 the compatibility of predicates specified by the 4.9.1 clause.
4473 (Subtypes_Statically_Compatible): Call it.
4475 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
4477 * sem_eval.ads (Predicates_Match): Fix description.
4478 * sem_eval.adb (Predicates_Match): Rewrite.
4480 2020-06-15 Ed Falis <falis@adacore.com>
4482 * Makefile.rtl: Change name of hie/g-io__vxworks-ppc-cert.adb.
4484 2020-06-15 Arnaud Charlet <charlet@adacore.com>
4486 * sem_ch8.adb (Premature_Usage): Add support for subtype
4487 references and replace set of if-then-else by a case statement.
4489 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
4491 * sem_prag.adb (Analyze_Depends_In_Decl_Part,
4492 Analyze_Global_In_Decl_Part): Bring back task discriminants for
4493 analysis of the Global/Depends contracts; add comments.
4495 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
4497 * einfo.ads (Return_Applies_To): Document special usage for E_Block.
4498 * einfo.adb (Write_Field8_Name): Write it for E_Block too.
4499 * exp_ch4.adb (Expand_N_Type_Conversion): Remove implementation of
4500 the check prescribed by AI05-0073.
4501 * exp_ch6.adb (Apply_CW_Accessibility_Check): New procedure to apply
4502 the check prescribed by AI95-344 extracted from...
4503 (Expand_N_Extended_Return_Statement): Apply the check prescribed by
4504 AI95-344 to the expression, if present. Suppress only access checks
4505 when analyzing the rewritten result.
4506 (Expand_Simple_Function_Return): ...here. Rename local variable.
4507 Call Apply_CW_Accessibility_Check to apply the check prescribed by
4508 AI95-344, but do not do it for the simple return statement generated
4509 by the expansion of an extended return statement. Apply the check
4510 prescribed by AI05-0073 to all functions returning anonymous access
4511 type designating a specific tagged type, but not if the expression
4512 was null or tag checks are suppressed for the type, and use Not In
4513 operator rather than comparing the tags explicitly.
4514 * sem.adb (Analyze): Handle all Suppress values.
4515 * sem_ch6.adb (Analyze_Function_Return): Do not explicitly apply
4516 predicate checks in the case of an extended return statement.
4517 Do not apply an implicit conversion to the anonymous access result
4518 type in the case of the simple return statement generated by the
4519 expansion of an extended return statement.
4520 (New_Overloaded_Entity): Small comment tweak.
4521 * treepr.adb (Print_Node): Fix typo in flag string.
4523 2020-06-15 Bob Duff <duff@adacore.com>
4525 * exp_put_image.ads, exp_put_image.adb
4526 (Image_Should_Call_Put_Image): New function to determine whether
4527 the call to Put_Image should be generated.
4528 (Build_Image_Call): New procedure to generate the call to
4530 * exp_imgv.adb (Expand_Image_Attribute): Use underlying types to
4531 bypass privacy (only in Ada 2020). If
4532 Image_Should_Call_Put_Image is True (which happens only in Ada
4533 2020), then call Build_Image_Call.
4534 * rtsfind.ads, rtsfind.adb: Add the necessary declarations in
4535 Ada.Strings.Text_Output.Buffers.
4536 * sem_attr.adb (Check_Image_Type): Enable the Ada 2020 case.
4537 * libgnat/a-stoufo.ads, libgnat/a-stoufo.adb: Use the less
4538 restrictive type that allows newline characters.
4540 2020-06-15 Gary Dismukes <dismukes@adacore.com>
4542 * exp_ch9.ads (Build_Master_Declaration): Add commas.
4543 * exp_ch9.adb (Build_Master_Entity): Spelling fix ("build" =>
4545 (Build_Task_Activation_Call): Fix word order.
4547 2020-06-15 Arnaud Charlet <charlet@adacore.com>
4549 * libgnat/a-nbnbin.ads (Big_Positive, Big_Natural): Fix
4552 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
4554 * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix
4555 dealing with scopes on subprogram bodies that act as specs.
4556 * sem_util.adb (Has_Relaxed_Initialization): Fix trivial
4559 2020-06-15 Javier Miranda <miranda@adacore.com>
4561 * restrict.ads (Set_Global_No_Tasking, Global_No_Tasking): New
4563 * restrict.adb (Set_Global_No_Tasking, Global_No_Tasking): New
4565 * sem_ch3.adb (Access_Definition): Do not skip building masters
4566 since they may be required for BIP calls.
4567 (Analyze_Subtype_Declaration): Propagate attribute
4568 Is_Limited_Record in class-wide subtypes and subtypes with
4569 cloned subtype attribute; propagate attribute
4570 Is_Limited_Interface.
4571 * sem_ch6.adb (Check_Anonymous_Return): Do not skip building
4572 masters since they may be required for BIP calls. Use
4573 Build_Master_Declaration to declare the _master variable.
4574 (Create_Extra_Formals): Add decoration of Has_Master_Entity when
4575 the _master formal is added.
4576 * exp_ch3.adb (Init_Formals): Adding formal to decorate it with
4577 attribute Has_Master_Entity when the _master formal is added.
4578 (Build_Master): Do not skip building masters since they may be
4579 required for BIP calls.
4580 (Expand_N_Object_Declaration): Ensure activation chain and
4581 master entity for objects initialized with BIP function calls.
4582 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
4583 Adding support to detect and save restriction No_Tasking when
4584 set in the run-time package System or in a global configuration
4586 * sem_util.adb (Current_Entity_In_Scope): Overload this
4587 subprogram to allow searching for an entity by its Name.
4588 * sem_util.ads (Current_Entity_In_Scope): Update comment.
4589 * exp_ch4.adb (Expand_N_Allocator): Do not skip building masters
4590 since they may be required for BIP calls.
4591 * exp_ch6.ads (Might_Have_Tasks): New subprogram.
4592 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add
4593 support for BIP calls returning objects that may have tasks.
4594 (Make_Build_In_Place_Call_In_Allocator): Build the activation
4595 chain if the result might have tasks.
4596 (Make_Build_In_Place_Iface_Call_In_Allocator): Build the class
4597 wide master for the result type.
4598 (Might_Have_Tasks): New subprogram.
4599 (Needs_BIP_Task_Actuals): Returns False when restriction
4600 No_Tasking is globally set.
4601 * exp_ch9.ads (Build_Master_Declaration): New subprogram.
4602 * exp_ch9.adb (Build_Activation_Chain_Entity): No action
4603 performed when restriction No_Tasking is globally set.
4604 (Build_Class_Wide_Master): No action performed when restriction
4605 No_Tasking is globally set; use Build_Master_Declaration to
4606 declare the _master variable.
4607 (Build_Master_Declaration): New subprogram.
4608 (Build_Master_Entity): No action performed when restriction
4609 No_Tasking is globally set; added support to handle transient
4610 scopes and _finalizer routines.
4611 (Build_Master_Renaming): No action performed when restriction
4612 No_Tasking is globally set.
4613 (Build_Task_Activation_Call): Skip generating the call when
4614 the chain is an ignored ghost entity.
4615 (Find_Master_Scope): Generalize the code that detects transient
4616 scopes with master entity.
4617 * einfo.ads (Has_Nested_Subprogram): Minor comment reformatting.
4619 2020-06-15 Arnaud Charlet <charlet@adacore.com>
4621 * sem_attr.adb (Eval_Attribute): Protect against previous
4623 * sem_ch13.adb (Analyze_Aspect_Default_Value): Remove redundant
4624 error checking, handling in Analyze_Aspect_Specifications.
4625 (Analyze_Aspect_Specifications): Refine error messages on
4626 Default_[Component_]Value.
4627 (Check_Aspect_Too_Late): New procedure.
4628 (Rep_Item_Too_Late.Is_Derived_Type_With_Constraint): Remove,
4630 * aspects.ads (Is_Representation_Aspect): Default_Value is a
4631 representation aspect.
4633 2020-06-15 Arnaud Charlet <charlet@adacore.com>
4635 * libgnat/a-wichha.ads, libgnat/a-wichha.adb,
4636 libgnat/a-wichun.ads, libgnat/a-wichun.adb (Is_Basic, To_Basic):
4638 * libgnat/s-utf_32.ads, libgnat/s-utf_32.adb (Is_UTF_32_Basic,
4639 To_UTF_32_Basic, Decomposition_Search): New subprograms.
4640 (Unicode_Decomposition): New table.
4642 2020-06-15 Gary Dismukes <dismukes@adacore.com>
4644 * exp_ch6.adb (Add_Call_By_Copy_Code): In the case of a view
4645 conversion passed to a scalar out-mode parameter where the
4646 formal has Default_Value set, declare the copy temp with the
4647 base type of the formal's subtype and initialize the copy temp
4648 with the actual's value.
4650 2020-06-15 Justin Squirek <squirek@adacore.com>
4652 * exp_ch4.adb (Expand_N_Case_Expression): Set default value for
4653 Target to silence potential warnings.
4654 (Expand_N_If_Expression): Add calculation to check when the if
4655 expression is used directly in the context of an actual of an
4656 anonymous access type and add a special path to force expansion
4657 of the if expression in this case.
4658 * exp_ch6.adb (Expand_Branch): Generate an assignment to the
4659 level temporary for a given branch.
4660 (Expand_Call_Helper): Add expansion to allow for creating a
4661 temporary to store associated accessiblity levels on each branch
4662 of the conditional expression. Also perform expansion of
4663 function calls into expressions with actions, and fixup
4664 references to N with Call_Node.
4665 (Insert_Level_Assign): Move through nested conditional
4666 expressions to each branch.
4667 * sem_util.ads, sem_util.adb (Is_Anonymous_Access_Actual): Added
4668 to detect when to force expansion of if expressions.
4670 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
4672 * sem_prag.adb (Analyze_Depends_In_Decl_Part,
4673 Analyze_Global_In_Decl_Part): Do not install task discriminants
4674 for analysis of the Global/Depends contracts.
4676 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
4678 * contracts.adb (Analyze_Object_Contract): Do not expect
4679 Global/Depends on single protected units.
4681 2020-06-15 Justin Squirek <squirek@adacore.com>
4683 * sem_res.adb (Valid_Conversion): Add missing condition to
4684 trigger proper static accessiblity failiures when the target
4685 type is an anonymous access.
4687 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
4689 * exp_ch6.adb (Expand_Call_Helper): Replace repeated Ekind with
4692 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
4694 * exp_ch6.adb, sem_util.adb: Remove excessive parents,
4695 especially since they don't make the code any easier to read.
4697 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
4699 * aspects.ads (Aspect_Id): Add Aspect_Relaxed_Initialization.
4700 (Implementation_Defined_Aspect): Add new aspect.
4701 (Aspect_Argument): Add new aspect with Optional_Expression
4703 (Is_Representation_Aspect): Add new aspect as a
4704 non-representation one.
4705 (Aspect_Names): Add name for the new aspect.
4706 (Aspect_Delay): Add new aspect as a non-delayed one.
4707 * sem_ch3.adb: Minor reformatting.
4708 * einfo.ads, einfo.adb (Is_Relaxed_Initialization_State): New
4709 query; reuses existing code for querying abstract state options.
4710 * exp_attr.adb (Expand_N_Attribute_Reference): For now ignore
4711 attribute 'Initialized.
4712 * sem_attr.adb (Analyze_Attribute_Old_Result): Allow attribute
4713 'Result to be used in the aspect Relaxed_Initialization
4715 (Analyze_Attribute): Analyze attribute 'Initialized; based on
4716 existing code for attribute 'Valid_Scalars.
4717 (Eval_Attribute): Do not expect attribute 'Initialized, just
4718 like attribute 'Valid_Scalars is not expected.
4719 * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): New
4721 (Analyze_Aspect_Specifications): Analyze new aspect in a
4723 (Check_Aspect_At_Freeze_Point): Do not expect new aspect.
4724 * sem_prag.adb (Analyze_Abstract_State): Support option
4725 Relaxed_Initialization on abstract states.
4726 * sem_util.ads, sem_util.adb (Has_Relaxed_Initialization): New
4727 query for the GNATprove backend.
4728 * snames.ads-tmpl (Snames): Add Name_Ids for the new aspect and
4729 attribute; add an Attribute_Id for the new attribute.
4731 2020-06-15 Bob Duff <duff@adacore.com>
4733 * exp_put_image.adb, libgnat/s-putima.adb, libgnat/s-putima.ads,
4734 rtsfind.ads: Enable Put_Image if Is_Access_Subprogram_Type (Typ).
4735 Remove comment saying it's disabled in that case. Rename
4736 Put_Image_Access_Prot to be Put_Image_Access_Prot_Subp to
4737 clarify that we're talking about access-to-subprogram, not
4738 access-to-protected-object.
4740 2020-06-15 Bob Duff <duff@adacore.com>
4742 * sem_attr.adb (Check_Image_Type): New procedure for checking
4743 the type, depending on language version. Disable the Ada 2020
4744 support until the corresponding expander work is done.
4745 (Analyze_Image_Attribute): Call Check_Image_Type. Rearrange the
4746 code to be simplier and more logical. When P_Type is modified,
4747 modify P_Base_Type accordingly.
4748 * sem_util.adb (Is_Object_Image): Do not return False if the
4749 prefix is a type. X'Image should be considered an image of an
4750 object iff X is an object (albeit illegal pre-2020 if
4753 2020-06-15 Bob Duff <duff@adacore.com>
4755 * libgnat/s-putima.ads, libgnat/s-putima.adb
4756 (Put_Image_Access_Subp, Put_Image_Access_Prot): New procedures
4757 for printing access-to-subprogram objects. Remove an explicit
4758 " ", because Put_Image includes the annoying leading blank.
4759 * rtsfind.ads: Add new procedures in s-putima.
4760 * exp_put_image.adb: Call new procedures as appropriate.
4762 2020-06-15 Bob Duff <duff@adacore.com>
4764 * exp_imgv.adb (Expand_Image_Attribute): Allow private types.
4765 Put_Image generates Image for numeric types, and private types
4766 whose full type is numeric. This requires the Conversion_OK flag
4767 for integer and floating-point types. For fixed point, we need
4768 the extra conversion.
4769 * exp_put_image.adb (Build_Elementary_Put_Image_Call): Remove
4770 special handling of real types.
4771 (Enable_Put_Image): Enable for reals.
4773 2020-06-15 Bob Duff <duff@adacore.com>
4775 * exp_attr.adb (Put_Image): Use underlying type for strings.
4776 Remove unchecked union processing.
4777 * exp_put_image.adb (Tagged_Put_Image_Enabled): Use -gnatd_z to
4778 enable default Put_Image for tagged types. This allows testing
4780 (Build_String_Put_Image_Call): Set Conversion_OK flag.
4781 (Make_Component_List_Attributes): Remove unchecked union
4783 (Enable_Put_Image): Disable for unchecked unions. Enable for
4784 nonscalar types (which were mistakenly disabled in earlier
4786 * debug.adb: Document -gnatd_z switch.
4787 * libgnat/s-putima.adb (Put_Image_String, Put_Image_Wide_String,
4788 Put_Image_Wide_Wide_String): Double double-quote characters.
4789 Forget about special handling of control characters for now --
4790 that's rare enough to not be a priority, and it's not clear what
4791 the right thing to do is anyway.
4792 * namet.adb: Minor: Improve debugger-friendliness.
4793 * sinfo.ads: Minor: Add "???" comment.
4795 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
4797 * sem_util.ads, sem_util.adb (Is_Renaming_Declaration): Remove.
4799 2020-06-15 Ed Schonberg <schonberg@adacore.com>
4801 * freeze.adb (Freeze_Expression): When traversing the tree
4802 looking for the proper insertion point for the freeze node of an
4803 entity that is declared in an outer scope, set the candidate
4804 subprogram body node properly. Previous code has an off-by-one
4807 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
4809 * exp_attr.adb (Expand_N_Attribute_Reference) <Has_Same_Storage>:
4810 Do not do superfluous work. Add the condition (X'Size /= 0) on
4811 both paths and turn binary AND into short-circuit AND THEN.
4813 2020-06-15 Steve Baird <baird@adacore.com>
4815 * sem_attr.adb (Analyze_Attribute): In the Loop_Entry case,
4816 replace a call to Statically_Denotes_Object with a call to
4817 Statically_Names_Object and clean up the preceding comment.
4819 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
4821 * sem_res.adb (Resolve_Set_Membership): Remove local variable.
4822 In the non-overloaded case, call Intersect_Types on the left
4823 operand and the first alternative to get the resolution type.
4824 But test the subtype of the left operand to give the warning.
4826 2020-06-12 Steve Baird <baird@adacore.com>
4828 * sem_res.adb (Valid_Conversion): The simpler cases of
4829 violations of the aforementioned 8.6 rule are already handled
4830 correctly. These include cases where the operand of the type
4831 conversion is an access parameter or a stand-alone object of an
4832 anonymous access type. Add code to detect violations where the
4833 operand of the type conversion is an access discriminant whose
4834 accessibility level is tied to one of the other simpler cases.
4835 This is implemented in a new function,
4836 Valid_Conversion.Is_Discrim_Of_Bad_Access_Conversion_Argument,
4837 which is called in place of the previous test.
4839 2020-06-12 Bob Duff <duff@adacore.com>
4841 * exp_attr.adb (Put_Image): Remove assertion. This assertion is
4842 False in mixed-Ada-version programs.
4843 * exp_put_image.adb (Tagged_Put_Image_Enabled): New flag to make
4844 it easy to experiment with Put_Image on tagged types. False in
4846 (Enable_Put_Image): Enable in pre-2020. Workarounds: Disable
4847 for tagged types if Tagged_Put_Image_Enabled is False. Disable
4848 for access-to-subprogram types. Disable if errors have been
4849 detected, or Sink is unavailable.
4850 (Preload_Sink): Move all conditionals here, from Sem_Ch10, so
4851 they can be nearby related code in Enable_Put_Image. Load Sink
4852 only if we have seen a tagged type. This removes the dilemma
4853 about calling Preload_Sink when compiling the compiler, which
4854 caused unwanted dependences.
4855 * exp_put_image.ads (Preload_Sink): New formal Compilation_Unit,
4856 needed to move all conditionals here, from Sem_Ch10.
4857 * libgnat/a-stouut.adb (Put_UTF_8): Make this suitable for
4858 inlining, so we don't get warnings about inlining in some tests.
4859 And so it can be inlined!
4860 * opt.ads (Tagged_Seen): New flag (see Preload_Sink).
4861 * scng.adb (Scan): Set new Tagged_Seen flag.
4862 * sem_ch10.adb (Analyze_Compilation_Unit): Move conditionals and
4863 comments regarding Preload_Sink into Preload_Sink.
4865 2020-06-12 Arnaud Charlet <charlet@adacore.com>
4867 * sem_res.adb (Resolve_Actuals): Check for AI12-0074.
4869 2020-06-12 Olivier Hainque <hainque@adacore.com>
4871 * libgnat/s-secsta.ads (Memory_Alignment): New constant, memory
4872 alignment for chunks and allocated blocks. Initialize to
4873 Standard'Maximum_Alignment * 2.
4874 (Chunk_Memory): Use it.
4875 * libgnat/s-secsta.adb (Round_Up): Likewise.
4877 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
4879 * par-prag.adb: Fix ordering.
4880 * snames.ads-tmpl (Name_Test_Case, Pragma_Test_Case): Likewise.
4881 * sem_prag.adb (Sig_Flags): Likewise.
4883 2020-06-12 Arnaud Charlet <charlet@adacore.com>
4885 * sem_res.adb (Resolve_Entity_Name): Fix handling of expressions
4886 containing array attributes wrt Ada 83 detection.
4888 2020-06-12 Steve Baird <baird@adacore.com>
4890 * sem_util.ads, sem_util.adb: Define 3 new Boolean-valued
4891 functions - Statically_Denotes_Entity,
4892 Statically_Denotes_Object, and Statically_Names_Object. The
4893 first two were taken from sem_attr.adb. The term "statically
4894 names" is defined in the Ada RM and the new function
4895 Statically_Names_Object is intended to reflect that definition,
4896 or more precisely, as described in a comment in the code, to
4897 reflect the expected future definition of that term.
4898 * sem_attr.adb: Delete functions Statically_Denotes_Object and
4899 Statically_Denotes_Entity; these two functions have been moved
4900 to package Sem_Util. Replace call to Statically_Denotes_Object
4901 with a call to Statically_Names_Object as per AI12-0217 (a
4902 binding interpretation, so no Ada_Version check).
4903 * exp_ch9.adb (Expand_Entry_Barrier.Is_Simple_Barrier): Change
4904 name of function (it was previously Is_Simple_Barrier_Name)
4905 because the function should return True in the case of a static
4906 expression; implement this requirement. Change function to
4907 include a call to Statically_Names_Object so that, for Ada_2020
4908 and later, it will return True for appropriate subcomponent
4910 (Expand_Entry_Barrier.Is_Pure_Barrier): Handle
4911 N_Indexed_Component and N_Selected_Component cases by calling
4912 Statically_Names_Object.
4913 (Expand_Entry_Barrier): Reorganize to treat Simple_Barriers and
4914 Pure_Barriers more uniformly. Prevent cascaded errors.
4916 2020-06-12 Ed Schonberg <schonberg@adacore.com>
4918 * sem_ch12.adb (Find_Matching_Actual): Add guard on search loops
4919 to detect a compilation error when using a compiler built
4921 (Instantiate_Formal_Subprogram): Create a new subprogram name
4922 for the actual only if formal has contract aspects and expansion
4925 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
4927 * exp_aggr.adb: Add with and use clauses for Sem_Mech.
4928 (Get_Base_Object): New function to get the base object of a node.
4929 (In_Place_Assign_OK): Add Target_Object parameter. Deal with a
4930 qualified expression on entry. Remove short-circuit for array
4931 aggregates with a single "others" choice. Do not look into the
4932 components of the aggregate if the parent is an allocator.
4933 (Check_Component): Add T_OK parameter and rewrite.
4934 (Safe_Component): Invoke Check_Component with T_OK set to False.
4935 (Convert_To_Assignments): Try to use an in-place assignment for
4936 any target; for that, call Get_Base_Object on the target and pass
4937 the result to In_Place_Assign_OK.
4938 (Expand_Array_Aggregate): Use Parent_Kind and Parent_Node more
4939 consistently. For an assignment, call Get_Base_Object on the
4940 target and pass the result to In_Place_Assign_OK.
4942 2020-06-12 Dmitriy Anisimkov <anisimko@adacore.com>
4944 * socket.c (__gnat_minus_500ms): Use GetVersionEx to detect
4945 Windows Server version.
4946 * libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): Remade to
4948 * libgnat/g-socket.adb (Set_Socket_Option): Use
4949 Minus_500ms_Windows_Timeout constant instead of function call.
4951 2020-06-12 Arnaud Charlet <charlet@adacore.com>
4953 * libgnat/a-coinho.ads, libgnat/a-coinho.adb,
4954 libgnat/a-coinho__shared.ads, libgnat/a-coinho__shared.adb
4955 (Swap): New procedure.
4957 2020-06-12 Arnaud Charlet <charlet@adacore.com>
4959 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do nothing for
4960 a subprogram declared in a protected body.
4961 * exp_ch9.ads, exp_ch9.adb
4962 (Build_Private_Protected_Declaration): Moved to sem_ch6.adb.
4963 (Expand_N_Protected_Body): Do nothing for a subprogram declared
4964 in a protected body.
4965 * sem_ch6.adb (Build_Internal_Protected_Declaration): Moved from
4966 exp_ch9.adb and renamed and fixed to ensure in particular that
4967 such subprograms have convention Intrinsic and have no protected
4969 (Analyze_Subprogram_Body_Helper): Call
4970 Build_Internal_Protected_Declaration.
4971 (Move_Pragmas): Moved up and merged with the more general
4972 version from Build_Private_Protected_Declaration. We only want
4973 to copy selected pragmas, most pragmas are not suitable for a
4976 2020-06-12 Ed Schonberg <schonberg@adacore.com>
4978 * sem_ch6.adb (Check_Overriding_Indicatior): Reject an
4979 overriding indicator on a subprogram declared within a protected
4982 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
4984 * contracts.adb, einfo.adb, sem_ch4.adb, sem_ch6.adb,
4985 sem_res.adb, sem_util.adb: Replace Ekind_In with Is_Entry.
4987 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
4989 * sem_res.adb (Resolve_Entry_Call): Add call to
4990 Warn_On_Overlapping_Actuals.
4992 2020-06-12 Arnaud Charlet <charlet@adacore.com>
4994 * aspects.ads (Is_Representation_Aspect): New array.
4995 * sem_ch13.adb (Analyze_Aspect_Specifications): Check
4996 13.1(9.2/5) for representation aspects.
4998 2020-06-12 Bob Duff <duff@adacore.com>
5000 * exp_put_image.ads, exp_put_image.adb (Preload_Sink): Procedure
5001 for preloading type Sink. This has the side effect of loading
5002 various dependents, including Ada.Strings.UTF_Encoding.
5003 (Enable_Put_Image): Disable Put_Image in pre-2020 versions of
5004 Ada. This limitation can probably be lifted later. Enable for
5005 tagged types except in predefined units. Disable for CPP types;
5006 Put_Image is legal, just prints the type name.
5007 * sem_attr.adb (Check_Put_Image_Attribute): Don't complain about
5008 Put_Image of CPP types; instead call the "unknown" version of
5010 * sem_ch10.adb (Analyze_Compilation_Unit): Call Preload_Sink.
5012 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5014 * sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify.
5016 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5018 * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove suppression
5021 2020-06-12 Arnaud Charlet <charlet@adacore.com>
5023 * exp_strm.adb (Build_Elementary_Input_Call): Add support for 24
5024 bits elementary types.
5025 * rtsfind.ads: Add 24 bits integer streaming routines.
5026 * sem_ch13.adb (Analyze_Attribute_Definition_Clause
5027 [Attribute_Stream_Size]): Add support for 24 bits elementary
5029 * libgnat/s-stratt.ads, libgnat/s-stratt.adb,
5030 libgnat/s-stratt__xdr.adb: Add support for signed and unsigned
5033 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5035 * sem_ch3.adb (Get_Discr_Value): Cleanup.
5037 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
5039 * rtsfind.ads (RTU_Id): Add System_Address_To_Access_Conversions.
5040 * sem_elab.adb (Elaboration_Phase_Active): Alphabetize.
5041 (Finalize_All_Data_Structures): Likewise.
5042 (Error_Preelaborated_Call): New procedure.
5043 (Build_Call_Marker): Set Is_Preelaborable_Call flag in marker.
5044 (Build_Access_Marker): Likewise.
5045 (Build_Subprogram_Invocation): Likewise.
5046 (Build_Task_Activation): Likewise.
5047 (Check_Preelaborated_Call): Return when the call is preelaborable.
5048 Call Error_Preelaborated_Call to give the error otherwise.
5049 (Check_Elab_Call): Likewise.
5050 * sem_util.adb (Is_Preelaborable_Function): New predicate.
5051 (Is_Non_Preelaborable_Construct.Visit): Recurse on the
5052 Explicit_Actual_Parameter field of N_Parameter_Association.
5053 (Is_Non_Preelaborable_Construct.Visit_Subexpression): In Ada 2020,
5054 for a call to a preelaborable function, visit the parameter list;
5055 otherwise, raise Non_Preelaborable exception.
5056 (Is_Preelaborable_Construct): Likewise, but recursively check the
5057 parameters instead and return false upon failure, otherwise true.
5058 * sinfo.ads (Is_Preelaborable_Call): New flag in call marker nodes.
5059 (Is_Preelaborable_Call): New inline function.
5060 (Set_Is_Preelaborable_Call): New inline procedure.
5061 * sinfo.adb (Is_Preelaborable_Call): New inline function.
5062 (Set_Is_Preelaborable_Call): New inline procedure.
5064 2020-06-12 Bob Duff <duff@adacore.com>
5066 * stringt.ads: Remove "use System;".
5068 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
5070 * sem_ch4.adb (Try_Container_Indexing): Replace call to
5071 First_Discriminant by Get_Reference_Discriminant to get the
5072 reference discriminant.
5073 * sem_ch13.adb (Check_Indexing_Functions): Likewise.
5074 * sem_ch5.adb (Preanalyze_Range): Call Get_Reference_Discriminant
5075 to get the reference discriminant.
5076 * sem_util.adb (Is_OK_Variable_For_Out_Formal): Treat all
5077 Ada 2012 implicit dereferences in only one place.
5078 (Is_Variable): Minor tweak.
5080 2020-06-12 Ed Schonberg <schonberg@adacore.com>
5082 * sem_ch12.adb (Has_Contracts): New predicate to check whether a
5083 formal subprogram carries an aspect specification for a pre- or
5085 (Build_Subprogram_Wrappers): If actual is overloaded, create a
5086 new name to be used in call inside wrapper body. This names
5087 carries the interpretations of the actual, and is resolved when
5088 the body is analyzed.
5089 (Build_Subprogram_Body_Wrapper): Use this generated name in
5091 (Build_Subprogram_Decl_Wrapper): Build profile of wrapper from
5092 the profile of formal, and reset type entities for subsequent
5095 2020-06-12 Bob Duff <duff@adacore.com>
5097 * debug.adb: Remove usage of -gnatd_z.
5098 * exp_attr.adb, exp_put_image.ads, exp_put_image.adb: Clean up
5099 the enable/disable code. If Put_Image is disabled for a type,
5100 systematically call the "unknown" version. Improve comments.
5101 Consolidate workarounds. Remove usage of -gnatd_z.
5103 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
5105 * sem_elab.adb: Fix typos in comments.
5107 2020-06-12 Justin Squirek <squirek@adacore.com>
5109 * sem_util.adb (Object_Access_Level): Add processing of implicit
5112 2020-06-12 Bob Duff <duff@adacore.com>
5114 * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
5115 libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
5116 libgnat/a-nbnbre.ads: Update Put_Image, and uncomment the aspect
5117 specification. Add pragmas Ada_2020.
5118 * libgnat/a-stouut.ads, libgnat/a-stteou.ads: Add Preelaborate,
5119 because the Big_Numbers packages have Preelaborate, and now
5120 depend on these Text_Output packages.
5122 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
5124 * einfo.ads (No_Return): Document it for all subprograms.
5125 * einfo.adb (Set_No_Return): Adjust assertion accordingly.
5126 * sem_ch3.adb (Check_Abstract_Overriding): Implement the
5127 check prescribed by RM 6.5.1(6/2) here instead of...
5128 (Derive_Subprogram): Adjust comment accordingly.
5129 * sem_disp.adb (Override_Dispatching_Operation): ...here.
5130 Remove superfluous return statement.
5131 * sem_ch6.adb (Check_No_Return_Expression): New procedure.
5132 (Analyze_Function_Return): Call it to implement the check
5133 prescribed by AI12-0269 for simple return statements of
5134 No_Return functions, and also checks extended statements.
5135 (Analyze_Return_Statement): Only give an error on a return
5136 statement in No_Return procedures. Use idiomatic form.
5137 * sem_ch8.adb (Analyze_Subprogram_Renaming): Adjust error
5138 message for No_Return renaming subprogram.
5139 * sem_prag.adb (Analyze_Pragma) <Pragma_No_Return>: Accept
5140 it on functions and generic functions in Ada 2020.
5142 2020-06-11 Eric Botcazou <ebotcazou@adacore.com>
5144 * sem_res.adb (Resolve_Implicit_Dereference): In an instance,
5145 reset the type of the prefix if it is private before building
5148 2020-06-11 Eric Botcazou <ebotcazou@adacore.com>
5150 * exp_util.adb (Safe_Unchecked_Type_Conversion): Add missing
5151 Is_Type guard before calling Has_Discriminants on Etype.
5153 2020-06-11 Bob Duff <duff@adacore.com>
5155 * libgnat/a-nbnbin__gmp.adb: There's no Optional_Big_Integer
5156 anymore. Invalid_Big_Integer is not used.
5157 Greatest_Common_Divisor returns Big_Positive.
5159 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5161 * sem_aggr.adb (Get_Value): Refine type of the Compon parameter.
5163 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5165 * sem_aggr.adb (Resolve_Record_Aggregate): Refine type of
5168 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5170 * checks.adb, exp_ch7.adb, exp_ch9.adb, exp_smem.adb, lib.adb,
5171 nlists.adb, sem.adb, sem_aggr.adb, sem_ch3.adb, sem_ch6.adb,
5172 sem_ch8.adb, sem_dim.adb, sem_res.adb, sem_util.adb,
5173 sem_warn.adb: Replace uses of Next function with procedure.
5175 2020-06-11 Eric Botcazou <ebotcazou@adacore.com>
5177 * exp_pakd.ads: Add paragraph about scalar storage order.
5178 * exp_pakd.adb (Install_PAT): Do not set the scalar storage
5179 order of the PAT here but...
5180 (Set_PB_Type): ...here instead and...
5181 (Create_Packed_Array_Impl_Type): ...here as well.
5182 * rtsfind.ads (RE_Id): Add RE_Rev_Packed_Bytes{1,2,4}.
5183 (RE_Unit_Table): Likewise.
5184 * libgnat/s-unstyp.ads (Rev_Packed_Bytes1): New derived type.
5185 (Rev_Packed_Bytes2): Likewise.
5186 (Rev_Packed_Bytes4): Likewise.
5188 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5190 * sem_ch4.adb, sem_ch6.adb, sem_res.adb, sem_util.ads: Fix
5191 references to SPARK RM 7.1.3 rule numbers.
5193 2020-06-11 Ed Schonberg <schonberg@adacore.com>
5195 * sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify code,
5196 remove inner predicate Is_Covered_Formal, preserve warning for
5197 two overlapping composite types when only one is writable, and
5198 for two overlapping and writable elementary types.
5200 2020-06-11 Steve Baird <baird@adacore.com>
5202 * contracts.adb (Add_Contract_Item): Support specifying
5203 volatility refinement aspects for types.
5204 (Analyze_Contracts): Add call to Analyze_Type_Contract in the
5205 case of a contract for a type.
5206 (Freeze_Contracts): Add call to Analyze_Type_Contract in the
5207 case of a contract for a type.
5208 (Check_Type_Or_Object_External_Properties): A new procedure
5209 which performs the work that needs to be done for both object
5210 declarations and types.
5211 (Analyze_Object_Contract): Add a call to
5212 Check_Type_Or_Object_External_Properties and remove the code in
5213 this procedure which did much of the work that is now performed
5215 (Analyze_Type_Contract): Implement this new routine as nothing
5216 more than a call to Check_Type_Or_Object_External_Properties.
5217 * contracts.ads: Update comment for Add_Contract_To_Item because
5218 types can have contracts. Follow (questionable) precedent and
5219 declare new routine Analyze_Type_Contract as visible (following
5220 example of Analyze_Object_Contract), despite the fact that it is
5221 never called from outside of the package where it is declared.
5222 * einfo.adb (Contract, Set_Contract): Id argument can be a type;
5224 (Write_Field34_Name): Field name is "contract" for a type.
5225 * einfo.ads: Update comment describing Contract attribute.
5226 * sem_ch3.adb (Build_Derived_Numeric_Type): Is_Volatile should
5227 return same answer for all subtypes of a given type. Thus, when
5228 building the base type for something like type Volatile_1_To_10
5229 is range 1 .. 10 with Volatile; that basetype should be marked
5231 (Access_Type_Declaration): Add SPARK-specific legality check
5232 that the designated type of an access type shall be compatible
5233 with respect to volatility with the access type.
5234 * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Add
5235 SPARK-specific legality check that an actual type parameter in
5236 an instantiation shall be compatible with respect to volatility
5237 with the corresponding formal type.
5238 * sem_ch13.adb (Analyze_Aspect_Specifications): Perform checks
5239 for aspect specs for the 4 volatility refinement aspects that
5240 were already being performed for all language-defined aspects.
5241 * sem_prag.adb (Analyze_External_Property_In_Decl_Part,
5242 Analyze_Pragma): External properties (other than No_Caching) may
5243 be specified for a type, including a generic formal type.
5244 * sem_util.ads: Declare new subprograms - Async_Readers_Enabled,
5245 Async_Writers_Enabled, Effective_Reads, Effective_Writes, and
5246 Check_Volatility_Compatibility.
5247 * sem_util.adb (Async_Readers_Enabled, Async_Writers_Enabled,
5248 Effective_Reads, Effective_Writes): Initial implementation of
5249 new functions for querying aspect values.
5250 (Check_Volatility_Compatibility): New procedure intended for use
5251 in checking all SPARK legality rules of the form "<> shall be
5252 compatible with respect to volatility with <>".
5253 (Has_Enabled_Property): Update comment because Item_Id can be a
5254 type. Change name of nested Variable_Has_Enabled_Property
5255 function to Type_Or_Variable_Has_Enabled_Property; add a
5256 parameter to that function because recursion may be needed,
5257 e.g., in the case of a derived typ). Cope with the case where
5258 the argument to Has_Enabled_Property is a type.
5260 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5262 * sem_aggr.adb (Add_Association): Add assertion about the formal
5264 (Propagate_Discriminants): Always add an explicit component
5265 association, so that an "others => <>" association is never
5268 2020-06-11 Bob Duff <duff@adacore.com>
5270 * exp_put_image.adb (Build_Elementary_Put_Image_Call): If the
5271 underlying type is real, call Put_Image_Unknown.
5272 (Build_Unknown_Put_Image_Call): Pass the type name to
5274 * libgnat/s-putima.ads, libgnat/s-putima.adb
5275 (Put_Image_Unknown): Add Type_Name parameter. Remove
5276 overly-detailed documentation of what it does; better to leave
5279 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5281 * sem_ch3.adb (Build_Constrained_Array_Type,
5282 Build_Constrained_Discriminated_Type): Skip unnecessary loop
5285 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5287 * sem_aggr.adb (Build_Constrained_Itype): Move to Sem_Util.
5288 * sem_ch3.adb (Build_Subtype, Inherit_Predicate_Flags): Move...
5289 * sem_util.adb (Build_Subtype): Here. Add parameters for
5290 references to objects previously declared in enclosing scopes.
5291 (Inherit_Predicate_Flags): And here, because it is called by
5293 * sem_util.ads (Build_Overriding_Spec): Reorder alphabetically.
5294 (Build_Subtype): Moved from Sem_Ch3; comments updated.
5295 (Build_Constrained_Itype): Moved from Sem_Aggr; comments
5298 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5300 * sem_aggr.adb (Case_Table_Type): Change index type from Nat to
5303 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5305 * sem_aggr.adb (Build_Constrained_Itype): Previously a declare
5306 block, now a separate procedure; the only change is that now
5307 New_Assoc_List might include components and an others clause,
5308 which we ignore (while we deal with discriminants exactly as we
5309 did before); extend a ??? comment about how this routine is
5310 different from the Build_Subtype
5311 (Resolve_Record_Aggregate): Create a constrained itype not just
5312 for the outermost record aggregate, but for its inner record
5315 2020-06-11 Eric Botcazou <ebotcazou@adacore.com>
5317 * checks.adb (Build_Discriminant_Checks): Build an explicit
5318 dereference when the type is an access type.
5319 * exp_atag.adb (Build_CW_Membership): Add explicit dereferences.
5320 (Build_Get_Access_Level): Likewise.
5321 (Build_Get_Alignment): Likewise.
5322 (Build_Inherit_Prims): Likewise.
5323 (Build_Get_Transportable): Likewise.
5324 (Build_Set_Size_Function): Likewise.
5325 * exp_ch3.adb (Build_Offset_To_Top_Function): Likewise.
5326 * exp_ch4.adb (Expand_Allocator_Expression): Likewise.
5327 (Expand_N_Indexed_Component ): Remove code dealing with implicit
5329 (Expand_N_Selected_Component): Likewise.
5330 (Expand_N_Slice): Likewise.
5331 * exp_ch9.adb (Add_Formal_Renamings): Add explicit dereference.
5332 (Expand_Accept_Declarations): Likewise.
5333 (Build_Simple_Entry_Call): Remove code dealing with implicit
5335 (Expand_N_Requeue_Statement): Likewise.
5336 * exp_disp.adb (Expand_Dispatching_Call): Build an explicit
5337 dereference when the controlling type is an access type.
5338 * exp_spark.adb (Expand_SPARK_N_Selected_Component): Delete.
5339 (Expand_SPARK_N_Slice_Or_Indexed_Component): Likewise.
5340 (Expand_SPARK): Do not call them.
5341 * sem_ch4.adb (Process_Implicit_Dereference_Prefix): Delete.
5342 (Process_Indexed_Component): Call Implicitly_Designated_Type
5343 to get the designated type for an implicit dereference.
5344 (Analyze_Overloaded_Selected_Component): Do not insert an
5345 explicit dereference here.
5346 (Analyze_Selected_Component): Likewise.
5347 (Analyze_Slice): Call Implicitly_Designated_Type to get the
5348 designated type for an implicit dereference.
5349 * sem_ch8.adb (Has_Components): New predicate extracted from...
5350 (Is_Appropriate_For_Record): ...this. Delete.
5351 (Is_Appropriate_For_Entry_Prefix): Likewise.
5352 (Analyze_Renamed_Entry): Deal with implicit dereferences.
5353 (Find_Selected_Component): Do not insert an explicit dereference
5354 here. Call Implicitly_Designated_Type to get the designated type
5355 for an implicit dereference. Call Has_Components, Is_Task_Type
5356 and Is_Protected_Type directly. Adjust test for error.
5357 * sem_res.adb (Resolve_Implicit_Dereference): New procedure.
5358 (Resolve_Call): Call Resolve_Indexed_Component last.
5359 (Resolve_Entry): Call Resolve_Implicit_Dereference on the prefix.
5360 (Resolve_Indexed_Component): Call Implicitly_Designated_Type to
5361 get the designated type for an implicit dereference and
5362 Resolve_Implicit_Dereference on the prefix at the end.
5363 (Resolve_Selected_Component): Likewise.
5364 (Resolve_Slice): Likewise. Do not apply access checks here.
5365 * sem_util.ads (Implicitly_Designated_Type): Declare.
5366 * sem_util.adb (Copy_And_Maybe_Dereference): Simplify.
5367 (Implicitly_Designated_Type): New function.
5368 (Object_Access_Level): Fix typo.
5369 * sem_warn.adb (Check_Unset_Reference): Test Comes_From_Source
5370 on the original node.
5372 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5374 * exp_disp.adb: Minor reformatting.
5375 * exp_aggr.adb (Is_Static_Dispatch_Table_Aggregate): Recognize
5376 aggregates of the Ada.Tags.Object_Specific_Data type as static.
5377 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Deconstruct
5378 and do not call it from Build_Constrained_Itype.
5380 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5382 * exp_disp.adb (Make_Secondary_DT): Internally generated OSD
5383 tables are now constant.
5385 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5387 * exp_aggr.adb (Backend_Processing_Possible): Remove useless
5390 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5392 * opt.ads (Building_Static_Dispatch_Tables): Fix punctuation in
5395 2020-06-11 Arnaud Charlet <charlet@adacore.com>
5397 * libgnat/s-stposu.ads (Root_Storage_Pool_With_Subpools,
5398 Root_Subpool): Mark with Preelaborable_Initialization.
5400 2020-06-11 Javier Miranda <miranda@adacore.com>
5402 * exp_ch9.adb (Expand_N_Conditional_Entry_Call): Replace call to
5403 New_Copy_List by calls to the new routine
5404 New_Copy_Separate_List.
5405 * sem_util.ads (New_Copy_Separate_List, New_Copy_Separate_Tree):
5407 * sem_util.adb (New_Copy_Separate_List, New_Copy_Separate_Tree):
5409 (New_Copy_Tree): Extend the machinery that detects syntactic
5410 nodes to handle lists of indentifiers with field More_Ids;
5411 otherwise such nodes are erroneously handled as semantic nodes.
5412 Copy aspect specifications attached to nodes.
5413 * sem_ch12.adb (Copy_Generic_Node): Protect reading attribute
5416 2020-06-11 Bob Duff <duff@adacore.com>
5418 * sem_ch13.adb (Analyze_Aspect_Specifications): Do not set the
5419 Has_Predicates flag when the Predicate_Failure aspect is seen.
5420 It is legal (but pointless) to use this aspect without a
5421 predicate. If we set the flag, we generate a half-baked
5422 Predicate procedure, and if that procedure is nested, it causes
5425 2020-06-11 Bob Duff <duff@adacore.com>
5427 * exp_put_image.adb (Build_Record_Put_Image_Procedure): Remove
5428 special processing of protected types, because those are handled
5429 by Build_Protected_Put_Image_Call.
5430 (Enable_Put_Image): Use the switch -gnatd_z to control enabling
5431 of Put_Image. Disable Put_Image for types in Remote_Types
5433 * debug.adb: Document -gnatd_z switch.
5434 * exp_imgv.adb, libgnat/a-stteou.ads, opt.ads: Minor cleanups.
5436 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
5438 * sem_warn.adb (Warn_On_Overlapping_Actuals): Add label to the
5439 outer loop and use it in the exit statement.
5441 2020-06-11 Ghjuvan Lacambre <lacambre@adacore.com>
5443 * exp_ch3.adb (Build_Assignment): Generate predicate check if
5444 subtype mark has predicate.
5446 2020-06-11 Justin Squirek <squirek@adacore.com>
5448 * sem_util.adb (Expand_N_Attribute_Reference): Use original
5449 nodes where required to avoid looking at the expanded tree.
5451 2020-06-11 Arnaud Charlet <charlet@adacore.com>
5453 * libgnat/a-catizo.ads, libgnat/a-nbnbin.ads,
5454 libgnat/a-nbnbre.ads, libgnat/a-nubinu.ads,
5455 libgnat/s-aoinar.ads, libgnat/s-aomoar.ads,
5456 libgnat/s-aotase.ads, libgnat/s-stopoo.ads: Remove aspects that
5457 we will not implement.
5459 2020-06-11 Arnaud Charlet <charlet@adacore.com>
5461 * libgnat/s-aoinar.adb (Atomic_Fetch_And_Add,
5462 Atomic_Fetch_And_Subtract): Add fallback using
5463 compare-and-exchange, in case the integer type does not map to a
5466 2020-06-10 Arnaud Charlet <charlet@adacore.com>
5468 * libgnat/s-aomoar.ads, libgnat/s-aomoar.adb: New files.
5469 * libgnat/s-atopar.ads: Move...
5470 * libgnat/s-aoinar.ads: Here.
5471 * libgnat/s-atopar.adb: Move...
5472 * libgnat/s-aoinar.adb: Here.
5473 * impunit.adb: Update list of runtime files.
5474 * Makefile.rtl (GNATRTL_NONTASKING_OBJS=): Adjust.
5476 2020-06-10 Arnaud Charlet <charlet@adacore.com>
5478 * snames.ads-tmpl (Name_Characters_Assertion_Check,
5479 Name_Containers_Assertion_Check,
5480 Name_Interfaces_Assertion_Check, Name_IO_Assertion_Check,
5481 Name_Numerics_Assertion_Check, Name_Strings_Assertion_Check,
5482 Name_System_Assertion_Check): New constants.
5483 * types.ads (Characters_Assertion_Check,
5484 Containers_Assertion_Check, Interfaces_Assertion_Check,
5485 IO_Assertion_Check, Numerics_Assertion_Check,
5486 Strings_Assertion_Check, System_Assertion_Check): New constants.
5487 (All_Checks): Update accordingly.
5489 2020-06-10 Ghjuvan Lacambre <lacambre@adacore.com>
5491 * exp_ch3.adb (Build_Equivalent_Record_Aggregate): Return Empty
5492 if Etype of record component has predicates.
5494 2020-06-10 Arnaud Charlet <charlet@adacore.com>
5496 * exp_ch3.adb (Build_Init_Statements): Implement the notion of
5497 "require late initialization".
5499 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
5501 * sem_util.adb (Copy_And_Maybe_Dereference): Temporarily copy
5502 the parent node of the original tree when dereferencing.
5504 2020-06-10 Ed Schonberg <schonberg@adacore.com>
5506 * sem_warn.adb (Warn_On_Overlapping_Actuals): Add a warning when
5507 two actuals in a call overlap, both are composite types that may
5508 be passed by reference, and only one of them is writable.
5510 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
5512 * exp_ch4.adb (Expand_N_In): Use an expression with actions to
5513 insert the PE raise statement for the Unchecked_Union case.
5515 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
5517 * sem_ch4.adb (Analyze_Call): Use idiomatic condition.
5518 * sem_res.adb (Resolve_Call): Remove obsolete code.
5520 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
5522 * sem_util.adb (Copy_And_Maybe_Dereference): New function.
5523 (Build_Access_Record_Constraint): Use it to copy the prefix.
5524 (Build_Actual_Array_Constraint): Likewise.
5525 (Build_Actual_Record_Constraint): Likewise.
5527 2020-06-10 Bob Duff <duff@adacore.com>
5529 * sem_prag.adb (Invariant): Remove the pragma removing code. It
5530 doesn't work to remove the pragma, because various flags are set
5531 during Build_Invariant_Procedure_Declaration and
5532 Build_Invariant_Procedure_Body that need to be set to avoid the
5534 * exp_util.adb (Make_Invariant_Call): Avoid calling the
5535 invariant-checking procedure if the body is empty. This is an
5538 2020-06-10 Vasiliy Fofanov <fofanov@adacore.com>
5540 * doc/gnat_ugn/gnat_utility_programs.rst: Fix gnatmetric
5541 switches description.
5543 2020-06-10 Arnaud Charlet <charlet@adacore.com>
5545 * repinfo-input.ads, repinfo-input.adb, repinfo.adb,
5546 repinfo.ads: Update header.
5548 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
5550 * exp_aggr.adb (In_Place_Assign_OK): Do not necessarily return
5551 false for a type with discriminants.
5552 (Convert_To_Assignments): Use Parent_Node and Parent_Kind more
5553 consistently. In the in-place assignment case, first apply a
5554 discriminant check if need be, and be prepared for a rewritten
5555 aggregate as a result.
5557 2020-06-10 Arnaud Charlet <charlet@adacore.com>
5559 * atree.adb, contracts.adb, debug.adb, freeze.adb,
5560 repinfo-input.adb, repinfo.adb, sem_attr.adb, sem_ch10.adb,
5561 sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb,
5562 sem_ch8.adb, sem_ch9.adb, sem_disp.adb, sem_eval.adb,
5563 sem_prag.adb: Remove more references to ASIS.
5565 2020-06-10 Arnaud Charlet <charlet@adacore.com>
5567 * libgnat/s-secsta.adb (Round_Up): Fix typo in exception
5570 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
5572 * par-ch4.adb (P_Membership_Test): Fix typo in a grammar rule.
5574 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
5576 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove
5577 expansion of First and Last attributes.
5579 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
5581 * exp_attr.adb (Expand_N_Attribute_Reference): Remove folding
5582 for Enum_Rep attribute.
5583 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove
5584 duplicated code for folding Enum_Rep attribute.
5585 * sem_attr.adb (Eval_Attribute): Relax condition for folding
5586 Enum_Rep attribute; previously dead code is now executed when
5587 the attribute prefix is an enumeration literal; refine type in
5588 processing of Enum_Val.
5590 2020-06-10 Javier Miranda <miranda@adacore.com>
5592 * sem_ch3.adb (Analyze_Declarations): Adjust the machinery that
5593 takes care of late body overriding of initialize, adjust,
5594 finalize. Remove ASIS mode code.
5596 2020-06-10 Ed Schonberg <schonberg@adacore.com>
5598 * einfo.ads (Access_Subprogram_Wrapper): New attribute of
5599 Subprogram_Type entities. Denotes subprogram constructed for
5600 Access_To_Subprogram types that include pre- and postconditions.
5601 * einfo.adb: Subprogram bodies for Access_Subprogram_Wrapper.
5602 * exp_ch6.adb (Expand_Call): An indirect call through an
5603 Access_To_subprogram that includes contracts is rewritten as a
5604 call to the corresponding Access_ ubprogram_Wrapper. Handle
5605 derived types that inherit contract from parent.
5606 * sem_prag.adb (Build_Access_Subprogram_Wrapper): Build
5607 subprogram declaration for subprogram that incorporates the
5608 contracts of an Access_To_Subprogram type declaration. Build
5609 corresponding body and attach it to freeze actions for type.
5610 * sem_util.ads, sem_util.adb (Is_Access_Subprogram_Wrapper):
5611 Utility that uses signature of the subprogram to determine
5612 whether it is a generated wrapper for an Access_To_Subprogram
5615 2020-06-10 Ghjuvan Lacambre <lacambre@adacore.com>
5617 * par-ch6.adb (P_Subprogram): Make sure the specification
5618 belongs to a procedure.
5620 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
5622 * sem_ch13.adb (All_Membership_Choices_Static): Assert an AST
5623 property documented in sinfo.ads and simplify an excessive
5626 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
5628 * exp_attr.adb (Expand_N_Attribute_Reference): Fix a copy-paste
5630 * sem_res.adb (Flag_Effectively_Volatile_Objects): Fix a type in
5631 the SPARK RM rule number.
5632 * exp_ch4.adb, sem_util.adb: Fix style in single line comments.
5634 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
5636 * sem_aux.ads, sem_aux.adb (Get_Low_Bound): Remove.
5638 2020-06-10 Arnaud Charlet <charlet@adacore.com>
5640 * scn.adb (Determine_License): Remove.
5642 2020-06-10 Justin Squirek <squirek@adacore.com>
5644 * exp_ch3.adb (Expand_N_Object_Declaration): Add condition to
5645 handle processing of objects initialized by a call to a function
5646 return an anonymous access type.
5647 * exp_ch6.adb, exp_ch6.ads
5648 (Has_Unconstrained_Access_Discriminants): Moved to sem_util.adb
5649 (Needs_Result_Accessibility_Level): Moved to sem_util.adb
5650 * sem_util.adb, sem_util.ads
5651 (Has_Unconstrained_Access_Discriminants): Moved from exp_ch6.adb
5652 (Needs_Result_Accessibility_Level): Moved from exp_ch6.adb
5653 * sem_res.adb (Valid_Conversion): Add condition for the special
5654 case where the operand of a conversion is the result of an
5655 anonymous access type
5657 2020-06-10 Ghjuvan Lacambre <lacambre@adacore.com>
5659 * par-ch6.adb (P_Subprogram): Reject duplicate subprogram
5662 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
5664 * exp_ch6.adb (Insert_Post_Call_Actions): Deal with the context
5665 of an if-expression and with a call written in prefixed notation.
5667 2020-06-10 Gary Dismukes <dismukes@adacore.com>
5669 * einfo.ads: Minor reformatting of a comment.
5670 * exp_aggr.adb: Minor reformatting and a grammar correction.
5671 * exp_attr.adb: Minor reformatting and a typo fix in some
5673 * sem_ch12.adb: Fix three typos in comments.
5675 2020-06-09 Javier Miranda <miranda@adacore.com>
5677 * sem_ch6.adb (New_Overloaded_Entity): Add missing call to check
5678 subtype conformance of overriding dispatching primitive.
5679 * sem_eval.adb (Subtypes_Statically_Match): Handle derivations
5680 of private subtypes.
5681 * libgnat/g-exptty.adb, libgnat/g-exptty.ads
5682 (Set_Up_Communications): Fix the profile since null-exclusion is
5683 missing in the access type formals.
5684 * sem_disp.ads (Check_Operation_From_Private_View): Adding
5687 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
5689 * einfo.ads (XEINFO section): Update format description.
5690 (Is_Subprogram_Or_Entry): Move pragma to regular section.
5691 (Is_Subprogram_Or_Generic_Subprogram): Likewise.
5692 * xeinfo.adb (Get_B4): Rename to...
5694 (Translate_Expr): New procedure extracted from...
5695 (XEinfo): ...here. Try to apply Get_B0 first and then
5696 call Translate_Expr to translate supported constructs.
5698 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
5700 * exp_ch6.adb (Freeze_Subprogram): Deal with convention C_Family.
5701 * freeze.adb (Freeze_Profile): Likewise. Add missing guard.
5702 * sem_mech.adb (Set_Mechanisms): Likewise.
5703 * lib-xref.adb (Output_Import_Export_Info): Ditto for C_Variadic.
5704 * repinfo.adb (List_Subprogram_Info): Likewise.
5705 * sem_prag.adb (Set_Convention_From_Pragma): Move main checks for
5707 (Process_Convention): ...here. Add checks for C_Variadic.
5708 * snames.ads-tmpl: Add Name_C_Variadic_0 .. Name_C_Variadic_16.
5709 Use consistent format for subtype declarations.
5710 (Convention_Id): Add Convention_C_Variadic_0 .. C_Variadic_16
5711 and move Convention_CPP up.
5712 (Convention_C_Family): New subtype of Convention_Id.
5713 (Convention_C_Variadic): Likewise.
5714 (Foreign_Convention): Use explicit upper bound.
5715 Add pragma Inline for Is_Configuration_Pragma_Name,
5716 Is_Function_Attribute_Name, Is_Internal_Attribute_Name
5717 and Is_Procedure_Attribute_Name.
5718 * snames.adb-tmpl (Get_Convention_Id): Deal with Name_Variadic_n.
5719 (Get_Convention_Name): Deal with Convention_Variadic_n.
5720 * types.h (Convention_Id): New typedef.
5721 * xsnamest.adb (Name2): New variable.
5722 (Is_Conv): New pattern.
5723 (Get_Subt1): Likewise.
5724 (Get_Subt2): Likewise.
5725 Output subtypes of Convention_Id into the C header file.
5727 2020-06-09 Arnaud Charlet <charlet@adacore.com>
5729 * exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch9.adb,
5730 exp_disp.adb, exp_util.adb: Add comments related to errors that
5731 should be moved to semantic analysis. Also replace "?" with "??"
5732 in warning messages.
5734 2020-06-09 Arnaud Charlet <charlet@adacore.com>
5736 * libgnat/a-strunb__shared.ads, libgnat/a-strunb__shared.adb
5737 (Reference, Unreference): No-op for Empty_Shared_String.
5738 Remove unneeded calls to Reference.
5740 2020-06-09 Arnaud Charlet <charlet@adacore.com>
5742 * exp_ch5.adb (Expand_N_Assignment): Remove kludge for
5744 * sem_ch12.adb (Validate_Derived_Type_Instance): Implement
5745 AI05-0087 retroactively since it's a binding interpretation.
5747 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
5749 * einfo.ads (Has_Foreign_Convention): Fix description.
5750 (Component_Alignment): Move around.
5751 (Has_DIC): Likewise.
5752 (Has_Interrupt_Handler): Likewise.
5753 (Has_Invariants): Likewise.
5754 (Is_Atomic_Or_VFA): Likewise.
5755 (Next_Index): Likewise.
5756 (Scope_Depth): Likewise.
5757 (Init_Component_Size): Likewise.
5758 (Init_Component_Location): Likewise.
5759 (Init_Size): Likewise.
5760 (Inline Pragmas for functions): Add Corresponding_Function,
5761 Corresponding_Procedure, Entry_Max_Queue_Lengths_Array,
5762 Finalize_Storage_Only, Has_DIC, Has_Invariants,
5763 Initialization_Statements, Is_Anonymous_Access_Type,
5764 Next_Stored_Discriminant, Address_Clause, Alignment_Clause,
5765 Float_Rep, Has_Foreign_Convention, Has_Non_Limited_View,
5766 Is_Constant_Object, Is_Discriminal, Is_Finalizer, Is_Null_State,
5767 Is_Prival, Is_Protected_Component, Is_Protected_Record_Type,
5768 Is_Subprogram_Or_Entry, Is_Task_Record_Type, Size_Clause,
5769 Stream_Size_Clause, Type_High_Bound, Type_Low_Bound, Known_*,
5771 (Inline Pragmas for procedures): Add Set_Corresponding_Function,
5772 Set_Corresponding_Procedure, Set_Finalize_Storage_Only,
5773 Set_Float_Rep, Set_Initialization_Statements,
5774 Init_Normalized_First_Bit, Init_Normalized_Position,
5775 Init_Normalized_Position_Max.
5776 * einfo.adb (Was_Hidden): Move around.
5777 (Is_Packed_Array): Likewise.
5778 (Model_Emin_Value): Likewise.
5779 (Model_Epsilon_Value): Likewise.
5780 (Model_Mantissa_Value): Likewise.
5781 (Model_Small_Value): Likewise.
5783 2020-06-09 Ed Schonberg <schonberg@adacore.com>
5785 * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
5786 exact match between formal and actual for aspects Atomic and
5787 Volatile only for formal derived types.
5789 2020-06-09 Arnaud Charlet <charlet@adacore.com>
5791 * exp_util.adb (Side_Effect_Free): Improve handling of
5794 2020-06-09 Ghjuvan Lacambre <lacambre@adacore.com>
5796 * sem_res.adb (Resolve_Qualified_Expression): Use Subtype_Mark
5799 2020-06-09 Arnaud Charlet <charlet@adacore.com>
5801 * exp_aggr.adb (Max_Aggregate_Size): New function to factorize
5803 (Convert_To_Positional, Aggr_Size_OK): Use Max_Aggregate_Size.
5805 2020-06-09 Arnaud Charlet <charlet@adacore.com>
5807 * sem_util.ads, sem_util.adb (Set_Debug_Info_Defining_Id): New.
5808 * exp_ch3.adb, exp_ch8.adb: Call Set_Debug_Info_Defining_Id when
5811 2020-06-09 Justin Squirek <squirek@adacore.com>
5813 * einfo.ads (Returns_By_Ref): Modify documentation to reflect
5814 that Returns_By_Ref can be applied to E_Subprogram_Type
5817 2020-06-09 Justin Squirek <squirek@adacore.com>
5819 * exp_attr.adb (Expand_N_Attribute_Reference): Modify expansion
5820 of 'Overlaps_Storage to take into account zero sized arrays.
5822 2020-06-09 Bob Duff <duff@adacore.com>
5824 * bindo-graphs.adb, bindo-graphs.ads: For each invocation graph,
5825 record the corresponding library graph.
5826 * bindo-writers.adb (Write_Invocation_Graph_Vertex): Print the
5827 lib item name. Remove library graph parameters.
5828 * bindo-augmentors.adb, bindo-augmentors.ads,
5829 bindo-builders.adb, bindo-diagnostics.adb,
5830 bindo-diagnostics.ads, bindo-elaborators.adb: Remove library
5833 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
5835 * checks.adb (Apply_Predicate_Check): Extend trick used for
5836 aggregates to qualified aggregates and object declarations
5837 * einfo.ads (Has_Own_DIC): Mention the underlying full view.
5838 (Has_Own_Invariants): Likewise.
5839 (Has_Predicates): Likewise.
5840 * exp_util.adb (Build_DIC_Procedure_Declaration): Do not deal
5841 with base types explicitly but with underlying full views.
5842 (Build_Invariant_Procedure_Declaration): Likewise.
5843 * sem_ch13.adb (Build_Predicate_Functions): Do not deal with
5844 the full view manually but call Propagate_Predicate_Attributes
5845 to propagate attributes to views.
5846 (Build_Predicate_Function_Declaration): Likewise.
5847 * sem_ch3.adb (Build_Assertion_Bodies_For_Type): Build bodies
5848 for private full views with an underlying full view.
5849 (Build_Derived_Private_Type): Small comment tweak.
5850 (Complete_Private_Subtype): Call Propagate_Predicate_Attributes.
5851 (Process_Full_View): Do not deal with base types explicitly for
5852 DIC and Invariant attributes. Deal with underlying full views
5853 for them. Call Propagate_Predicate_Attributes and deal with
5854 underlying full views for them.
5855 * sem_ch7.adb (Preserve_Full_Attributes): Do not cross propagate
5856 DIC and Invariant attributes between full type and its base type.
5857 Propagate Predicate attributes from the full to the private view.
5858 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Likewise.
5859 (Analyze_Task_Type_Declaration): Likewise.
5860 * sem_util.ads (Get_Views): Remove Full_Base parameter and add
5861 UFull_Typ parameter.
5862 (Propagate_Predicate_Attributes): New procedure.
5863 * sem_util.adb (Get_Views): Remove Full_Base parameter and add
5864 UFull_Typ parameter. Retrieve the Corresponding_Record_Type
5865 from the underlying full view, if any.
5866 (Propagate_DIC_Attributes): Remove useless tests.
5867 (Propagate_Invariant_Attributes): Likewise.
5868 (Propagate_Predicate_Attributes): New procedure.
5870 2020-06-09 Justin Squirek <squirek@adacore.com>
5872 * exp_ch5.adb (Expand_Predicated_Loop): Perserve the original
5873 loop identifier within the expansion.
5875 2020-06-09 Bob Duff <duff@adacore.com>
5877 * bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder enumerals
5878 to reflect the order of adding edges. Clarify comments.
5879 * bindo-graphs.adb (Add_Edge_Kind_Check): Correct the
5880 assertions. Reorder the "when"s to match the order of adding
5881 edges, and therefore the order of enumerals in type
5882 Library_Graph_Edge_Kind. Change names to "Old_" and "New_" to
5883 clarify what's what. Combine Invocation_Edge into the "<="
5884 test. Fix the "raise Program_Error" message, which was
5887 2020-06-09 Bob Duff <duff@adacore.com>
5889 * bindo-graphs.adb (Add_Edge_Kind_Check): Add the Image of the
5890 old and new Kinds to the raise Program_Error message.
5892 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
5894 * sem_ch3.adb (Is_Visible_Component): Do not special-case
5895 bodies of instances.
5897 2020-06-09 Arnaud Charlet <charlet@adacore.com>
5899 * exp_ch4.adb (Expand_N_In): Fix handling of null exclusion.
5901 2020-06-09 Ed Schonberg <schonberg@adacore.com>
5903 * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
5904 exact match between formal and actual for aspects Atomic,
5905 Atomic_Component, Volatile, and Volatile_Components.
5907 2020-06-09 Bob Duff <duff@adacore.com>
5909 * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
5910 the --no-separate-return switch of gnatpp.
5912 2020-06-09 Arnaud Charlet <charlet@adacore.com>
5914 * sem_warn.adb (Warn_On_Constant_Valid_Condition): Add proper
5917 2020-06-09 Arnaud Charlet <charlet@adacore.com>
5919 * sem_type.adb (Covers): Fix implementation of AI05-0149.
5920 * sem_res.adb: Fix typo.
5922 2020-06-09 Ed Schonberg <schonberg@adacore.com>
5924 * exp_ch9.adb (Build_Master_Renaming): Make name in renaming
5925 declaration unique by adding a numeric suffix, to prevent
5926 accidental name conflict when several instantiations of a
5927 package containing an access_to_incomplete type that designate
5928 tasks appear in the same scope.
5930 2020-06-09 Piotr Trojanek <trojanek@adacore.com>
5932 * libgnarl/a-synbar.ads, libgnarl/a-synbar.adb,
5933 libgnarl/a-synbar__posix.ads, libgnarl/a-synbar__posix.adb
5934 (Ada.Synchronous_Barriers): Annotate with SPARK_Mode => Off.
5936 2020-06-09 Arnaud Charlet <charlet@adacore.com>
5938 * sem_eval.adb (Eval_Relational_Op, Eval_String_Literal,
5939 Eval_Type_Conversion): Relax rules on relational operators and
5940 type conversions of static string types.
5942 2020-06-09 Arnaud Charlet <charlet@adacore.com>
5944 * sem_util.ads, sem_util.adb (Is_Partially_Initialized_Type):
5945 Take Default_Value and Default_Component_Value into account.
5946 * sem_ch3.adb (Analyze_Object_Declaration): Update comment.
5948 2020-06-09 Bob Duff <duff@adacore.com>
5950 * bindo-graphs.adb (Add_Edge_Kind_Check): Disable failing part
5953 2020-06-08 Steve Baird <baird@adacore.com>
5955 * sem_prag.adb (Analyze_Pragma.Set_Ravenscar_Profile): Add
5956 appropriate call to Set_Restriction_No_Dependence if Ada_Version
5957 >= Ada2012 and Profile is either Ravenscar or a GNAT-defined
5958 Ravenscar variant (i.e., not Jorvik).
5960 2020-06-08 Arnaud Charlet <charlet@adacore.com>
5962 * sem_ch5.adb: Fix typo.
5963 * sem_ch8.adb (Analyze_Renamed_Primitive_Operation): Check that
5964 the prefix of a prefixed view must be renamable as an object.
5966 2020-06-08 Arnaud Charlet <charlet@adacore.com>
5968 * sem_cat.ads: Fix typo.
5969 * sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type): Add
5970 handling of N_Attribute_Definition_Clause.
5971 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Call
5972 Validate_Remote_Access_To_Class_Wide_Type for Storage_Size and
5974 * sem_attr.adb, exp_ch4.adb: Update comments.
5976 2020-06-08 Justin Squirek <squirek@adacore.com>
5978 * sem_ch4.adb (Analyze_One_Call): Add extra condition to the
5979 predicate for deciding when a given controlled call is visible.
5981 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
5983 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Port
5984 changes in frontend expander.
5986 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
5988 * sem_ch13.adb (All_Membership_Choices_Static): Fix style.
5990 2020-06-08 Steve Baird <baird@adacore.com>
5992 * libgnat/s-rident.ads: Add Jorvik to the Profile_Name
5993 enumeration type. Add an element for Jorvik to the array
5994 aggregate that is the initial value of the constant
5996 * targparm.adb (Get_Target_Parameters): Handle "pragma Profile
5997 (Jorvik);" similarly to "pragma Profile (Ravenscar);".
5998 * snames.ads-tmpl: Declare Name_Jorvik Name_Id. Unlike
5999 Ravenscar, Jorvik is not a pragma name and has no corresponding
6000 element in the Pragma_Id enumeration type; this means that its
6001 declaration must not occur between those of First_Pragma_Name
6002 and Last_Pragma_Name.
6003 * sem_prag.adb (Analyze_Pragma): Add call to
6004 Set_Ravenscar_Profile for Jorvik, similar to the existing calls
6005 for Ravenscar and the GNAT Ravenscar variants.
6007 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6009 * sem_ch8.adb (Analyze_Object_Renaming): Update Get_Object_Name
6010 to go through N_Qualified_Expression and N_Type_Conversion. Fix
6011 another case of wrong usage of E_Anonymous_Access_Type instead
6012 of Anonymous_Access_Kind.
6013 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Work
6014 on the original node.
6015 (Is_Aliased_View): Take into account N_Qualified_Expression.
6017 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6019 * sem_eval.adb (Eval_Type_Conversion): Fix handling of
6020 enumeration to integer conversions.
6021 * exp_attr.adb (Expand_N_Attribute_Reference
6022 [Attribute_Enum_Rep]): Remove special casing for first-level
6023 renaming, best left to the general folding mechanism via
6024 Eval_Type_Conversion.
6026 2020-06-08 Eric Botcazou <ebotcazou@adacore.com>
6028 * atree.adb (New_Copy): Do not clear Has_Dynamic_Range_Check.
6029 * checks.ads (Append_Range_Checks): Remove Flag_Node parameter.
6030 (Insert_Range_Checks): Likewise and remove default value of
6031 Static_Loc parameter.
6032 * checks.adb (Append_Range_Checks): Remove Flag_Node parameter.
6033 Do not test and set Has_Dynamic_Range_Check.
6034 (Insert_Range_Checks): Likewise and remove default value of
6035 Static_Loc parameter.
6036 * csinfo.adb (CSinfo): Remove 'L' from [NEUB]_Fields pattern and
6037 do not handle Has_Dynamic_Range_Check.
6038 * exp_ch5.adb (Expand_N_Assignment_Statement): Remove argument
6039 in call to Insert_Range_Checks.
6040 * sem_ch3.adb (Analyze_Subtype_Declaration): Do not fiddle
6041 with Has_Dynamic_Range_Check.
6042 (Process_Range_Expr_In_Decl): Remove argument in calls to
6043 Insert_Range_Checks and Append_Range_Checks.
6044 * sinfo.ads (Has_Dynamic_Range_Check): Delete.
6045 (Set_Has_Dynamic_Range_Check): Likewise.
6046 * sinfo.adb (Has_Dynamic_Range_Check): Delete.
6047 (Set_Has_Dynamic_Range_Check): Likewise.
6048 * treepr.adb (Print_Node): Do not print Has_Dynamic_Range_Check.
6050 2020-06-08 Steve Baird <baird@adacore.com>
6052 * sem_ch13.ads: Export new function
6053 All_Membership_Choices_Static.
6054 * sem_ch13.adb: Implement new function
6055 All_Membership_Choices_Static. This involves moving the
6056 functions Is_Static_Choice and All_Membership_Choices_Static,
6057 which were previously declared within the function
6058 Is_Predicate_Static, out to library level so that they can be
6059 called by the new function. The already-exisiting code in
6060 Is_Predicate_Static which became the body of
6061 All_Membership_Choices_Static is replaced with a call to the new
6062 function in order to avoid duplication.
6063 * exp_ch9.adb (Is_Pure_Barrier): Several changes needed to
6064 implement rules of AI12-0290 and RM D.7's definition of
6065 "pure-barrier-eligible". These changes include adding a call to
6066 the new function Sem_13.All_Membership_Choices_Static, as per
6067 the "see 4.9" in RM D.7(1.6/5).
6069 2020-06-08 Richard Kenner <kenner@adacore.com>
6071 * exp_unst.adb (Visit_Node): When visiting array attribute
6072 nodes, in addition to checking the type of Get_Referenced_Object
6073 of the prefix, also check the actual type of the prefix.
6075 2020-06-08 Gary Dismukes <dismukes@adacore.com>
6077 * checks.adb (Apply_Predicate_Check): Refine test for being in a
6078 subprogram body to account for no Corresponding_Body case,
6079 avoiding blowups arising due to other changes here.
6080 * exp_ch4.adb (Expand_N_Qualified_Expression): Apply predicate
6081 checks, if any, after constraint checks are applied.
6082 * sem_eval.ads (Check_Expression_Against_Static_Predicate): Add
6083 Check_Failure_Is_Error formal for conditionalizing warning vs.
6085 * sem_eval.adb (Check_Expression_Against_Static_Predicate):
6086 Issue an error message rather than a warning when the new
6087 Check_Failure_Is_Error formal is True. In the nonstatic or
6088 Dynamic_Predicate case where the predicate is known to fail,
6089 emit the check to ensure that folded cases get checks applied.
6090 * sem_res.adb (Resolve_Qualified_Expression): Call
6091 Check_Expression_Against_Static_Predicate, passing True for
6092 Check_Failure_Is_Error, to ensure we reject static predicate
6093 violations. Remove code that was conditionally calling
6094 Apply_Predicate_Check, which is no longer needed, and that check
6095 procedure shouldn't be called from a resolution routine in any
6096 case. Also remove associated comment about preventing infinite
6097 recursion and consistency with Resolve_Type_Conversion, since
6098 that handling was already similarly removed from
6099 Resolve_Type_Convesion at some point.
6100 (Resolve_Type_Conversion): Add passing of True for
6101 Check_Failure_Is_Error parameter on call to
6102 Check_Expression_Against_Static_Predicate, to ensure that static
6103 conversion cases that violate a predicate are rejected as
6106 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
6108 * snames.ads-tmpl (Name_SPARK): Restore after being deleted.
6110 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6112 * exp_aggr.adb, exp_ch6.adb, par-ch11.adb, par-ch6.adb,
6113 par-ch7.adb, par-prag.adb, restrict.adb, restrict.ads,
6114 scans.ads, scng.adb, sem_aggr.adb, sem_attr.adb, sem_ch11.adb,
6115 sem_ch12.adb, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
6116 sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
6117 sem_res.adb, sem_util.adb, sem_util.ads, snames.ads-tmpl,
6118 gnatbind.adb, libgnat/s-rident.ads,
6119 doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
6120 Remove processing of SPARK_05 restriction.
6121 * gnat_rm.texi: Regenerate.
6122 * opt.ads: Remove processing of old checksum which is now
6123 handled by gprbuild directly.
6125 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6127 * sem_ch12.adb (Instantiate_Object): Relax rules related to null
6128 exclusions and generic objects. Handle all anonymous types
6129 consistently and not just E_Anonymous_Access_Type.
6130 * sem_ch8.adb (Analyze_Object_Renaming): Change wording so that
6131 it applies to both renamings and instantiations to avoid
6134 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6136 * libgnat/a-textio.ads (File_Mode): Fix typo in comment.
6138 2020-06-08 Eric Botcazou <ebotcazou@adacore.com>
6140 * sem_res.adb (Resolve_Indexed_Component): Do not give a warning
6141 for a nonatomic component of an atomic array which is subject to
6142 an address clause in Ada 2020 mode.
6143 (Resolve_Selected_Component): Likewise for an atomic record.
6145 2020-06-08 Philippe Gil <gil@adacore.com>
6147 * doc/gnat_ugn/the_gnat_compilation_model.rst: in "Handling
6148 Files with Multiple Units" part documents gnatname use for
6149 unmodified files handling and gnatchop use for files
6151 * gnat_ugn.texi: Regenerate.
6153 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6155 * doc/gnat_rm/implementation_defined_attributes.rst:
6156 Enum_Rep/Enum_Val are standard Ada 202x attributes.
6157 * gnat_rm.texi: Regenerate.
6159 2020-06-08 Javier Miranda <miranda@adacore.com>
6161 * exp_aggr.adb (Safe_Component): Remove code that considers as
6162 unsafe components that are aggregates; such removal allows the
6163 frontend to proceed and evaluate if they are safe by means of
6164 invoking Safe_Aggregate.
6166 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
6168 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
6169 standard expansion to attributes First and Last.
6171 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
6173 * exp_attr.adb, exp_util.ads, exp_util.adb (Get_Index_Subtype):
6174 Move from the body of Exp_Attr to Exp_Util and expose from the
6176 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Replace
6177 duplicated code with a call to Get_Index_Subtype.
6179 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6181 * sem_ch8.adb (Analyze_Object_Renaming): Simplify code by moving
6182 many special cases to Is_Object_Reference and removing others by
6183 only checking renamings coming from sources.
6184 * sem_util.adb (Is_Object_Reference): Update for AI12-0226 and
6185 add more regular handling of 'Priority. Remove special cases no
6186 longer needed now that we are only checking renamings coming
6189 2020-06-08 Claire Dross <dross@adacore.com>
6191 * libgnat/a-cofove.adb (Insert_Space): The computation of Index
6192 generates a spurious compiler warning about a value not being in
6193 range for a statically dead branch. Silence it using pragma
6196 2020-06-08 Bob Duff <duff@adacore.com>
6198 * bindo-graphs.adb (function Add_Edge): Rename
6199 Add_Edge_With_Return to Add_Edge; we can tell it returns because
6200 it's a function, and overloading seems appropriate in this case.
6201 If Activates_Task=True, and we're not going to add a new edge
6202 because an existing Pred-->Succ edge already exists, then set
6203 Activates_Task to True on the preexisting edge. This ensures
6205 info: use pragma Restrictions (No_Entry_Calls_In_Elaboration_Code)
6206 appears when appropriate, no matter in what order the edges
6207 happened to be processed.
6208 (procedure Add_Edge): Remove redundant assertions.
6209 (Activates_Task): Other kinds of edges can have
6210 Activates_Task=True. For example, if we had a With_Edge and
6211 then an Invocation_Edge with Activates_Task=True, then the
6212 With_Edge has Activates_Task set to True.
6213 (Add_Edge_Kind_Check): New procedure to prevent other bugs of
6214 this nature. For example, if we were to sometimes call Add_Edge
6215 for a Spec_Before_Body_Edge followed by Add_Edge for a
6216 With_Edge, and sometimes in the other order, that would cause a
6217 similar bug to what we're fixing here.
6218 (Set_Is_Recorded_Edge): Val parameter is not used. Get rid of
6220 (Set_Activates_Task): New procedure to set the Activates_Task flag.
6221 * bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder the
6222 enumeration literals to facilitate Add_Edge_Kind_Check.
6223 * ali.adb (Known_ALI_Lines): The comment about "still available"
6224 was wrong. Fix that by erasing the comment, and encoding the
6225 relevant information in real code. Take advantage of Ada's full
6226 coverage rules by removing "others =>". Also DRY.
6228 2020-06-08 Ed Schonberg <schonberg@adacore.com>
6230 * par-ch12.adb (P_Formal_Derived_Type_Definition): Handle
6231 properly formal derived types that include aspect
6232 specifications, so that the "with" keyword appears twice in the
6233 formal type declaration.
6234 * sem_ch13.adb (Has_Generic_Parent): Return true if the type
6235 itself is a generic formal.
6237 2020-06-08 Dmitriy Anisimkov <anisimko@adacore.com>
6239 * socket.c (__gnat_minus_500ms): Remove
6240 IsWindowsVersionOrGreater from condition.
6242 2020-06-08 Claire Dross <dross@adacore.com>
6244 * libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads,
6245 libgnat/a-cfhase.ads, libgnat/a-cforma.ads, libgnat/a-cforse.ads
6246 (Delete): Add Depends contract.
6248 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6250 * snames.ads-tmpl (Name_Program_Error_Check,
6251 Name_Tasking_Check): New constants.
6252 * types.ads (Program_Error_Check, Tasking_Check): New constants.
6253 (All_Checks): Update accordingly.
6255 2020-06-05 Arnaud Charlet <charlet@adacore.com>
6257 * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Use ??.
6259 2020-06-05 Arnaud Charlet <charlet@adacore.com>
6261 * cstand.adb (Create_Standard): Update comments.
6263 2020-06-05 Arnaud Charlet <charlet@adacore.com>
6265 * scng.adb (Scan): Fix typo to take into account all future
6267 * sem_attr.ads (Attribute_Impl_Def): Add Attribute_Reduce for
6269 * sem_attr.adb (Analyze_Attribute): Only allow 'Reduce under
6271 * snames.ads-tmpl (Name_Reduce): Update comment.
6273 2020-06-05 Thomas Quinot <quinot@adacore.com>
6275 * exp_disp.adb (Expand_Interface_Thunk): Add comment about
6276 gnatcov reliance on specific name used for thunks.
6278 2020-06-05 Ed Schonberg <schonberg@adacore.com>
6280 * sem_ch3.adb (Analyze_Subtype_Declaration): For scalar types,
6281 and for subtype declarations without a constraint, subtype
6282 inherits Atomic flag from base type.
6284 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
6286 * doc/gnat_rm/implementation_defined_attributes.rst (Enum_Rep):
6288 * gnat_rm.texi: Regenerate.
6290 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
6292 * atree.adb (New_Copy): Clear Has_Dynamic_Range_Check on
6293 subexpression nodes.
6294 * checks.adb (Append_Range_Checks): Assert that the node
6295 doesn't have the Has_Dynamic_Range_Check flag set.
6296 (Insert_Range_Checks): Likewise.
6297 * exp_ch3.adb (Expand_N_Subtype_Indication): Do not apply
6298 range checks for a full type or object declaration.
6299 * sem_ch3.ads: Move with and use clauses for Nlists to...
6300 (Process_Range_Expr_In_Decl): Change default to No_List for
6301 the Check_List parameter.
6302 * sem_ch3.adb: ...here.
6303 (Process_Range_Expr_In_Decl): Likewise. When the insertion
6304 node is a declaration, only insert on the list if is present
6305 when the declaration involves discriminants, and only insert
6306 on the node when there is no list otherwise.
6308 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
6310 * sem_aggr.adb (Resolve_Record_Aggregate): Create the
6311 N_Aggregate node with its Expressions field set to No_List and
6312 not to an empty list.
6314 2020-06-05 Dmitriy Anisimkov <anisimko@adacore.com>
6316 * libgnat/s-os_lib.adb (Is_Dirsep): Moved from Build_Path to
6317 package level to reuse.
6318 (Normalize_Pathname.Final_Value): Reduce 2 'if' statements to
6320 (Normalize_Pathname.Fill_Directory): New procedure instead of
6321 function Get_Directory. Remove slash to backslash conversion and
6322 drive letter uppercasing on Windows.
6324 2020-06-05 Arnaud Charlet <charlet@adacore.com>
6326 * sem.adb (Assert_Done): Relax check for main unit, as it was
6327 overzealous in the case of the main unit itself.
6329 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
6331 * exp_ch3.adb, sem_ch8.adb, sem_util.adb: Use Is_Incomplete_Type
6332 to make the code easier to read.
6334 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
6336 * einfo.adb: Minor reformatting.
6337 * sem_util.adb (Has_Full_Default_Initialization,
6338 Is_Partially_Initialized_Type, Caller_Known_Size_Record,
6339 Large_Max_Size_Mutable): Iterate with
6340 First_Component/Next_Component; rename Ent to Comp.
6342 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
6344 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use
6345 Expr_Rep_Value instead of Expr_Value to obtain the equivalent
6347 * sem_eval.ads (Expr_Value): Document more supported cases.
6348 * sem_eval.adb (Expr_Rep_Value): Copy missing cases from
6351 2020-06-05 Bob Duff <duff@adacore.com>
6353 * rtsfind.adb, rtsfind.ads: Move subtypes of RTU_Id into package
6354 body, because they are not needed by clients. Change "Child_" to
6355 "Descendant", because grandchildren and great grandchildren are
6356 involved. Replace all the repetitive comments with a single
6357 concise one. Change the parent subtypes to be more consistent;
6358 use the most specific parent.
6360 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
6362 * rtsfind.ads, rtsfind.adb (Is_Text_IO_Special_Package): Moved
6363 from the GNATprove backend to the frontend.
6365 2020-06-05 Yannick Moy <moy@adacore.com>
6367 * sem_util.ads: Add comment about function only used in
6370 2020-06-05 Ed Schonberg <schonberg@adacore.com>
6372 * sem_ch9.adb, (Analyze_Task_Body): After analying the task
6373 body, indicate that all local variables have no delayed aspects.
6374 This prevents improper later calls to
6375 Check_Aspect_At_End_Of_Declarations, that would happen when the
6376 constructed task_procedure body (generated during expansion) is
6377 analyzed. The legality of aspect specifications that may appear
6378 on local declarations has already been established, and it is in
6379 general not possible to recheck them properly during expansion,
6380 when visibility may not be fully established.
6382 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
6384 * libgnat/a-cofuve.ads (First): Add Global contract.
6386 2020-06-05 Arnaud Charlet <charlet@adacore.com>
6388 * sem_prag.adb (Set_Convention_From_Pragma): Set the convention
6389 of anonymous access array components.
6391 2020-06-05 Arnaud Charlet <charlet@adacore.com>
6393 * libgnat/a-calfor.ads, libgnat/a-catizo.ads,
6394 libgnat/a-catizo.adb (Local_Time_Offset, Local_Image): New.
6395 (UTC_Time_Offset): Now a renaming of Local_Time_Offset.
6397 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
6399 * sem_ch3.adb (Available_Full_View): New function returning
6400 either the full or the underlying full view.
6401 (Build_Full_Derivation): Add guard for the full view.
6402 (Copy_And_Build): Retrieve the underlying full view, if any,
6403 also if deriving a completion.
6404 (Build_Derived_Private_Type): Use Available_Full_View throughout
6405 to decide whether a full derivation must be done.
6407 2020-06-05 Bob Duff <duff@adacore.com>
6409 * exp_attr.adb, exp_ch11.adb, exp_imgv.adb, exp_tss.ads,
6410 par-ch4.adb, sem_attr.adb, sem_util.ads: Misc cleanup.
6412 2020-06-05 Arnaud Charlet <charlet@adacore.com>
6414 * libgnat/a-nudira.ads, libgnat/a-nudira.adb (Random): New
6417 2020-06-05 Arnaud Charlet <charlet@adacore.com>
6419 * sem_attr.ads (Attribute_Impl_Def): Remove Enum_Rep/Val.
6420 * sem_attr.adb (Attribute_20): New, move Enum_Rep/Val here.
6421 (Analyze_Attribute): Take Attribute_20 into account.
6423 2020-06-05 Arnaud Charlet <charlet@adacore.com>
6425 * restrict.ads (Unit_Array): Add a-direct.
6427 2020-06-05 Arnaud Charlet <charlet@adacore.com>
6429 * libgnat/s-stopoo.ads: Mark package Pure and leave room for
6430 Nonblocking once this aspect is supported.
6432 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
6434 * exp_attr.adb (Expand_N_Attribute_Reference) <Valid_Scalars>:
6435 Set the No_Truncation flag on the unchecked conversion built for
6438 2020-06-05 Bob Duff <duff@adacore.com>
6440 * einfo.adb, einfo.ads, exp_util.adb: Remove Invariants_Ignored
6442 * sem_prag.adb (Invariant): Instead of setting a flag to be
6443 checked elsewhere, remove the pragma as soon as it is analyzed
6444 and checked for legality.
6446 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
6448 * checks.ads (Apply_Length_Check): Rename Ck_Node parameter to
6450 (Apply_Range_Check): Likewise.
6451 (Get_Range_Checks): Likewise.
6452 * checks.adb (Apply_Float_Conversion_Check): Likewise.
6453 (Apply_Selected_Length_Checks): Likewise.
6454 (Apply_Selected_Range_Checks): Likewise.
6455 (Guard_Access): Likewise.
6456 (Selected_Length_Checks): Likewise. Also avoid shadowing in
6458 (Selected_Range_Checks): Likewise.
6460 2020-06-05 Arnaud Charlet <charlet@adacore.com>
6462 * par-ch3.adb, par-ch4.adb, scng.adb, sem_aggr.adb,
6463 sem_ch10.adb, sem_ch12.adb, sem_prag.adb: Update wording: change
6464 Ada_2020 to Ada 2020 in comments and mention -gnat2020 instead
6467 2020-06-04 Arnaud Charlet <charlet@adacore.com>
6469 * libgnat/i-c.ads (long_long, unsigned_long_long): New
6472 2020-06-04 Arnaud Charlet <charlet@adacore.com>
6474 * Makefile.rtl: add a-tasini object
6475 * impunit.adb (Non_Imp_File_Names_95): Add s-tasini.
6476 * libgnarl/a-tasini.ads, libgnarl/a-tasini.adb: New files.
6477 * libgnarl/s-taskin.ads (Global_Initialization_Handler): New.
6478 * libgnarl/s-tassta.adb (Task_Wrapper): Call
6479 Global_Initialization_Handler if non null.
6481 2020-06-04 Ed Schonberg <schonberg@adacore.com>
6483 * sem_ch12.adb (Build_Suprogram_Body_Wrapper,
6484 Build_Subprogram_Decl_Wrapper): New suprograms, to create the
6485 wrappers needed to implement contracts on formsl subprograms at
6486 the point of instantiation.
6487 (Build_Subprogram_Wrappers): New subprogram within
6488 Analyze_Associations, calls the above when the formal subprogram
6489 has contracts, and expansion is enabled.
6490 (Instantiate_Formal_Subprogram): If the actual is not an entity,
6491 such as a function attribute, or a synchronized operation,
6492 create a function with an internal name and call it within the
6494 (Analyze_Generic_Formal_Part): Analyze contracts at the end of
6495 the list of formal declarations.
6496 * sem_prag.adb (Analyze_Pre_Post_Condtion): In Ada_2020 the
6497 aspect and corresponding pragma can appear on a formal
6498 subprogram declaration.
6499 (Find_Related_Declaration_Or_Body): Ditto.
6501 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
6503 * exp_ch7.adb (Make_Final_Call): Set the type of the object, if
6504 it is unanalyzed, before calling Convert_View on it.
6506 2020-06-04 Arnaud Charlet <charlet@adacore.com>
6508 * adabkend.adb, back_end.ads, opt.ads, sem_ch6.adb: Get rid of
6509 Disable_FE_Inline_Always.
6511 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
6513 * exp_ch7.adb (Make_Final_Call): Add missing guard.
6514 * sem_ch3.adb (Copy_And_Build): Adjust recursive call for
6516 (Build_Derived_Private_Type): Deal with underlying full views.
6518 2020-06-04 Bob Duff <duff@adacore.com>
6520 * libgnat/a-stobbu.adb, libgnat/a-stobbu.ads,
6521 libgnat/a-stobfi.adb, libgnat/a-stobfi.ads,
6522 libgnat/a-stoubu.adb, libgnat/a-stoubu.ads,
6523 libgnat/a-stoufi.adb, libgnat/a-stoufi.ads,
6524 libgnat/a-stoufo.adb, libgnat/a-stoufo.ads,
6525 libgnat/a-stouut.adb, libgnat/a-stouut.ads,
6526 libgnat/a-stteou.ads, libgnat/s-putaim.adb,
6527 libgnat/s-putaim.ads, libgnat/s-putima.adb, libgnat/s-putima.ads
6528 (Ada.Strings.Text_Output and children, System.Put_Images): New
6529 runtime support for Put_Image.
6530 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add
6532 * exp_put_image.adb, exp_put_image.ads: New compiler package
6533 that generates calls to runtime routines that implement
6535 * Makefile.rtl: Add object files for Ada.Strings.Text_Output and
6536 children and System.Put_Images.
6537 * aspects.adb: Simplify initialization of Canonical_Aspect.
6538 * aspects.ads: Improve documentation. Add Aspect_Put_Image.
6539 * exp_attr.adb: Add support for Put_Image, by calling routines
6541 * sem_util.adb (Is_Predefined_Dispatching_Operation): Return
6542 True for new TSS_Put_Image operation.
6543 * exp_ch3.adb: For tagged types, build a dispatching
6544 TSS_Put_Image operation by calling routines in Exp_Put_Image.
6545 * exp_disp.adb, exp_disp.ads: Make TSS_Put_Image be number 10,
6546 adjusting other operations' numbers after 10. We choose 10
6547 because that's the last number shared by all runtimes.
6548 * exp_strm.adb: Use named notation as appropriate.
6549 * exp_cg.adb, exp_tss.ads: Add TSS_Put_Image.
6550 * libgnat/a-tags.ads: Modify Max_Predef_Prims for the new
6552 * impunit.adb: Add new runtime packages.
6553 * rtsfind.adb, rtsfind.ads: Add support for
6554 Ada.Strings.Text_Output, Ada.Strings.Text_Output.Utils, and
6556 * sem_attr.adb: Error checking for Put_Image calls.
6557 * sem_ch12.adb (Valid_Default_Attribute): Support for passing
6558 Put_Image as a generic formal parameter.
6559 * sem_ch13.adb: Analysis of Put_Image aspect. Turn it into a
6560 Put_Image attribute definition clause.
6561 * sem_ch8.adb (Analyze_Subprogram_Renaming): Support for
6562 renaming of the Put_Image attribute.
6563 * snames.adb-tmpl: Fix comments.
6564 * snames.ads-tmpl (Name_Put_Image): New Name_Id.
6565 (Attribute_Put_Image): New Attribute_Id.
6566 * tbuild.adb, tbuild.ads (Make_Increment): New utility.
6568 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
6570 * exp_attr.adb (xpand_N_Attribute_Reference) <Input>: Call
6571 Find_Inherited_TSS to look up the Stream_Read TSS.
6572 <Output>: Likewise for the Stream_Write TSS.
6573 * exp_ch7.adb (Make_Final_Call): Call Underlying_Type on
6574 private types to account for underlying full views.
6575 * exp_strm.ads (Build_Record_Or_Elementary_Input_Function):
6576 Remove Use_Underlying parameter.
6577 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
6578 Likewise and adjust accordingly.
6579 * exp_tss.adb (Find_Inherited_TSS): Deal with full views.
6580 Call Find_Inherited_TSS recursively on the parent type if
6581 the base type is a derived type.
6582 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Take
6583 into account underlying full views for derived types.
6584 * sem_ch3.adb (Copy_And_Build): Look up the underlying full
6585 view only for a completion. Be prepared for private types.
6586 (Build_Derived_Private_Type): Build an underlying full view
6587 for a completion in the general case too.
6589 2020-06-04 Arnaud Charlet <charlet@adacore.com>
6591 * back_end.adb, opt.ads, par-prag.adb, sem_ch5.adb,
6592 sem_prag.adb, sinfo.adb, sinfo.ads, snames.ads-tmpl,
6593 doc/gnat_rm/implementation_defined_pragmas.rst: Remove
6594 experimental support for OpenACC.
6595 * gcc-interface/misc.c, gcc-interface/trans.c,
6596 gcc-interface/lang.opt: Ditto.
6597 * gnat_rm.texi: Regenerate.
6599 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
6601 * checks.adb (Generate_Discriminant_Check): Remove obsolete
6604 2020-06-04 Gary Dismukes <dismukes@adacore.com>
6606 * par-ch3.adb (P_Identifier_Declarations): Add parsing of object
6607 renamings that have neither a subtype_mark nor an
6608 access_definition. Issue an error if the version is earlier than
6609 Ada_2020, and suggest using -gnatX.
6610 * sem_ch8.adb (Analyze_Object_Renaming): Handle
6611 object_renaming_declarations that don't have an explicit
6612 subtype. Errors are issued when the name is inappropriate or
6613 ambiguous, and otherwise the Etype of the renaming entity is set
6614 from the Etype of the renamed object.
6615 * sem_util.adb (Has_Null_Exclusion): Allow for the case of no
6616 subtype given in an N_Object_Renaming_Declaration.
6617 * sprint.adb (Sprint_Node_Actual): Handle printing of
6618 N_Object_Renaming_Declarations that are specified without an
6621 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
6623 * sinfo.ads (N_Delta_Aggregate): Document Etype field.
6624 (N_Case_Expression): Likewise.
6625 (Is_Syntactic_Field) <N_Quantified_Expression>: Adjust.
6626 <N_Case_Expression>: Likewise.
6628 2020-06-04 Arnaud Charlet <charlet@adacore.com>
6630 * adaint.c: Avoid redefining IS_DIR_SEPARATOR macro.
6632 2020-06-04 Arnaud Charlet <charlet@adacore.com>
6634 * sem.adb (Walk_Library_Items): Defer processing of main spec
6635 after all other specs and before processing bodies.
6637 2020-06-04 Arnaud Charlet <charlet@adacore.com>
6639 * bindgen.adb (Gen_Adafinal): Adafinal is convention Ada, not C.
6641 2020-06-04 Ed Schonberg <schonberg@adacore.com>
6643 * sinput.adb (Sloc_Range): Ignore node in the tree if it appears
6644 in a unit different from that of the node whose Sloc range we
6645 are computing. This is necessary when computing the source range
6646 of a subprogram body whose declaration includes a pre- or
6647 postcondition, because declaration and body may appear in
6648 different units, and the expanded code for the body includes
6649 copies of the contract code.
6651 2020-06-04 Alexandre Oliva <oliva@adacore.com>
6653 * switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
6654 dumpbase-ext. Mark auxbase and auxbase-strip for removal.
6656 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
6658 * sem_attr.adb (Resolve_Attribute) <Access>: Do not generate
6659 the secondary message about a missing pragma if the convention
6660 of the prefix is Intrinsic.
6661 * sem_ch12.adb (Instantiate_Formal_Subprogram): Only set the
6662 Convention and the Is_Inlined flag on a null procedure.
6664 2020-06-04 Justin Squirek <squirek@adacore.com>
6666 * sem_ch6.adb (Check_Return_Obj_Accessibility): Change to
6667 Check_Return_Construct_Accessibility to better reflect its
6668 purpose. Add loop to properly obtain the object declaration
6669 from an expanded extended return statement and add calls to get
6670 the original node for associated values. Also, avoid checks when
6671 the return statement being examined comes from an internally
6674 2020-06-04 Dmitriy Anisimkov <anisimko@adacore.com>
6676 * adaint.c (__gnat_is_absolute_path): Check for directory
6677 separator after drive and colon.
6678 (IS_DIR_SEPARATOR): Define new inline substitution.
6680 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
6682 * checks.ads: Update documentation about range checks and fix
6685 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
6687 * sem_ch3.adb (Array_Type_Declaration): Apply special handling
6688 of private index types to generic packages and restrict it to
6689 index types defined in the current scope.
6691 2020-06-04 Arnaud Charlet <charlet@adacore.com>
6693 * libgnat/a-exextr.adb (Global_Unhandled_Action): New global
6695 (Notify_Exception): Take into account Global_Unhandled_Action
6696 and fix latent race condition.
6697 (Exception_Action): Mark Favor_Top_Level so that variables can
6699 (Global_Action): Mark atomic to remove the need for a lock.
6700 * libgnat/g-excact.ads, libgnat/g-excact.adb
6701 (Register_Global_Unhandled_Action): New procedure.
6702 (Register_Global_Action): Remove lock.
6703 * libgnat/s-stalib.ads (Raise_Action): Mark Favor_Top_Level to
6704 be compatible with Exception_Action.
6705 * sem_warn.adb (Warn_On_Unreferenced_Entity): Fix logic wrt
6706 Volatile entities and entities with an address clause: the code
6707 did not match the comment/intent.
6709 2020-06-04 Arnaud Charlet <charlet@adacore.com>
6711 * comperr.adb (Compiler_Abort): Update URL and bug report
6714 2020-06-04 Steve Baird <baird@adacore.com>
6716 * libgnat/s-imgrea.ads: Declare a named number
6717 Max_Real_Image_Length with value 5200. Provide a comment
6718 explaining why this value was chosen.
6719 * libgnat/s-imgrea.adb (Set_Image_Real): Increase the upper
6720 bound of the local String variable Digs to
6721 Max_Real_Image_Length.
6722 * libgnat/a-tiflau.adb (Put): Increase the upper bound of the
6723 local String variable Buf to Max_Real_Image_Length.
6724 (Puts): Increase the upper bound of the local String variable
6725 Buf to Max_Real_Image_Length.
6727 2020-06-04 Arnaud Charlet <charlet@adacore.com>
6729 * libgnarl/a-dynpri.adb, libgnarl/a-taside.adb,
6730 libgnarl/a-taster.adb, libgnarl/s-interr.adb,
6731 libgnarl/s-interr__sigaction.adb, libgnarl/s-taasde.adb,
6732 libgnarl/s-taenca.adb, libgnarl/s-taenca.ads,
6733 libgnarl/s-taprop.ads, libgnarl/s-taprop__hpux-dce.adb,
6734 libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
6735 libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
6736 libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
6737 libgnarl/s-tarest.adb, libgnarl/s-tasini.adb,
6738 libgnarl/s-tasque.adb, libgnarl/s-tasque.ads,
6739 libgnarl/s-tasren.adb, libgnarl/s-tasren.ads,
6740 libgnarl/s-tassta.adb, libgnarl/s-tasuti.adb,
6741 libgnarl/s-tasuti.ads, libgnarl/s-tpoben.adb,
6742 libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb,
6743 libgnarl/s-tposen.adb, libgnat/s-parame.ads,
6744 libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads,
6745 libgnat/s-parame__vxworks.ads: Remove references to Single_Lock
6748 2020-06-04 Arnaud Charlet <charlet@adacore.com>
6750 * libgnat/s-atopar.adb, libgnat/s-atopex.adb: Use Object_Size
6751 instead of Size, otherwise many derived types will be rejected
6752 (e.g. a type with a 14 bits 'Size and a 16 bits 'Object_Size).
6754 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
6756 * sem_ch12.adb (Copy_Generic_Node): Add special handling for a
6757 conversion between access types.
6759 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
6761 * sem_ch12.adb (Check_Generic_Actuals): Also restore the proper
6762 views of the actuals of the parent instances if the formals are
6763 used as actuals of the children.
6764 (Instantiate_Type): Add comment.
6766 2020-06-04 Gary Dismukes <dismukes@adacore.com>
6768 * sem_ch12.adb: Minor editorial fixes.
6770 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
6772 * sem_ch12.adb (Denotes_Previous_Actual): Delete.
6773 (Check_Generic_Actuals): Do not special case array types whose
6774 component type denotes a previous actual. Do not special case
6775 access types whose base type is private.
6776 (Check_Private_View): Remove code dealing with secondary types.
6777 Do not switch the views of an array because of its component.
6778 (Copy_Generic_Node): Add special handling for a comparison
6779 operator on array types.
6780 (Instantiate_Type): Do not special case access types whose
6781 designated type is private.
6782 (Set_Global_Type): Do not special case array types whose
6783 component type is private.
6785 2020-06-03 Justin Squirek <squirek@adacore.com>
6787 * sem_ch10.adb (Process_Body_Clauses): Add loop to interate
6788 through all prefixes in a use_type clause so that all packages
6789 in the expanded name get examined for effectiveness.
6791 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
6793 * sem_ch12.adb (Check_Private_View): Clean up implementation of
6794 second main case, when the generic sees the private declaration.
6796 2020-06-03 Arnaud Charlet <charlet@adacore.com>
6798 * libgnat/a-nbnbin.ads: Minor reformatting.
6799 * libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb (Is_Valid): Add
6800 convention Intrinsic. Add detection of uninitialized big reals.
6802 2020-06-03 Arnaud Charlet <charlet@adacore.com>
6804 * sem_util.ads, sem_util.adb (Side_Effect_Free_Statements,
6805 Side_Effect_Free_Loop): New functions.
6806 (Has_Non_Null_Statements): Consider N_Call_Marker as a null
6808 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Call
6809 Set_Is_Null_Loop even inside a generic instantiation.
6810 (Analyze_Loop_Statement): Mark for removal loops with no side
6813 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
6815 * opt.ads (Allow_Integer_Address): Fix typo in comment.
6816 * stand.ads (Standard_Address): New entity.
6817 * cstand.adb (Create_Standard): Create it.
6818 * sem_ch4.adb (Operator_Check): Convert the operands of an
6819 operation with addresses and integers to Standard_Address
6820 if pragma Allow_Integer_Address is in effect.
6822 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
6824 * libgnat/s-atopar.adb (Atomic_Fetch_And_Add): Make use of an
6825 equivalent static expression.
6826 (Atomic_Fetch_And_Subtract): Likewise.
6827 (Is_Lock_Free): Likewise.
6828 * libgnat/s-atopex.adb (Atomic_Exchange): Likewise.
6829 (Atomic_Compare_And_Exchange): Likewise.
6830 (Is_Lock_Free): Likewise.
6832 2020-06-03 Vadim Godunko <godunko@adacore.com>
6834 * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
6835 libgnat/s-parame__hpux.ads: Fix typos.
6837 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
6839 * exp_util.adb (Remove_Side_Effects): For a type conversion, do
6840 not remove the side effects of the expression only if it is of
6841 universal integer type.
6843 2020-06-03 Arnaud Charlet <charlet@adacore.com>
6845 * libgnat/s-aotase.ads, libgnat/s-atoope.ads,
6846 libgnat/s-atopar.ads, libgnat/s-atopex.ads: Update header.
6848 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
6850 * exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Also fold the
6851 conversion for literals of enumeration types.
6853 2020-06-03 Yannick Moy <moy@adacore.com>
6855 * rtsfind.adb (Load_RTU): Correctly set/reset global variable to
6856 ignore SPARK_Mode in instances around loading.
6857 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Accept Off
6859 * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise.
6860 * sem_prag.adb (Analyze_Pragma): Always take into account
6863 2020-06-03 Arnaud Charlet <charlet@adacore.com>
6865 * frontend.adb (Frontend): Call (dummy for now) tree checker.
6866 * debug.adb: Reserve -gnatd_V for the tree checker.
6867 * vast.ads, vast.adb: New files.
6868 * gcc-interface/Make-lang.in: Add vast.o.
6870 2020-06-03 Justin Squirek <squirek@adacore.com>
6872 * libgnat/a-cborse.adb, libgnat/a-cihase.adb,
6873 libgnat/a-ciorse.adb, libgnat/a-coorse.adb: Modified to use
6874 'Unrestricted_Access in certain cases where static accessibility
6875 errors were triggered.
6876 * exp_ch6.adb (Expand_Simple_Return_Statement): Add generation
6877 of dynamic accessibility checks as determined by
6878 Is_Special_Aliased_Formal_Access.
6879 * sem_attr.adb (Resolve_Attribute): Add call to
6880 Is_Special_Aliased_Formal_Access to avoid performing static
6881 checks where dynamic ones are required.
6882 * sem_ch6.adb (Check_Return_Obj_Accessibility): Handle renamed
6883 objects within component associations requiring special
6884 accessibility checks.
6885 * sem_util.adb, sem_util.ads (Is_Special_Aliased_Formal_Access):
6886 Created to detect the special case where an aliased formal is
6887 being compared against the level of an anonymous access return
6889 (Object_Access_Level): Remove incorrect condition leading to
6890 overly permissive accessibility levels being returned on
6891 explicitly aliased parameters.
6893 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
6895 * einfo.ads (Enum_Pos_To_Rep): Adjust description.
6896 * exp_attr.adb (Expand_N_Attribute_Reference) <Pred>:
6897 Reimplement in the case of an enumeration type with non-standard
6898 but contiguous representation.
6901 * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Count the
6902 literals in the first loop. If the representation is
6903 contiguous, just build the index type of the array type and set
6904 Enum_Pos_To_Rep to it.
6906 2020-06-03 Gary Dismukes <dismukes@adacore.com>
6908 * exp_attr.adb (Expand_Loop_Entry_Attribute): Revise loop that
6909 resets the scopes of entities associated with Loop_Id to the
6910 scope of the new function, so the resetting is not restricted to
6911 itypes, but excludes loop parameters and the function entity
6912 itself. However, this fix is believed to be incomplete and a ???
6913 comment is added to indicate that.
6915 2020-06-03 Bob Duff <duff@adacore.com>
6917 * libgnat/s-regexp.ads: Fix comment
6919 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
6921 * exp_attr.adb (Expand_N_Attribute_Reference) <Enum_Rep>:
6922 In the case of an enumeration type, do an intermediate
6923 conversion to a small integer type. Remove useless stuff.
6924 <Finalization_Size>: Do not hardcode Universal_Integer and
6925 fix a type mismatch in the assignment to the variable.
6926 <Max_Size_In_Storage_Elements>: Likewise.
6927 <From_Any>: Do not redefine the Ptyp local variable.
6929 <TypeCode>: Likewise.
6930 <Pos>: Small tweaks.
6931 <Val>: For an enumeration type with standard representation,
6932 apply the range check to the expression of a convertion to
6933 Universal_Integer, if any. For an integer type, expand to
6936 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
6938 * libgnat/s-rannum.adb (Random_Discrete): In the 32-bit case,
6939 use the same linear implementation as in the 64-bit case when
6940 the type has a contiguous representation.
6942 2020-06-03 Gary Dismukes <dismukes@adacore.com>
6944 * sem_util.adb (Build_Class_Wide_Clone_Decl): Call
6945 Set_Debug_Info_Needed to set the Needs_Debug_Info flag on
6946 Clone_Id if the flag is set on Spec_Id.
6948 2020-06-03 Yannick Moy <moy@adacore.com>
6950 * inline.adb (Expand_Inlined_Call): Do not suppress checks on
6951 inlined code in GNATprove mode.
6953 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
6955 * einfo.ads (Has_Contiguous_Rep): Fix typo in comment.
6957 2020-06-03 Piotr Trojanek <trojanek@adacore.com>
6959 * checks.adb, einfo.adb, exp_aggr.adb, exp_ch4.adb, exp_ch6.adb,
6960 exp_unst.adb, exp_util.adb, freeze.adb, inline.adb, repinfo.adb,
6961 sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_ch13.adb,
6962 sem_ch3.adb, sem_ch4.adb, sem_ch8.adb, sem_elab.adb,
6963 sem_eval.adb, sem_prag.adb, sem_res.adb, sem_smem.adb,
6964 sem_util.adb, treepr.adb: Replace uses of Next_ functions with
6965 corresponding procedures.
6967 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
6969 * exp_attr.adb (Attribute_Valid): Use Standard_Long_Long_Integer
6970 in lieu of Universal_Integer as large integer type.
6971 * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Likewise.
6973 2020-06-03 Arnaud Charlet <charlet@adacore.com>
6975 * libgnat/s-auxdec.ads (Address_Int): New.
6977 2020-06-03 Arnaud Charlet <charlet@adacore.com>
6979 * aspects.adb, aspects.ads, atree.adb, atree.ads, elists.adb,
6980 elists.ads, fname.adb, fname.ads, gnat1drv.adb, lib.adb,
6981 lib.ads, namet.adb, namet.ads, nlists.adb, nlists.ads, opt.adb,
6982 opt.ads, osint-c.adb, osint-c.ads, repinfo.adb, repinfo.ads,
6983 sem_aux.adb, sem_aux.ads, sinput.adb, sinput.ads, stand.ads,
6984 stringt.adb, stringt.ads, switch-c.adb, table.adb, table.ads,
6985 uintp.adb, uintp.ads, urealp.adb, urealp.ads (Tree_Read,
6986 Tree_Write): Remove generation of ASIS trees.
6987 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
6988 Remove -gnatt and -gnatct documentation.
6989 * gnat_ugn.texi: Regenerate.
6990 * tree_in.ads, tree_in.adb, tree_io.ads, tree_io.adb,
6991 tree_gen.ads, tree_gen.adb, stand.adb: Remove.
6992 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove
6993 references to tree_gen.o tree_in.o tree_io.o.
6995 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
6997 * opt.ads (Disable_FE_Inline): Move around.
6998 (Disable_FE_Inline_Always): Likewise.
7000 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7002 * checks.adb (Is_Single_Attribute_Reference): New predicate.
7003 (Generate_Range_Check): Do not force the evaluation if the
7004 node is a single attribute reference.
7005 * exp_util.adb (Side_Effect_Free_Attribute): New predicate.
7006 (Side_Effect_Free) <N_Attribute_Reference>: Call it.
7007 (Remove_Side_Effects): Remove the side effects of the prefix
7008 for an attribute reference whose prefix is not a name.
7010 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7012 * switch-c.adb (Scan_Front_End_Switches): Remove processing of
7014 * usage.adb (Usage): Remove mention of -gnatt.
7016 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7018 * sinfo.ads: Minor tweaks in commentary.
7020 2020-06-02 Alexandre Oliva <oliva@adacore.com>
7022 * lib.ads (Compilation_Switches): Remove -auxbase from
7024 * switch.ads (Is_Internal_GCC_Switch): Likewise.
7026 2020-06-02 Arnaud Charlet <charlet@adacore.com>
7028 * atree.ads, checks.adb, contracts.adb, debug.adb, einfo.ads,
7029 exp_ch3.adb, exp_util.adb, expander.ads, expander.adb,
7030 frontend.adb, gnat1drv.adb, itypes.adb, lib.ads, namet.ads,
7031 opt.adb, opt.ads, par-prag.adb, repinfo.ads, sem_aggr.adb,
7032 sem_aux.ads, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
7033 sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb,
7034 sem_dim.adb, sem_elab.adb, sem_prag.adb, sem_prag.ads,
7035 sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, stand.ads,
7036 tree_io.ads: Remove references to ASIS_Mode.
7038 2020-06-02 Javier Miranda <miranda@adacore.com>
7040 * exp_ch4.adb (Generate_Temporary): New subprogram of
7041 Discrete_Range_Check that generates a temporary to facilitate
7042 the C backend the code generation of the unchecked conversion
7043 since the size of the source type may differ from the size of
7046 2020-06-02 Arnaud Charlet <charlet@adacore.com>
7048 * ada_get_targ.adb: Bump copyright year.
7049 * adabkend.adb: Likewise.
7050 * adabkend.ads: Likewise.
7051 * adadecode.c: Likewise.
7052 * adadecode.h: Likewise.
7053 * adaint.c: Likewise.
7054 * adaint.h: Likewise.
7055 * affinity.c: Likewise.
7056 * ali-util.adb: Likewise.
7057 * ali-util.ads: Likewise.
7058 * ali.adb: Likewise.
7059 * ali.ads: Likewise.
7060 * alloc.ads: Likewise.
7061 * argv-lynxos178-raven-cert.c: Likewise.
7063 * aspects.adb: Likewise.
7064 * aspects.ads: Likewise.
7065 * atree.adb: Likewise.
7066 * atree.ads: Likewise.
7067 * atree.h: Likewise.
7068 * aux-io.c: Likewise.
7069 * back_end.adb: Likewise.
7070 * back_end.ads: Likewise.
7071 * bcheck.adb: Likewise.
7072 * bcheck.ads: Likewise.
7073 * binde.adb: Likewise.
7074 * binde.ads: Likewise.
7075 * binderr.adb: Likewise.
7076 * binderr.ads: Likewise.
7077 * bindgen.adb: Likewise.
7078 * bindgen.ads: Likewise.
7079 * bindo-augmentors.adb: Likewise.
7080 * bindo-augmentors.ads: Likewise.
7081 * bindo-builders.adb: Likewise.
7082 * bindo-builders.ads: Likewise.
7083 * bindo-diagnostics.adb: Likewise.
7084 * bindo-diagnostics.ads: Likewise.
7085 * bindo-elaborators.adb: Likewise.
7086 * bindo-elaborators.ads: Likewise.
7087 * bindo-graphs.adb: Likewise.
7088 * bindo-graphs.ads: Likewise.
7089 * bindo-units.adb: Likewise.
7090 * bindo-units.ads: Likewise.
7091 * bindo-validators.adb: Likewise.
7092 * bindo-validators.ads: Likewise.
7093 * bindo-writers.adb: Likewise.
7094 * bindo-writers.ads: Likewise.
7095 * bindo.adb: Likewise.
7096 * bindo.ads: Likewise.
7097 * bindusg.adb: Likewise.
7098 * bindusg.ads: Likewise.
7099 * butil.adb: Likewise.
7100 * butil.ads: Likewise.
7102 * casing.adb: Likewise.
7103 * casing.ads: Likewise.
7104 * ceinfo.adb: Likewise.
7105 * checks.adb: Likewise.
7106 * checks.ads: Likewise.
7108 * clean.adb: Likewise.
7109 * clean.ads: Likewise.
7110 * comperr.adb: Likewise.
7111 * comperr.ads: Likewise.
7112 * contracts.adb: Likewise.
7113 * contracts.ads: Likewise.
7114 * csets.adb: Likewise.
7115 * csets.ads: Likewise.
7116 * csinfo.adb: Likewise.
7117 * cstand.adb: Likewise.
7118 * cstand.ads: Likewise.
7119 * cstreams.c: Likewise.
7120 * ctrl_c.c: Likewise.
7121 * debug.adb: Likewise.
7122 * debug.ads: Likewise.
7123 * debug_a.adb: Likewise.
7124 * debug_a.ads: Likewise.
7125 * einfo.adb: Likewise.
7126 * einfo.ads: Likewise.
7127 * elists.adb: Likewise.
7128 * elists.ads: Likewise.
7129 * elists.h: Likewise.
7132 * err_vars.ads: Likewise.
7133 * errno.c: Likewise.
7134 * errout.adb: Likewise.
7135 * errout.ads: Likewise.
7136 * erroutc.adb: Likewise.
7137 * erroutc.ads: Likewise.
7138 * errutil.adb: Likewise.
7139 * errutil.ads: Likewise.
7140 * eval_fat.adb: Likewise.
7141 * eval_fat.ads: Likewise.
7143 * exp_aggr.adb: Likewise.
7144 * exp_aggr.ads: Likewise.
7145 * exp_atag.adb: Likewise.
7146 * exp_atag.ads: Likewise.
7147 * exp_attr.adb: Likewise.
7148 * exp_attr.ads: Likewise.
7149 * exp_cg.adb: Likewise.
7150 * exp_cg.ads: Likewise.
7151 * exp_ch10.ads: Likewise.
7152 * exp_ch11.adb: Likewise.
7153 * exp_ch11.ads: Likewise.
7154 * exp_ch12.adb: Likewise.
7155 * exp_ch12.ads: Likewise.
7156 * exp_ch13.adb: Likewise.
7157 * exp_ch13.ads: Likewise.
7158 * exp_ch2.adb: Likewise.
7159 * exp_ch2.ads: Likewise.
7160 * exp_ch3.adb: Likewise.
7161 * exp_ch3.ads: Likewise.
7162 * exp_ch4.adb: Likewise.
7163 * exp_ch4.ads: Likewise.
7164 * exp_ch5.adb: Likewise.
7165 * exp_ch5.ads: Likewise.
7166 * exp_ch6.adb: Likewise.
7167 * exp_ch6.ads: Likewise.
7168 * exp_ch7.adb: Likewise.
7169 * exp_ch7.ads: Likewise.
7170 * exp_ch8.adb: Likewise.
7171 * exp_ch8.ads: Likewise.
7172 * exp_ch9.adb: Likewise.
7173 * exp_ch9.ads: Likewise.
7174 * exp_code.adb: Likewise.
7175 * exp_code.ads: Likewise.
7176 * exp_dbug.adb: Likewise.
7177 * exp_dbug.ads: Likewise.
7178 * exp_disp.adb: Likewise.
7179 * exp_disp.ads: Likewise.
7180 * exp_dist.adb: Likewise.
7181 * exp_dist.ads: Likewise.
7182 * exp_fixd.adb: Likewise.
7183 * exp_fixd.ads: Likewise.
7184 * exp_imgv.adb: Likewise.
7185 * exp_imgv.ads: Likewise.
7186 * exp_intr.adb: Likewise.
7187 * exp_intr.ads: Likewise.
7188 * exp_pakd.adb: Likewise.
7189 * exp_pakd.ads: Likewise.
7190 * exp_prag.adb: Likewise.
7191 * exp_prag.ads: Likewise.
7192 * exp_sel.adb: Likewise.
7193 * exp_sel.ads: Likewise.
7194 * exp_smem.adb: Likewise.
7195 * exp_smem.ads: Likewise.
7196 * exp_spark.adb: Likewise.
7197 * exp_spark.ads: Likewise.
7198 * exp_strm.adb: Likewise.
7199 * exp_strm.ads: Likewise.
7200 * exp_tss.adb: Likewise.
7201 * exp_tss.ads: Likewise.
7202 * exp_unst.adb: Likewise.
7203 * exp_unst.ads: Likewise.
7204 * exp_util.adb: Likewise.
7205 * exp_util.ads: Likewise.
7206 * expander.adb: Likewise.
7207 * expander.ads: Likewise.
7208 * expect.c: Likewise.
7210 * final.c: Likewise.
7211 * fmap.adb: Likewise.
7212 * fmap.ads: Likewise.
7213 * fname-sf.adb: Likewise.
7214 * fname-sf.ads: Likewise.
7215 * fname-uf.adb: Likewise.
7216 * fname-uf.ads: Likewise.
7217 * fname.adb: Likewise.
7218 * fname.ads: Likewise.
7219 * freeze.adb: Likewise.
7220 * freeze.ads: Likewise.
7221 * frontend.adb: Likewise.
7222 * frontend.ads: Likewise.
7223 * get_scos.adb: Likewise.
7224 * get_scos.ads: Likewise.
7225 * get_targ.adb: Likewise.
7226 * get_targ.ads: Likewise.
7227 * ghost.adb: Likewise.
7228 * ghost.ads: Likewise.
7229 * gnat1drv.adb: Likewise.
7230 * gnat1drv.ads: Likewise.
7231 * gnatbind.adb: Likewise.
7232 * gnatbind.ads: Likewise.
7233 * gnatchop.adb: Likewise.
7234 * gnatclean.adb: Likewise.
7235 * gnatcmd.adb: Likewise.
7236 * gnatcmd.ads: Likewise.
7237 * gnatdll.adb: Likewise.
7238 * gnatfind.adb: Likewise.
7239 * gnatkr.adb: Likewise.
7240 * gnatkr.ads: Likewise.
7241 * gnatlink.adb: Likewise.
7242 * gnatlink.ads: Likewise.
7243 * gnatls.adb: Likewise.
7244 * gnatls.ads: Likewise.
7245 * gnatmake.adb: Likewise.
7246 * gnatmake.ads: Likewise.
7247 * gnatname.adb: Likewise.
7248 * gnatname.ads: Likewise.
7249 * gnatprep.adb: Likewise.
7250 * gnatprep.ads: Likewise.
7251 * gnatvsn.adb: Likewise.
7252 * gnatxref.adb: Likewise.
7253 * gprep.adb: Likewise.
7254 * gprep.ads: Likewise.
7255 * gsocket.h: Likewise.
7256 * hostparm.ads: Likewise.
7257 * impunit.adb: Likewise.
7258 * impunit.ads: Likewise.
7259 * indepsw-aix.adb: Likewise.
7260 * indepsw-darwin.adb: Likewise.
7261 * indepsw-gnu.adb: Likewise.
7262 * indepsw.adb: Likewise.
7263 * indepsw.ads: Likewise.
7265 * initialize.c: Likewise.
7266 * inline.adb: Likewise.
7267 * inline.ads: Likewise.
7268 * itypes.adb: Likewise.
7269 * itypes.ads: Likewise.
7270 * krunch.adb: Likewise.
7271 * krunch.ads: Likewise.
7272 * layout.adb: Likewise.
7273 * layout.ads: Likewise.
7274 * lib-list.adb: Likewise.
7275 * lib-load.adb: Likewise.
7276 * lib-load.ads: Likewise.
7277 * lib-sort.adb: Likewise.
7278 * lib-util.adb: Likewise.
7279 * lib-util.ads: Likewise.
7280 * lib-writ.adb: Likewise.
7281 * lib-writ.ads: Likewise.
7282 * lib-xref-spark_specific.adb: Likewise.
7283 * lib-xref.adb: Likewise.
7284 * lib-xref.ads: Likewise.
7285 * lib.adb: Likewise.
7286 * lib.ads: Likewise.
7287 * libgnarl/a-astaco.adb: Likewise.
7288 * libgnarl/a-dispat.adb: Likewise.
7289 * libgnarl/a-dynpri.adb: Likewise.
7290 * libgnarl/a-etgrbu.ads: Likewise.
7291 * libgnarl/a-exetim__darwin.adb: Likewise.
7292 * libgnarl/a-exetim__default.ads: Likewise.
7293 * libgnarl/a-exetim__mingw.adb: Likewise.
7294 * libgnarl/a-exetim__mingw.ads: Likewise.
7295 * libgnarl/a-exetim__posix.adb: Likewise.
7296 * libgnarl/a-interr.adb: Likewise.
7297 * libgnarl/a-interr.ads: Likewise.
7298 * libgnarl/a-intnam.ads: Likewise.
7299 * libgnarl/a-intnam__aix.ads: Likewise.
7300 * libgnarl/a-intnam__darwin.ads: Likewise.
7301 * libgnarl/a-intnam__dragonfly.ads: Likewise.
7302 * libgnarl/a-intnam__dummy.ads: Likewise.
7303 * libgnarl/a-intnam__freebsd.ads: Likewise.
7304 * libgnarl/a-intnam__hpux.ads: Likewise.
7305 * libgnarl/a-intnam__linux.ads: Likewise.
7306 * libgnarl/a-intnam__lynxos.ads: Likewise.
7307 * libgnarl/a-intnam__mingw.ads: Likewise.
7308 * libgnarl/a-intnam__qnx.ads: Likewise.
7309 * libgnarl/a-intnam__rtems.ads: Likewise.
7310 * libgnarl/a-intnam__solaris.ads: Likewise.
7311 * libgnarl/a-intnam__vxworks.ads: Likewise.
7312 * libgnarl/a-reatim.adb: Likewise.
7313 * libgnarl/a-reatim.ads: Likewise.
7314 * libgnarl/a-retide.adb: Likewise.
7315 * libgnarl/a-retide.ads: Likewise.
7316 * libgnarl/a-rttiev.adb: Likewise.
7317 * libgnarl/a-rttiev.ads: Likewise.
7318 * libgnarl/a-synbar.adb: Likewise.
7319 * libgnarl/a-synbar.ads: Likewise.
7320 * libgnarl/a-synbar__posix.adb: Likewise.
7321 * libgnarl/a-synbar__posix.ads: Likewise.
7322 * libgnarl/a-sytaco.adb: Likewise.
7323 * libgnarl/a-sytaco.ads: Likewise.
7324 * libgnarl/a-tasatt.adb: Likewise.
7325 * libgnarl/a-tasatt.ads: Likewise.
7326 * libgnarl/a-taside.adb: Likewise.
7327 * libgnarl/a-taside.ads: Likewise.
7328 * libgnarl/a-taster.adb: Likewise.
7329 * libgnarl/g-boubuf.adb: Likewise.
7330 * libgnarl/g-boubuf.ads: Likewise.
7331 * libgnarl/g-boumai.ads: Likewise.
7332 * libgnarl/g-semaph.adb: Likewise.
7333 * libgnarl/g-semaph.ads: Likewise.
7334 * libgnarl/g-signal.adb: Likewise.
7335 * libgnarl/g-signal.ads: Likewise.
7336 * libgnarl/g-tastus.ads: Likewise.
7337 * libgnarl/g-thread.adb: Likewise.
7338 * libgnarl/g-thread.ads: Likewise.
7339 * libgnarl/i-vxinco.adb: Likewise.
7340 * libgnarl/i-vxinco.ads: Likewise.
7341 * libgnarl/s-inmaop.ads: Likewise.
7342 * libgnarl/s-inmaop__dummy.adb: Likewise.
7343 * libgnarl/s-inmaop__posix.adb: Likewise.
7344 * libgnarl/s-inmaop__vxworks.adb: Likewise.
7345 * libgnarl/s-interr.adb: Likewise.
7346 * libgnarl/s-interr.ads: Likewise.
7347 * libgnarl/s-interr__dummy.adb: Likewise.
7348 * libgnarl/s-interr__hwint.adb: Likewise.
7349 * libgnarl/s-interr__sigaction.adb: Likewise.
7350 * libgnarl/s-interr__vxworks.adb: Likewise.
7351 * libgnarl/s-intman.ads: Likewise.
7352 * libgnarl/s-intman__android.adb: Likewise.
7353 * libgnarl/s-intman__dummy.adb: Likewise.
7354 * libgnarl/s-intman__lynxos.adb: Likewise.
7355 * libgnarl/s-intman__mingw.adb: Likewise.
7356 * libgnarl/s-intman__posix.adb: Likewise.
7357 * libgnarl/s-intman__qnx.adb: Likewise.
7358 * libgnarl/s-intman__solaris.adb: Likewise.
7359 * libgnarl/s-intman__susv3.adb: Likewise.
7360 * libgnarl/s-intman__vxworks.adb: Likewise.
7361 * libgnarl/s-intman__vxworks.ads: Likewise.
7362 * libgnarl/s-linux.ads: Likewise.
7363 * libgnarl/s-linux__alpha.ads: Likewise.
7364 * libgnarl/s-linux__android.ads: Likewise.
7365 * libgnarl/s-linux__hppa.ads: Likewise.
7366 * libgnarl/s-linux__mips.ads: Likewise.
7367 * libgnarl/s-linux__riscv.ads: Likewise.
7368 * libgnarl/s-linux__sparc.ads: Likewise.
7369 * libgnarl/s-linux__x32.ads: Likewise.
7370 * libgnarl/s-mudido.adb: Likewise.
7371 * libgnarl/s-mudido__affinity.adb: Likewise.
7372 * libgnarl/s-osinte__aix.adb: Likewise.
7373 * libgnarl/s-osinte__aix.ads: Likewise.
7374 * libgnarl/s-osinte__android.adb: Likewise.
7375 * libgnarl/s-osinte__android.ads: Likewise.
7376 * libgnarl/s-osinte__darwin.adb: Likewise.
7377 * libgnarl/s-osinte__darwin.ads: Likewise.
7378 * libgnarl/s-osinte__dragonfly.adb: Likewise.
7379 * libgnarl/s-osinte__dragonfly.ads: Likewise.
7380 * libgnarl/s-osinte__dummy.ads: Likewise.
7381 * libgnarl/s-osinte__freebsd.adb: Likewise.
7382 * libgnarl/s-osinte__freebsd.ads: Likewise.
7383 * libgnarl/s-osinte__gnu.adb: Likewise.
7384 * libgnarl/s-osinte__gnu.ads: Likewise.
7385 * libgnarl/s-osinte__hpux-dce.adb: Likewise.
7386 * libgnarl/s-osinte__hpux-dce.ads: Likewise.
7387 * libgnarl/s-osinte__hpux.ads: Likewise.
7388 * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
7389 * libgnarl/s-osinte__linux.ads: Likewise.
7390 * libgnarl/s-osinte__lynxos178.adb: Likewise.
7391 * libgnarl/s-osinte__lynxos178e.ads: Likewise.
7392 * libgnarl/s-osinte__mingw.ads: Likewise.
7393 * libgnarl/s-osinte__posix.adb: Likewise.
7394 * libgnarl/s-osinte__qnx.adb: Likewise.
7395 * libgnarl/s-osinte__qnx.ads: Likewise.
7396 * libgnarl/s-osinte__rtems.adb: Likewise.
7397 * libgnarl/s-osinte__rtems.ads: Likewise.
7398 * libgnarl/s-osinte__solaris.adb: Likewise.
7399 * libgnarl/s-osinte__solaris.ads: Likewise.
7400 * libgnarl/s-osinte__vxworks.adb: Likewise.
7401 * libgnarl/s-osinte__vxworks.ads: Likewise.
7402 * libgnarl/s-osinte__x32.adb: Likewise.
7403 * libgnarl/s-proinf.adb: Likewise.
7404 * libgnarl/s-proinf.ads: Likewise.
7405 * libgnarl/s-qnx.ads: Likewise.
7406 * libgnarl/s-solita.adb: Likewise.
7407 * libgnarl/s-solita.ads: Likewise.
7408 * libgnarl/s-stusta.adb: Likewise.
7409 * libgnarl/s-stusta.ads: Likewise.
7410 * libgnarl/s-taasde.adb: Likewise.
7411 * libgnarl/s-taasde.ads: Likewise.
7412 * libgnarl/s-tadeca.adb: Likewise.
7413 * libgnarl/s-tadeca.ads: Likewise.
7414 * libgnarl/s-tadert.adb: Likewise.
7415 * libgnarl/s-tadert.ads: Likewise.
7416 * libgnarl/s-taenca.adb: Likewise.
7417 * libgnarl/s-taenca.ads: Likewise.
7418 * libgnarl/s-taprob.adb: Likewise.
7419 * libgnarl/s-taprob.ads: Likewise.
7420 * libgnarl/s-taprop.ads: Likewise.
7421 * libgnarl/s-taprop__dummy.adb: Likewise.
7422 * libgnarl/s-taprop__hpux-dce.adb: Likewise.
7423 * libgnarl/s-taprop__linux.adb: Likewise.
7424 * libgnarl/s-taprop__mingw.adb: Likewise.
7425 * libgnarl/s-taprop__posix.adb: Likewise.
7426 * libgnarl/s-taprop__qnx.adb: Likewise.
7427 * libgnarl/s-taprop__solaris.adb: Likewise.
7428 * libgnarl/s-taprop__vxworks.adb: Likewise.
7429 * libgnarl/s-tarest.adb: Likewise.
7430 * libgnarl/s-tarest.ads: Likewise.
7431 * libgnarl/s-tasdeb.adb: Likewise.
7432 * libgnarl/s-tasdeb.ads: Likewise.
7433 * libgnarl/s-tasinf.adb: Likewise.
7434 * libgnarl/s-tasinf.ads: Likewise.
7435 * libgnarl/s-tasinf__linux.adb: Likewise.
7436 * libgnarl/s-tasinf__linux.ads: Likewise.
7437 * libgnarl/s-tasinf__mingw.adb: Likewise.
7438 * libgnarl/s-tasinf__mingw.ads: Likewise.
7439 * libgnarl/s-tasinf__solaris.adb: Likewise.
7440 * libgnarl/s-tasinf__solaris.ads: Likewise.
7441 * libgnarl/s-tasinf__vxworks.ads: Likewise.
7442 * libgnarl/s-tasini.adb: Likewise.
7443 * libgnarl/s-tasini.ads: Likewise.
7444 * libgnarl/s-taskin.adb: Likewise.
7445 * libgnarl/s-taskin.ads: Likewise.
7446 * libgnarl/s-taspri__dummy.ads: Likewise.
7447 * libgnarl/s-taspri__hpux-dce.ads: Likewise.
7448 * libgnarl/s-taspri__lynxos.ads: Likewise.
7449 * libgnarl/s-taspri__mingw.ads: Likewise.
7450 * libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
7451 * libgnarl/s-taspri__posix.ads: Likewise.
7452 * libgnarl/s-taspri__solaris.ads: Likewise.
7453 * libgnarl/s-taspri__vxworks.ads: Likewise.
7454 * libgnarl/s-tasque.adb: Likewise.
7455 * libgnarl/s-tasque.ads: Likewise.
7456 * libgnarl/s-tasren.adb: Likewise.
7457 * libgnarl/s-tasren.ads: Likewise.
7458 * libgnarl/s-tasres.ads: Likewise.
7459 * libgnarl/s-tassta.adb: Likewise.
7460 * libgnarl/s-tassta.ads: Likewise.
7461 * libgnarl/s-tasuti.adb: Likewise.
7462 * libgnarl/s-tasuti.ads: Likewise.
7463 * libgnarl/s-tataat.adb: Likewise.
7464 * libgnarl/s-tataat.ads: Likewise.
7465 * libgnarl/s-tpinop.adb: Likewise.
7466 * libgnarl/s-tpinop.ads: Likewise.
7467 * libgnarl/s-tpoaal.adb: Likewise.
7468 * libgnarl/s-tpoben.adb: Likewise.
7469 * libgnarl/s-tpoben.ads: Likewise.
7470 * libgnarl/s-tpobmu.adb: Likewise.
7471 * libgnarl/s-tpobmu.ads: Likewise.
7472 * libgnarl/s-tpobop.adb: Likewise.
7473 * libgnarl/s-tpobop.ads: Likewise.
7474 * libgnarl/s-tpopmo.adb: Likewise.
7475 * libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
7476 * libgnarl/s-tpopsp__posix.adb: Likewise.
7477 * libgnarl/s-tpopsp__solaris.adb: Likewise.
7478 * libgnarl/s-tpopsp__tls.adb: Likewise.
7479 * libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
7480 * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
7481 * libgnarl/s-tpopsp__vxworks.adb: Likewise.
7482 * libgnarl/s-tporft.adb: Likewise.
7483 * libgnarl/s-tposen.adb: Likewise.
7484 * libgnarl/s-tposen.ads: Likewise.
7485 * libgnarl/s-vxwext.adb: Likewise.
7486 * libgnarl/s-vxwext.ads: Likewise.
7487 * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
7488 * libgnarl/s-vxwext__kernel.adb: Likewise.
7489 * libgnarl/s-vxwext__kernel.ads: Likewise.
7490 * libgnarl/s-vxwext__noints.adb: Likewise.
7491 * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
7492 * libgnarl/s-vxwext__rtp.adb: Likewise.
7493 * libgnarl/s-vxwext__rtp.ads: Likewise.
7494 * libgnarl/s-vxwext__vthreads.ads: Likewise.
7495 * libgnarl/s-vxwork__aarch64.ads: Likewise.
7496 * libgnarl/s-vxwork__arm.ads: Likewise.
7497 * libgnarl/s-vxwork__ppc.ads: Likewise.
7498 * libgnarl/s-vxwork__x86.ads: Likewise.
7499 * libgnarl/thread.c: Likewise.
7500 * libgnat/a-assert.adb: Likewise.
7501 * libgnat/a-assert.ads: Likewise.
7502 * libgnat/a-btgbso.adb: Likewise.
7503 * libgnat/a-btgbso.ads: Likewise.
7504 * libgnat/a-calari.adb: Likewise.
7505 * libgnat/a-calari.ads: Likewise.
7506 * libgnat/a-calcon.adb: Likewise.
7507 * libgnat/a-calcon.ads: Likewise.
7508 * libgnat/a-caldel.adb: Likewise.
7509 * libgnat/a-caldel.ads: Likewise.
7510 * libgnat/a-calend.adb: Likewise.
7511 * libgnat/a-calend.ads: Likewise.
7512 * libgnat/a-calfor.adb: Likewise.
7513 * libgnat/a-calfor.ads: Likewise.
7514 * libgnat/a-catizo.adb: Likewise.
7515 * libgnat/a-cbdlli.adb: Likewise.
7516 * libgnat/a-cbdlli.ads: Likewise.
7517 * libgnat/a-cbhama.adb: Likewise.
7518 * libgnat/a-cbhama.ads: Likewise.
7519 * libgnat/a-cbhase.adb: Likewise.
7520 * libgnat/a-cbhase.ads: Likewise.
7521 * libgnat/a-cbmutr.adb: Likewise.
7522 * libgnat/a-cbmutr.ads: Likewise.
7523 * libgnat/a-cborma.adb: Likewise.
7524 * libgnat/a-cborma.ads: Likewise.
7525 * libgnat/a-cborse.adb: Likewise.
7526 * libgnat/a-cborse.ads: Likewise.
7527 * libgnat/a-cbprqu.adb: Likewise.
7528 * libgnat/a-cbprqu.ads: Likewise.
7529 * libgnat/a-cbsyqu.adb: Likewise.
7530 * libgnat/a-cbsyqu.ads: Likewise.
7531 * libgnat/a-cdlili.adb: Likewise.
7532 * libgnat/a-cdlili.ads: Likewise.
7533 * libgnat/a-cfdlli.adb: Likewise.
7534 * libgnat/a-cfdlli.ads: Likewise.
7535 * libgnat/a-cfhama.adb: Likewise.
7536 * libgnat/a-cfhama.ads: Likewise.
7537 * libgnat/a-cfhase.adb: Likewise.
7538 * libgnat/a-cfhase.ads: Likewise.
7539 * libgnat/a-cfinve.adb: Likewise.
7540 * libgnat/a-cfinve.ads: Likewise.
7541 * libgnat/a-cforma.adb: Likewise.
7542 * libgnat/a-cforma.ads: Likewise.
7543 * libgnat/a-cforse.adb: Likewise.
7544 * libgnat/a-cforse.ads: Likewise.
7545 * libgnat/a-cgaaso.adb: Likewise.
7546 * libgnat/a-cgaaso.ads: Likewise.
7547 * libgnat/a-cgarso.adb: Likewise.
7548 * libgnat/a-cgcaso.adb: Likewise.
7549 * libgnat/a-chacon.adb: Likewise.
7550 * libgnat/a-chacon.ads: Likewise.
7551 * libgnat/a-chahan.adb: Likewise.
7552 * libgnat/a-chahan.ads: Likewise.
7553 * libgnat/a-chlat9.ads: Likewise.
7554 * libgnat/a-chtgbk.adb: Likewise.
7555 * libgnat/a-chtgbk.ads: Likewise.
7556 * libgnat/a-chtgbo.adb: Likewise.
7557 * libgnat/a-chtgbo.ads: Likewise.
7558 * libgnat/a-chtgke.adb: Likewise.
7559 * libgnat/a-chtgke.ads: Likewise.
7560 * libgnat/a-chtgop.adb: Likewise.
7561 * libgnat/a-chtgop.ads: Likewise.
7562 * libgnat/a-chzla1.ads: Likewise.
7563 * libgnat/a-chzla9.ads: Likewise.
7564 * libgnat/a-cidlli.adb: Likewise.
7565 * libgnat/a-cidlli.ads: Likewise.
7566 * libgnat/a-cihama.adb: Likewise.
7567 * libgnat/a-cihama.ads: Likewise.
7568 * libgnat/a-cihase.adb: Likewise.
7569 * libgnat/a-cihase.ads: Likewise.
7570 * libgnat/a-cimutr.adb: Likewise.
7571 * libgnat/a-cimutr.ads: Likewise.
7572 * libgnat/a-ciorma.adb: Likewise.
7573 * libgnat/a-ciorma.ads: Likewise.
7574 * libgnat/a-ciormu.adb: Likewise.
7575 * libgnat/a-ciormu.ads: Likewise.
7576 * libgnat/a-ciorse.adb: Likewise.
7577 * libgnat/a-ciorse.ads: Likewise.
7578 * libgnat/a-clrefi.adb: Likewise.
7579 * libgnat/a-clrefi.ads: Likewise.
7580 * libgnat/a-coboho.adb: Likewise.
7581 * libgnat/a-coboho.ads: Likewise.
7582 * libgnat/a-cobove.adb: Likewise.
7583 * libgnat/a-cobove.ads: Likewise.
7584 * libgnat/a-cofove.adb: Likewise.
7585 * libgnat/a-cofove.ads: Likewise.
7586 * libgnat/a-cofuba.adb: Likewise.
7587 * libgnat/a-cofuba.ads: Likewise.
7588 * libgnat/a-cofuma.adb: Likewise.
7589 * libgnat/a-cofuma.ads: Likewise.
7590 * libgnat/a-cofuse.adb: Likewise.
7591 * libgnat/a-cofuse.ads: Likewise.
7592 * libgnat/a-cofuve.adb: Likewise.
7593 * libgnat/a-cofuve.ads: Likewise.
7594 * libgnat/a-cogeso.adb: Likewise.
7595 * libgnat/a-cogeso.ads: Likewise.
7596 * libgnat/a-cohama.adb: Likewise.
7597 * libgnat/a-cohama.ads: Likewise.
7598 * libgnat/a-cohase.adb: Likewise.
7599 * libgnat/a-cohase.ads: Likewise.
7600 * libgnat/a-cohata.ads: Likewise.
7601 * libgnat/a-coinho.adb: Likewise.
7602 * libgnat/a-coinho.ads: Likewise.
7603 * libgnat/a-coinho__shared.adb: Likewise.
7604 * libgnat/a-coinho__shared.ads: Likewise.
7605 * libgnat/a-coinve.adb: Likewise.
7606 * libgnat/a-coinve.ads: Likewise.
7607 * libgnat/a-colien.adb: Likewise.
7608 * libgnat/a-colien.ads: Likewise.
7609 * libgnat/a-colire.adb: Likewise.
7610 * libgnat/a-colire.ads: Likewise.
7611 * libgnat/a-comlin.adb: Likewise.
7612 * libgnat/a-comlin.ads: Likewise.
7613 * libgnat/a-comutr.adb: Likewise.
7614 * libgnat/a-comutr.ads: Likewise.
7615 * libgnat/a-conhel.adb: Likewise.
7616 * libgnat/a-conhel.ads: Likewise.
7617 * libgnat/a-convec.adb: Likewise.
7618 * libgnat/a-convec.ads: Likewise.
7619 * libgnat/a-coorma.adb: Likewise.
7620 * libgnat/a-coorma.ads: Likewise.
7621 * libgnat/a-coormu.adb: Likewise.
7622 * libgnat/a-coormu.ads: Likewise.
7623 * libgnat/a-coorse.adb: Likewise.
7624 * libgnat/a-coorse.ads: Likewise.
7625 * libgnat/a-coprnu.adb: Likewise.
7626 * libgnat/a-coprnu.ads: Likewise.
7627 * libgnat/a-crbltr.ads: Likewise.
7628 * libgnat/a-crbtgk.adb: Likewise.
7629 * libgnat/a-crbtgk.ads: Likewise.
7630 * libgnat/a-crbtgo.adb: Likewise.
7631 * libgnat/a-crbtgo.ads: Likewise.
7632 * libgnat/a-crdlli.adb: Likewise.
7633 * libgnat/a-crdlli.ads: Likewise.
7634 * libgnat/a-csquin.ads: Likewise.
7635 * libgnat/a-cuprqu.adb: Likewise.
7636 * libgnat/a-cuprqu.ads: Likewise.
7637 * libgnat/a-cusyqu.adb: Likewise.
7638 * libgnat/a-cusyqu.ads: Likewise.
7639 * libgnat/a-cwila1.ads: Likewise.
7640 * libgnat/a-cwila9.ads: Likewise.
7641 * libgnat/a-decima.adb: Likewise.
7642 * libgnat/a-decima.ads: Likewise.
7643 * libgnat/a-dhfina.adb: Likewise.
7644 * libgnat/a-dhfina.ads: Likewise.
7645 * libgnat/a-diocst.adb: Likewise.
7646 * libgnat/a-diocst.ads: Likewise.
7647 * libgnat/a-direct.adb: Likewise.
7648 * libgnat/a-direct.ads: Likewise.
7649 * libgnat/a-direio.adb: Likewise.
7650 * libgnat/a-direio.ads: Likewise.
7651 * libgnat/a-dirval.adb: Likewise.
7652 * libgnat/a-dirval.ads: Likewise.
7653 * libgnat/a-dirval__mingw.adb: Likewise.
7654 * libgnat/a-einuoc.adb: Likewise.
7655 * libgnat/a-einuoc.ads: Likewise.
7656 * libgnat/a-elchha.adb: Likewise.
7657 * libgnat/a-elchha.ads: Likewise.
7658 * libgnat/a-elchha__vxworks-ppc-full.adb: Likewise.
7659 * libgnat/a-envvar.adb: Likewise.
7660 * libgnat/a-excach.adb: Likewise.
7661 * libgnat/a-except.adb: Likewise.
7662 * libgnat/a-except.ads: Likewise.
7663 * libgnat/a-excpol.adb: Likewise.
7664 * libgnat/a-excpol__abort.adb: Likewise.
7665 * libgnat/a-exctra.adb: Likewise.
7666 * libgnat/a-exctra.ads: Likewise.
7667 * libgnat/a-exexda.adb: Likewise.
7668 * libgnat/a-exexpr.adb: Likewise.
7669 * libgnat/a-exextr.adb: Likewise.
7670 * libgnat/a-exstat.adb: Likewise.
7671 * libgnat/a-finali.adb: Likewise.
7672 * libgnat/a-finali.ads: Likewise.
7673 * libgnat/a-locale.adb: Likewise.
7674 * libgnat/a-locale.ads: Likewise.
7675 * libgnat/a-nbnbin.adb: Likewise.
7676 * libgnat/a-nbnbin__gmp.adb: Likewise.
7677 * libgnat/a-nbnbre.adb: Likewise.
7678 * libgnat/a-ngcefu.adb: Likewise.
7679 * libgnat/a-ngcoar.adb: Likewise.
7680 * libgnat/a-ngcoty.adb: Likewise.
7681 * libgnat/a-ngcoty.ads: Likewise.
7682 * libgnat/a-ngelfu.adb: Likewise.
7683 * libgnat/a-ngelfu.ads: Likewise.
7684 * libgnat/a-ngrear.adb: Likewise.
7685 * libgnat/a-ngrear.ads: Likewise.
7686 * libgnat/a-nudira.adb: Likewise.
7687 * libgnat/a-nudira.ads: Likewise.
7688 * libgnat/a-nuflra.adb: Likewise.
7689 * libgnat/a-nuflra.ads: Likewise.
7690 * libgnat/a-numaux.ads: Likewise.
7691 * libgnat/a-numaux__darwin.adb: Likewise.
7692 * libgnat/a-numaux__darwin.ads: Likewise.
7693 * libgnat/a-numaux__libc-x86.ads: Likewise.
7694 * libgnat/a-numaux__vxworks.ads: Likewise.
7695 * libgnat/a-numaux__x86.adb: Likewise.
7696 * libgnat/a-numaux__x86.ads: Likewise.
7697 * libgnat/a-rbtgbk.adb: Likewise.
7698 * libgnat/a-rbtgbk.ads: Likewise.
7699 * libgnat/a-rbtgbo.adb: Likewise.
7700 * libgnat/a-rbtgbo.ads: Likewise.
7701 * libgnat/a-rbtgso.adb: Likewise.
7702 * libgnat/a-rbtgso.ads: Likewise.
7703 * libgnat/a-sbecin.adb: Likewise.
7704 * libgnat/a-sbecin.ads: Likewise.
7705 * libgnat/a-sbhcin.adb: Likewise.
7706 * libgnat/a-sbhcin.ads: Likewise.
7707 * libgnat/a-sblcin.adb: Likewise.
7708 * libgnat/a-sblcin.ads: Likewise.
7709 * libgnat/a-secain.adb: Likewise.
7710 * libgnat/a-secain.ads: Likewise.
7711 * libgnat/a-sequio.adb: Likewise.
7712 * libgnat/a-sequio.ads: Likewise.
7713 * libgnat/a-sfecin.ads: Likewise.
7714 * libgnat/a-sfhcin.ads: Likewise.
7715 * libgnat/a-sflcin.ads: Likewise.
7716 * libgnat/a-shcain.adb: Likewise.
7717 * libgnat/a-shcain.ads: Likewise.
7718 * libgnat/a-siocst.adb: Likewise.
7719 * libgnat/a-siocst.ads: Likewise.
7720 * libgnat/a-slcain.adb: Likewise.
7721 * libgnat/a-slcain.ads: Likewise.
7722 * libgnat/a-ssicst.adb: Likewise.
7723 * libgnat/a-ssicst.ads: Likewise.
7724 * libgnat/a-stboha.adb: Likewise.
7725 * libgnat/a-stmaco.ads: Likewise.
7726 * libgnat/a-storio.adb: Likewise.
7727 * libgnat/a-strbou.adb: Likewise.
7728 * libgnat/a-strbou.ads: Likewise.
7729 * libgnat/a-stream.adb: Likewise.
7730 * libgnat/a-stream.ads: Likewise.
7731 * libgnat/a-strfix.adb: Likewise.
7732 * libgnat/a-strhas.adb: Likewise.
7733 * libgnat/a-strmap.adb: Likewise.
7734 * libgnat/a-strmap.ads: Likewise.
7735 * libgnat/a-strsea.adb: Likewise.
7736 * libgnat/a-strsea.ads: Likewise.
7737 * libgnat/a-strsup.adb: Likewise.
7738 * libgnat/a-strsup.ads: Likewise.
7739 * libgnat/a-strunb.adb: Likewise.
7740 * libgnat/a-strunb.ads: Likewise.
7741 * libgnat/a-strunb__shared.adb: Likewise.
7742 * libgnat/a-strunb__shared.ads: Likewise.
7743 * libgnat/a-ststio.adb: Likewise.
7744 * libgnat/a-ststio.ads: Likewise.
7745 * libgnat/a-stunau.adb: Likewise.
7746 * libgnat/a-stunau.ads: Likewise.
7747 * libgnat/a-stunau__shared.adb: Likewise.
7748 * libgnat/a-stunha.adb: Likewise.
7749 * libgnat/a-stuten.adb: Likewise.
7750 * libgnat/a-stwibo.adb: Likewise.
7751 * libgnat/a-stwibo.ads: Likewise.
7752 * libgnat/a-stwifi.adb: Likewise.
7753 * libgnat/a-stwiha.adb: Likewise.
7754 * libgnat/a-stwima.adb: Likewise.
7755 * libgnat/a-stwima.ads: Likewise.
7756 * libgnat/a-stwise.adb: Likewise.
7757 * libgnat/a-stwise.ads: Likewise.
7758 * libgnat/a-stwisu.adb: Likewise.
7759 * libgnat/a-stwisu.ads: Likewise.
7760 * libgnat/a-stwiun.adb: Likewise.
7761 * libgnat/a-stwiun.ads: Likewise.
7762 * libgnat/a-stwiun__shared.adb: Likewise.
7763 * libgnat/a-stwiun__shared.ads: Likewise.
7764 * libgnat/a-stzbou.adb: Likewise.
7765 * libgnat/a-stzbou.ads: Likewise.
7766 * libgnat/a-stzfix.adb: Likewise.
7767 * libgnat/a-stzhas.adb: Likewise.
7768 * libgnat/a-stzmap.adb: Likewise.
7769 * libgnat/a-stzmap.ads: Likewise.
7770 * libgnat/a-stzsea.adb: Likewise.
7771 * libgnat/a-stzsea.ads: Likewise.
7772 * libgnat/a-stzsup.adb: Likewise.
7773 * libgnat/a-stzsup.ads: Likewise.
7774 * libgnat/a-stzunb.adb: Likewise.
7775 * libgnat/a-stzunb.ads: Likewise.
7776 * libgnat/a-stzunb__shared.adb: Likewise.
7777 * libgnat/a-stzunb__shared.ads: Likewise.
7778 * libgnat/a-suecin.adb: Likewise.
7779 * libgnat/a-suecin.ads: Likewise.
7780 * libgnat/a-suenco.adb: Likewise.
7781 * libgnat/a-suenst.adb: Likewise.
7782 * libgnat/a-suewst.adb: Likewise.
7783 * libgnat/a-suezst.adb: Likewise.
7784 * libgnat/a-suhcin.adb: Likewise.
7785 * libgnat/a-suhcin.ads: Likewise.
7786 * libgnat/a-sulcin.adb: Likewise.
7787 * libgnat/a-sulcin.ads: Likewise.
7788 * libgnat/a-suteio.adb: Likewise.
7789 * libgnat/a-suteio.ads: Likewise.
7790 * libgnat/a-suteio__shared.adb: Likewise.
7791 * libgnat/a-swbwha.adb: Likewise.
7792 * libgnat/a-swmwco.ads: Likewise.
7793 * libgnat/a-swunau.adb: Likewise.
7794 * libgnat/a-swunau.ads: Likewise.
7795 * libgnat/a-swunau__shared.adb: Likewise.
7796 * libgnat/a-swuwha.adb: Likewise.
7797 * libgnat/a-swuwti.adb: Likewise.
7798 * libgnat/a-swuwti.ads: Likewise.
7799 * libgnat/a-swuwti__shared.adb: Likewise.
7800 * libgnat/a-szbzha.adb: Likewise.
7801 * libgnat/a-szmzco.ads: Likewise.
7802 * libgnat/a-szunau.adb: Likewise.
7803 * libgnat/a-szunau.ads: Likewise.
7804 * libgnat/a-szunau__shared.adb: Likewise.
7805 * libgnat/a-szuzha.adb: Likewise.
7806 * libgnat/a-szuzti.adb: Likewise.
7807 * libgnat/a-szuzti.ads: Likewise.
7808 * libgnat/a-szuzti__shared.adb: Likewise.
7809 * libgnat/a-tags.adb: Likewise.
7810 * libgnat/a-tags.ads: Likewise.
7811 * libgnat/a-teioed.adb: Likewise.
7812 * libgnat/a-teioed.ads: Likewise.
7813 * libgnat/a-textio.adb: Likewise.
7814 * libgnat/a-textio.ads: Likewise.
7815 * libgnat/a-tiboio.adb: Likewise.
7816 * libgnat/a-ticoau.adb: Likewise.
7817 * libgnat/a-ticoau.ads: Likewise.
7818 * libgnat/a-ticoio.adb: Likewise.
7819 * libgnat/a-ticoio.ads: Likewise.
7820 * libgnat/a-tideau.adb: Likewise.
7821 * libgnat/a-tideau.ads: Likewise.
7822 * libgnat/a-tideio.adb: Likewise.
7823 * libgnat/a-tideio.ads: Likewise.
7824 * libgnat/a-tienau.adb: Likewise.
7825 * libgnat/a-tienau.ads: Likewise.
7826 * libgnat/a-tienio.adb: Likewise.
7827 * libgnat/a-tifiio.adb: Likewise.
7828 * libgnat/a-tiflau.adb: Likewise.
7829 * libgnat/a-tiflau.ads: Likewise.
7830 * libgnat/a-tiflio.adb: Likewise.
7831 * libgnat/a-tiflio.ads: Likewise.
7832 * libgnat/a-tigeau.adb: Likewise.
7833 * libgnat/a-tigeau.ads: Likewise.
7834 * libgnat/a-tigeli.adb: Likewise.
7835 * libgnat/a-tiinau.adb: Likewise.
7836 * libgnat/a-tiinau.ads: Likewise.
7837 * libgnat/a-tiinio.adb: Likewise.
7838 * libgnat/a-tiinio.ads: Likewise.
7839 * libgnat/a-timoau.adb: Likewise.
7840 * libgnat/a-timoau.ads: Likewise.
7841 * libgnat/a-timoio.adb: Likewise.
7842 * libgnat/a-timoio.ads: Likewise.
7843 * libgnat/a-tiocst.adb: Likewise.
7844 * libgnat/a-tiocst.ads: Likewise.
7845 * libgnat/a-tirsfi.adb: Likewise.
7846 * libgnat/a-tirsfi.ads: Likewise.
7847 * libgnat/a-titest.adb: Likewise.
7848 * libgnat/a-undesu.adb: Likewise.
7849 * libgnat/a-wichha.adb: Likewise.
7850 * libgnat/a-wichun.adb: Likewise.
7851 * libgnat/a-wichun.ads: Likewise.
7852 * libgnat/a-witeio.adb: Likewise.
7853 * libgnat/a-witeio.ads: Likewise.
7854 * libgnat/a-wrstfi.adb: Likewise.
7855 * libgnat/a-wrstfi.ads: Likewise.
7856 * libgnat/a-wtcoau.adb: Likewise.
7857 * libgnat/a-wtcoau.ads: Likewise.
7858 * libgnat/a-wtcoio.adb: Likewise.
7859 * libgnat/a-wtcstr.adb: Likewise.
7860 * libgnat/a-wtcstr.ads: Likewise.
7861 * libgnat/a-wtdeau.adb: Likewise.
7862 * libgnat/a-wtdeau.ads: Likewise.
7863 * libgnat/a-wtdeio.adb: Likewise.
7864 * libgnat/a-wtedit.adb: Likewise.
7865 * libgnat/a-wtedit.ads: Likewise.
7866 * libgnat/a-wtenau.adb: Likewise.
7867 * libgnat/a-wtenau.ads: Likewise.
7868 * libgnat/a-wtenio.adb: Likewise.
7869 * libgnat/a-wtfiio.adb: Likewise.
7870 * libgnat/a-wtflau.adb: Likewise.
7871 * libgnat/a-wtflau.ads: Likewise.
7872 * libgnat/a-wtflio.adb: Likewise.
7873 * libgnat/a-wtgeau.adb: Likewise.
7874 * libgnat/a-wtgeau.ads: Likewise.
7875 * libgnat/a-wtinau.adb: Likewise.
7876 * libgnat/a-wtinau.ads: Likewise.
7877 * libgnat/a-wtinio.adb: Likewise.
7878 * libgnat/a-wtmoau.adb: Likewise.
7879 * libgnat/a-wtmoau.ads: Likewise.
7880 * libgnat/a-wtmoio.adb: Likewise.
7881 * libgnat/a-wtmoio.ads: Likewise.
7882 * libgnat/a-wttest.adb: Likewise.
7883 * libgnat/a-wwboio.adb: Likewise.
7884 * libgnat/a-zchhan.adb: Likewise.
7885 * libgnat/a-zchuni.adb: Likewise.
7886 * libgnat/a-zchuni.ads: Likewise.
7887 * libgnat/a-zrstfi.adb: Likewise.
7888 * libgnat/a-zrstfi.ads: Likewise.
7889 * libgnat/a-ztcoau.adb: Likewise.
7890 * libgnat/a-ztcoio.adb: Likewise.
7891 * libgnat/a-ztcstr.adb: Likewise.
7892 * libgnat/a-ztcstr.ads: Likewise.
7893 * libgnat/a-ztdeau.adb: Likewise.
7894 * libgnat/a-ztdeau.ads: Likewise.
7895 * libgnat/a-ztdeio.adb: Likewise.
7896 * libgnat/a-ztedit.adb: Likewise.
7897 * libgnat/a-ztedit.ads: Likewise.
7898 * libgnat/a-ztenau.adb: Likewise.
7899 * libgnat/a-ztenau.ads: Likewise.
7900 * libgnat/a-ztenio.adb: Likewise.
7901 * libgnat/a-ztexio.adb: Likewise.
7902 * libgnat/a-ztexio.ads: Likewise.
7903 * libgnat/a-ztfiio.adb: Likewise.
7904 * libgnat/a-ztflau.adb: Likewise.
7905 * libgnat/a-ztflau.ads: Likewise.
7906 * libgnat/a-ztflio.adb: Likewise.
7907 * libgnat/a-ztgeau.adb: Likewise.
7908 * libgnat/a-ztgeau.ads: Likewise.
7909 * libgnat/a-ztinau.adb: Likewise.
7910 * libgnat/a-ztinau.ads: Likewise.
7911 * libgnat/a-ztinio.adb: Likewise.
7912 * libgnat/a-ztmoau.adb: Likewise.
7913 * libgnat/a-ztmoau.ads: Likewise.
7914 * libgnat/a-ztmoio.adb: Likewise.
7915 * libgnat/a-zttest.adb: Likewise.
7916 * libgnat/a-zzboio.adb: Likewise.
7917 * libgnat/g-allein.ads: Likewise.
7918 * libgnat/g-alleve.adb: Likewise.
7919 * libgnat/g-alleve.ads: Likewise.
7920 * libgnat/g-alleve__hard.adb: Likewise.
7921 * libgnat/g-alleve__hard.ads: Likewise.
7922 * libgnat/g-altcon.adb: Likewise.
7923 * libgnat/g-altcon.ads: Likewise.
7924 * libgnat/g-altive.ads: Likewise.
7925 * libgnat/g-alveop.adb: Likewise.
7926 * libgnat/g-alveop.ads: Likewise.
7927 * libgnat/g-alvety.ads: Likewise.
7928 * libgnat/g-alvevi.ads: Likewise.
7929 * libgnat/g-arrspl.adb: Likewise.
7930 * libgnat/g-arrspl.ads: Likewise.
7931 * libgnat/g-awk.adb: Likewise.
7932 * libgnat/g-awk.ads: Likewise.
7933 * libgnat/g-binenv.adb: Likewise.
7934 * libgnat/g-binenv.ads: Likewise.
7935 * libgnat/g-brapre.ads: Likewise.
7936 * libgnat/g-bubsor.adb: Likewise.
7937 * libgnat/g-bubsor.ads: Likewise.
7938 * libgnat/g-busora.adb: Likewise.
7939 * libgnat/g-busora.ads: Likewise.
7940 * libgnat/g-busorg.adb: Likewise.
7941 * libgnat/g-busorg.ads: Likewise.
7942 * libgnat/g-byorma.adb: Likewise.
7943 * libgnat/g-byorma.ads: Likewise.
7944 * libgnat/g-bytswa.adb: Likewise.
7945 * libgnat/g-bytswa.ads: Likewise.
7946 * libgnat/g-calend.adb: Likewise.
7947 * libgnat/g-calend.ads: Likewise.
7948 * libgnat/g-casuti.adb: Likewise.
7949 * libgnat/g-casuti.ads: Likewise.
7950 * libgnat/g-catiio.adb: Likewise.
7951 * libgnat/g-catiio.ads: Likewise.
7952 * libgnat/g-cgi.adb: Likewise.
7953 * libgnat/g-cgi.ads: Likewise.
7954 * libgnat/g-cgicoo.adb: Likewise.
7955 * libgnat/g-cgicoo.ads: Likewise.
7956 * libgnat/g-cgideb.adb: Likewise.
7957 * libgnat/g-cgideb.ads: Likewise.
7958 * libgnat/g-comlin.adb: Likewise.
7959 * libgnat/g-comlin.ads: Likewise.
7960 * libgnat/g-comver.adb: Likewise.
7961 * libgnat/g-comver.ads: Likewise.
7962 * libgnat/g-cppexc.adb: Likewise.
7963 * libgnat/g-cppexc.ads: Likewise.
7964 * libgnat/g-crc32.adb: Likewise.
7965 * libgnat/g-crc32.ads: Likewise.
7966 * libgnat/g-ctrl_c.adb: Likewise.
7967 * libgnat/g-ctrl_c.ads: Likewise.
7968 * libgnat/g-curexc.ads: Likewise.
7969 * libgnat/g-debpoo.adb: Likewise.
7970 * libgnat/g-debpoo.ads: Likewise.
7971 * libgnat/g-debuti.adb: Likewise.
7972 * libgnat/g-debuti.ads: Likewise.
7973 * libgnat/g-decstr.adb: Likewise.
7974 * libgnat/g-decstr.ads: Likewise.
7975 * libgnat/g-deutst.ads: Likewise.
7976 * libgnat/g-diopit.adb: Likewise.
7977 * libgnat/g-diopit.ads: Likewise.
7978 * libgnat/g-dirope.adb: Likewise.
7979 * libgnat/g-dirope.ads: Likewise.
7980 * libgnat/g-dynhta.adb: Likewise.
7981 * libgnat/g-dynhta.ads: Likewise.
7982 * libgnat/g-dyntab.adb: Likewise.
7983 * libgnat/g-dyntab.ads: Likewise.
7984 * libgnat/g-eacodu.adb: Likewise.
7985 * libgnat/g-encstr.adb: Likewise.
7986 * libgnat/g-encstr.ads: Likewise.
7987 * libgnat/g-enutst.ads: Likewise.
7988 * libgnat/g-excact.adb: Likewise.
7989 * libgnat/g-excact.ads: Likewise.
7990 * libgnat/g-except.ads: Likewise.
7991 * libgnat/g-exctra.adb: Likewise.
7992 * libgnat/g-exctra.ads: Likewise.
7993 * libgnat/g-expect.adb: Likewise.
7994 * libgnat/g-expect.ads: Likewise.
7995 * libgnat/g-exptty.adb: Likewise.
7996 * libgnat/g-exptty.ads: Likewise.
7997 * libgnat/g-flocon.ads: Likewise.
7998 * libgnat/g-forstr.adb: Likewise.
7999 * libgnat/g-forstr.ads: Likewise.
8000 * libgnat/g-graphs.adb: Likewise.
8001 * libgnat/g-graphs.ads: Likewise.
8002 * libgnat/g-heasor.adb: Likewise.
8003 * libgnat/g-heasor.ads: Likewise.
8004 * libgnat/g-hesora.adb: Likewise.
8005 * libgnat/g-hesora.ads: Likewise.
8006 * libgnat/g-hesorg.adb: Likewise.
8007 * libgnat/g-hesorg.ads: Likewise.
8008 * libgnat/g-htable.adb: Likewise.
8009 * libgnat/g-htable.ads: Likewise.
8010 * libgnat/g-io-put__vxworks.adb: Likewise.
8011 * libgnat/g-io.adb: Likewise.
8012 * libgnat/g-io.ads: Likewise.
8013 * libgnat/g-io_aux.adb: Likewise.
8014 * libgnat/g-io_aux.ads: Likewise.
8015 * libgnat/g-lists.adb: Likewise.
8016 * libgnat/g-lists.ads: Likewise.
8017 * libgnat/g-locfil.adb: Likewise.
8018 * libgnat/g-locfil.ads: Likewise.
8019 * libgnat/g-mbdira.adb: Likewise.
8020 * libgnat/g-mbdira.ads: Likewise.
8021 * libgnat/g-mbflra.adb: Likewise.
8022 * libgnat/g-mbflra.ads: Likewise.
8023 * libgnat/g-md5.adb: Likewise.
8024 * libgnat/g-md5.ads: Likewise.
8025 * libgnat/g-memdum.adb: Likewise.
8026 * libgnat/g-memdum.ads: Likewise.
8027 * libgnat/g-moreex.adb: Likewise.
8028 * libgnat/g-moreex.ads: Likewise.
8029 * libgnat/g-os_lib.adb: Likewise.
8030 * libgnat/g-os_lib.ads: Likewise.
8031 * libgnat/g-pehage.adb: Likewise.
8032 * libgnat/g-pehage.ads: Likewise.
8033 * libgnat/g-rannum.adb: Likewise.
8034 * libgnat/g-rannum.ads: Likewise.
8035 * libgnat/g-regexp.adb: Likewise.
8036 * libgnat/g-regexp.ads: Likewise.
8037 * libgnat/g-regist.adb: Likewise.
8038 * libgnat/g-regist.ads: Likewise.
8039 * libgnat/g-regpat.adb: Likewise.
8040 * libgnat/g-regpat.ads: Likewise.
8041 * libgnat/g-rewdat.adb: Likewise.
8042 * libgnat/g-rewdat.ads: Likewise.
8043 * libgnat/g-sechas.adb: Likewise.
8044 * libgnat/g-sechas.ads: Likewise.
8045 * libgnat/g-sehamd.adb: Likewise.
8046 * libgnat/g-sehamd.ads: Likewise.
8047 * libgnat/g-sehash.adb: Likewise.
8048 * libgnat/g-sehash.ads: Likewise.
8049 * libgnat/g-sercom.adb: Likewise.
8050 * libgnat/g-sercom.ads: Likewise.
8051 * libgnat/g-sercom__linux.adb: Likewise.
8052 * libgnat/g-sercom__mingw.adb: Likewise.
8053 * libgnat/g-sestin.ads: Likewise.
8054 * libgnat/g-sets.adb: Likewise.
8055 * libgnat/g-sets.ads: Likewise.
8056 * libgnat/g-sha1.adb: Likewise.
8057 * libgnat/g-sha1.ads: Likewise.
8058 * libgnat/g-sha224.ads: Likewise.
8059 * libgnat/g-sha256.ads: Likewise.
8060 * libgnat/g-sha384.ads: Likewise.
8061 * libgnat/g-sha512.ads: Likewise.
8062 * libgnat/g-shsh32.adb: Likewise.
8063 * libgnat/g-shsh32.ads: Likewise.
8064 * libgnat/g-shsh64.adb: Likewise.
8065 * libgnat/g-shsh64.ads: Likewise.
8066 * libgnat/g-shshco.adb: Likewise.
8067 * libgnat/g-shshco.ads: Likewise.
8068 * libgnat/g-soccon.ads: Likewise.
8069 * libgnat/g-socket.adb: Likewise.
8070 * libgnat/g-socket.ads: Likewise.
8071 * libgnat/g-socket__dummy.adb: Likewise.
8072 * libgnat/g-socket__dummy.ads: Likewise.
8073 * libgnat/g-socthi.adb: Likewise.
8074 * libgnat/g-socthi.ads: Likewise.
8075 * libgnat/g-socthi__dummy.adb: Likewise.
8076 * libgnat/g-socthi__dummy.ads: Likewise.
8077 * libgnat/g-socthi__mingw.adb: Likewise.
8078 * libgnat/g-socthi__mingw.ads: Likewise.
8079 * libgnat/g-socthi__vxworks.adb: Likewise.
8080 * libgnat/g-socthi__vxworks.ads: Likewise.
8081 * libgnat/g-soliop.ads: Likewise.
8082 * libgnat/g-soliop__lynxos.ads: Likewise.
8083 * libgnat/g-soliop__mingw.ads: Likewise.
8084 * libgnat/g-soliop__qnx.ads: Likewise.
8085 * libgnat/g-soliop__solaris.ads: Likewise.
8086 * libgnat/g-sothco.adb: Likewise.
8087 * libgnat/g-sothco.ads: Likewise.
8088 * libgnat/g-sothco__dummy.adb: Likewise.
8089 * libgnat/g-sothco__dummy.ads: Likewise.
8090 * libgnat/g-souinf.ads: Likewise.
8091 * libgnat/g-spchge.adb: Likewise.
8092 * libgnat/g-spchge.ads: Likewise.
8093 * libgnat/g-speche.adb: Likewise.
8094 * libgnat/g-speche.ads: Likewise.
8095 * libgnat/g-spipat.adb: Likewise.
8096 * libgnat/g-spipat.ads: Likewise.
8097 * libgnat/g-spitbo.adb: Likewise.
8098 * libgnat/g-spitbo.ads: Likewise.
8099 * libgnat/g-sptabo.ads: Likewise.
8100 * libgnat/g-sptain.ads: Likewise.
8101 * libgnat/g-sptavs.ads: Likewise.
8102 * libgnat/g-sse.ads: Likewise.
8103 * libgnat/g-ssvety.ads: Likewise.
8104 * libgnat/g-sthcso.adb: Likewise.
8105 * libgnat/g-stheme.adb: Likewise.
8106 * libgnat/g-strhas.ads: Likewise.
8107 * libgnat/g-string.adb: Likewise.
8108 * libgnat/g-string.ads: Likewise.
8109 * libgnat/g-strspl.ads: Likewise.
8110 * libgnat/g-stseme.adb: Likewise.
8111 * libgnat/g-stsifd__sockets.adb: Likewise.
8112 * libgnat/g-table.adb: Likewise.
8113 * libgnat/g-table.ads: Likewise.
8114 * libgnat/g-tasloc.adb: Likewise.
8115 * libgnat/g-tasloc.ads: Likewise.
8116 * libgnat/g-timsta.adb: Likewise.
8117 * libgnat/g-timsta.ads: Likewise.
8118 * libgnat/g-traceb.adb: Likewise.
8119 * libgnat/g-traceb.ads: Likewise.
8120 * libgnat/g-trasym.adb: Likewise.
8121 * libgnat/g-trasym.ads: Likewise.
8122 * libgnat/g-tty.adb: Likewise.
8123 * libgnat/g-tty.ads: Likewise.
8124 * libgnat/g-u3spch.adb: Likewise.
8125 * libgnat/g-u3spch.ads: Likewise.
8126 * libgnat/g-utf_32.adb: Likewise.
8127 * libgnat/g-utf_32.ads: Likewise.
8128 * libgnat/g-wispch.adb: Likewise.
8129 * libgnat/g-wispch.ads: Likewise.
8130 * libgnat/g-wistsp.ads: Likewise.
8131 * libgnat/g-zspche.adb: Likewise.
8132 * libgnat/g-zspche.ads: Likewise.
8133 * libgnat/g-zstspl.ads: Likewise.
8134 * libgnat/gnat.ads: Likewise.
8135 * libgnat/i-c.adb: Likewise.
8136 * libgnat/i-cexten.ads: Likewise.
8137 * libgnat/i-cobol.adb: Likewise.
8138 * libgnat/i-cobol.ads: Likewise.
8139 * libgnat/i-cpoint.adb: Likewise.
8140 * libgnat/i-cpoint.ads: Likewise.
8141 * libgnat/i-cstrea.adb: Likewise.
8142 * libgnat/i-cstrea.ads: Likewise.
8143 * libgnat/i-cstrin.adb: Likewise.
8144 * libgnat/i-cstrin.ads: Likewise.
8145 * libgnat/i-fortra.adb: Likewise.
8146 * libgnat/i-pacdec.adb: Likewise.
8147 * libgnat/i-pacdec.ads: Likewise.
8148 * libgnat/i-vxwoio.adb: Likewise.
8149 * libgnat/i-vxwoio.ads: Likewise.
8150 * libgnat/i-vxwork.ads: Likewise.
8151 * libgnat/i-vxwork__x86.ads: Likewise.
8152 * libgnat/interfac.ads: Likewise.
8153 * libgnat/memtrack.adb: Likewise.
8154 * libgnat/s-addima.adb: Likewise.
8155 * libgnat/s-addima.ads: Likewise.
8156 * libgnat/s-addope.adb: Likewise.
8157 * libgnat/s-addope.ads: Likewise.
8158 * libgnat/s-aotase.adb: Likewise.
8159 * libgnat/s-aotase.ads: Likewise.
8160 * libgnat/s-arit64.adb: Likewise.
8161 * libgnat/s-arit64.ads: Likewise.
8162 * libgnat/s-assert.adb: Likewise.
8163 * libgnat/s-assert.ads: Likewise.
8164 * libgnat/s-atacco.adb: Likewise.
8165 * libgnat/s-atacco.ads: Likewise.
8166 * libgnat/s-atocou.adb: Likewise.
8167 * libgnat/s-atocou.ads: Likewise.
8168 * libgnat/s-atocou__builtin.adb: Likewise.
8169 * libgnat/s-atocou__x86.adb: Likewise.
8170 * libgnat/s-atoope.ads: Likewise.
8171 * libgnat/s-atopar.adb: Likewise.
8172 * libgnat/s-atopar.ads: Likewise.
8173 * libgnat/s-atopex.adb: Likewise.
8174 * libgnat/s-atopex.ads: Likewise.
8175 * libgnat/s-atopri.adb: Likewise.
8176 * libgnat/s-atopri.ads: Likewise.
8177 * libgnat/s-auxdec.adb: Likewise.
8178 * libgnat/s-auxdec.ads: Likewise.
8179 * libgnat/s-bignum.adb: Likewise.
8180 * libgnat/s-bignum.ads: Likewise.
8181 * libgnat/s-bitfie.ads: Likewise.
8182 * libgnat/s-bitops.adb: Likewise.
8183 * libgnat/s-bitops.ads: Likewise.
8184 * libgnat/s-bituti.adb: Likewise.
8185 * libgnat/s-bituti.ads: Likewise.
8186 * libgnat/s-boarop.ads: Likewise.
8187 * libgnat/s-boustr.adb: Likewise.
8188 * libgnat/s-boustr.ads: Likewise.
8189 * libgnat/s-bytswa.ads: Likewise.
8190 * libgnat/s-carsi8.adb: Likewise.
8191 * libgnat/s-carsi8.ads: Likewise.
8192 * libgnat/s-carun8.adb: Likewise.
8193 * libgnat/s-carun8.ads: Likewise.
8194 * libgnat/s-casi16.adb: Likewise.
8195 * libgnat/s-casi16.ads: Likewise.
8196 * libgnat/s-casi32.adb: Likewise.
8197 * libgnat/s-casi32.ads: Likewise.
8198 * libgnat/s-casi64.adb: Likewise.
8199 * libgnat/s-casi64.ads: Likewise.
8200 * libgnat/s-casuti.adb: Likewise.
8201 * libgnat/s-casuti.ads: Likewise.
8202 * libgnat/s-caun16.adb: Likewise.
8203 * libgnat/s-caun16.ads: Likewise.
8204 * libgnat/s-caun32.adb: Likewise.
8205 * libgnat/s-caun32.ads: Likewise.
8206 * libgnat/s-caun64.adb: Likewise.
8207 * libgnat/s-caun64.ads: Likewise.
8208 * libgnat/s-chepoo.ads: Likewise.
8209 * libgnat/s-commun.adb: Likewise.
8210 * libgnat/s-commun.ads: Likewise.
8211 * libgnat/s-conca2.adb: Likewise.
8212 * libgnat/s-conca2.ads: Likewise.
8213 * libgnat/s-conca3.adb: Likewise.
8214 * libgnat/s-conca3.ads: Likewise.
8215 * libgnat/s-conca4.adb: Likewise.
8216 * libgnat/s-conca4.ads: Likewise.
8217 * libgnat/s-conca5.adb: Likewise.
8218 * libgnat/s-conca5.ads: Likewise.
8219 * libgnat/s-conca6.adb: Likewise.
8220 * libgnat/s-conca6.ads: Likewise.
8221 * libgnat/s-conca7.adb: Likewise.
8222 * libgnat/s-conca7.ads: Likewise.
8223 * libgnat/s-conca8.adb: Likewise.
8224 * libgnat/s-conca8.ads: Likewise.
8225 * libgnat/s-conca9.adb: Likewise.
8226 * libgnat/s-conca9.ads: Likewise.
8227 * libgnat/s-crc32.adb: Likewise.
8228 * libgnat/s-crc32.ads: Likewise.
8229 * libgnat/s-crtl.ads: Likewise.
8230 * libgnat/s-dfmkio.ads: Likewise.
8231 * libgnat/s-dfmopr.ads: Likewise.
8232 * libgnat/s-dgmgop.ads: Likewise.
8233 * libgnat/s-diflio.adb: Likewise.
8234 * libgnat/s-diflio.ads: Likewise.
8235 * libgnat/s-diflmk.ads: Likewise.
8236 * libgnat/s-digemk.ads: Likewise.
8237 * libgnat/s-diinio.adb: Likewise.
8238 * libgnat/s-diinio.ads: Likewise.
8239 * libgnat/s-dilomk.ads: Likewise.
8240 * libgnat/s-dim.ads: Likewise.
8241 * libgnat/s-dimkio.ads: Likewise.
8242 * libgnat/s-dimmks.ads: Likewise.
8243 * libgnat/s-direio.adb: Likewise.
8244 * libgnat/s-direio.ads: Likewise.
8245 * libgnat/s-dlmkio.ads: Likewise.
8246 * libgnat/s-dlmopr.ads: Likewise.
8247 * libgnat/s-dmotpr.ads: Likewise.
8248 * libgnat/s-dsaser.ads: Likewise.
8249 * libgnat/s-dwalin.adb: Likewise.
8250 * libgnat/s-dwalin.ads: Likewise.
8251 * libgnat/s-elaall.adb: Likewise.
8252 * libgnat/s-elaall.ads: Likewise.
8253 * libgnat/s-excdeb.adb: Likewise.
8254 * libgnat/s-excdeb.ads: Likewise.
8255 * libgnat/s-except.adb: Likewise.
8256 * libgnat/s-except.ads: Likewise.
8257 * libgnat/s-excmac__arm.adb: Likewise.
8258 * libgnat/s-excmac__arm.ads: Likewise.
8259 * libgnat/s-excmac__gcc.adb: Likewise.
8260 * libgnat/s-excmac__gcc.ads: Likewise.
8261 * libgnat/s-exctab.adb: Likewise.
8262 * libgnat/s-exctab.ads: Likewise.
8263 * libgnat/s-exctra.adb: Likewise.
8264 * libgnat/s-exctra.ads: Likewise.
8265 * libgnat/s-exnint.adb: Likewise.
8266 * libgnat/s-exnint.ads: Likewise.
8267 * libgnat/s-exnllf.adb: Likewise.
8268 * libgnat/s-exnllf.ads: Likewise.
8269 * libgnat/s-exnlli.adb: Likewise.
8270 * libgnat/s-exnlli.ads: Likewise.
8271 * libgnat/s-expint.adb: Likewise.
8272 * libgnat/s-expint.ads: Likewise.
8273 * libgnat/s-explli.adb: Likewise.
8274 * libgnat/s-explli.ads: Likewise.
8275 * libgnat/s-expllu.adb: Likewise.
8276 * libgnat/s-expllu.ads: Likewise.
8277 * libgnat/s-expmod.adb: Likewise.
8278 * libgnat/s-expmod.ads: Likewise.
8279 * libgnat/s-expuns.adb: Likewise.
8280 * libgnat/s-expuns.ads: Likewise.
8281 * libgnat/s-fatflt.ads: Likewise.
8282 * libgnat/s-fatgen.adb: Likewise.
8283 * libgnat/s-fatgen.ads: Likewise.
8284 * libgnat/s-fatlfl.ads: Likewise.
8285 * libgnat/s-fatllf.ads: Likewise.
8286 * libgnat/s-fatsfl.ads: Likewise.
8287 * libgnat/s-ficobl.ads: Likewise.
8288 * libgnat/s-filatt.ads: Likewise.
8289 * libgnat/s-fileio.adb: Likewise.
8290 * libgnat/s-fileio.ads: Likewise.
8291 * libgnat/s-finmas.adb: Likewise.
8292 * libgnat/s-finmas.ads: Likewise.
8293 * libgnat/s-finroo.adb: Likewise.
8294 * libgnat/s-finroo.ads: Likewise.
8295 * libgnat/s-flocon.adb: Likewise.
8296 * libgnat/s-flocon.ads: Likewise.
8297 * libgnat/s-flocon__none.adb: Likewise.
8298 * libgnat/s-fore.adb: Likewise.
8299 * libgnat/s-fore.ads: Likewise.
8300 * libgnat/s-gearop.adb: Likewise.
8301 * libgnat/s-gearop.ads: Likewise.
8302 * libgnat/s-genbig.adb: Likewise.
8303 * libgnat/s-genbig.ads: Likewise.
8304 * libgnat/s-geveop.adb: Likewise.
8305 * libgnat/s-geveop.ads: Likewise.
8306 * libgnat/s-gloloc.adb: Likewise.
8307 * libgnat/s-gloloc.ads: Likewise.
8308 * libgnat/s-gloloc__mingw.adb: Likewise.
8309 * libgnat/s-htable.adb: Likewise.
8310 * libgnat/s-htable.ads: Likewise.
8311 * libgnat/s-imenne.adb: Likewise.
8312 * libgnat/s-imenne.ads: Likewise.
8313 * libgnat/s-imgbiu.adb: Likewise.
8314 * libgnat/s-imgbiu.ads: Likewise.
8315 * libgnat/s-imgboo.adb: Likewise.
8316 * libgnat/s-imgboo.ads: Likewise.
8317 * libgnat/s-imgcha.adb: Likewise.
8318 * libgnat/s-imgcha.ads: Likewise.
8319 * libgnat/s-imgdec.adb: Likewise.
8320 * libgnat/s-imgdec.ads: Likewise.
8321 * libgnat/s-imgenu.adb: Likewise.
8322 * libgnat/s-imgenu.ads: Likewise.
8323 * libgnat/s-imgint.adb: Likewise.
8324 * libgnat/s-imgint.ads: Likewise.
8325 * libgnat/s-imgllb.adb: Likewise.
8326 * libgnat/s-imgllb.ads: Likewise.
8327 * libgnat/s-imglld.adb: Likewise.
8328 * libgnat/s-imglld.ads: Likewise.
8329 * libgnat/s-imglli.adb: Likewise.
8330 * libgnat/s-imglli.ads: Likewise.
8331 * libgnat/s-imgllu.adb: Likewise.
8332 * libgnat/s-imgllu.ads: Likewise.
8333 * libgnat/s-imgllw.adb: Likewise.
8334 * libgnat/s-imgllw.ads: Likewise.
8335 * libgnat/s-imgrea.adb: Likewise.
8336 * libgnat/s-imgrea.ads: Likewise.
8337 * libgnat/s-imguns.adb: Likewise.
8338 * libgnat/s-imguns.ads: Likewise.
8339 * libgnat/s-imgwch.adb: Likewise.
8340 * libgnat/s-imgwch.ads: Likewise.
8341 * libgnat/s-imgwiu.adb: Likewise.
8342 * libgnat/s-imgwiu.ads: Likewise.
8343 * libgnat/s-io.adb: Likewise.
8344 * libgnat/s-io.ads: Likewise.
8345 * libgnat/s-llflex.ads: Likewise.
8346 * libgnat/s-maccod.ads: Likewise.
8347 * libgnat/s-mantis.adb: Likewise.
8348 * libgnat/s-mantis.ads: Likewise.
8349 * libgnat/s-mastop.adb: Likewise.
8350 * libgnat/s-mastop.ads: Likewise.
8351 * libgnat/s-memcop.ads: Likewise.
8352 * libgnat/s-memory.adb: Likewise.
8353 * libgnat/s-memory.ads: Likewise.
8354 * libgnat/s-mmap.adb: Likewise.
8355 * libgnat/s-mmap.ads: Likewise.
8356 * libgnat/s-mmauni__long.ads: Likewise.
8357 * libgnat/s-mmosin__mingw.adb: Likewise.
8358 * libgnat/s-mmosin__mingw.ads: Likewise.
8359 * libgnat/s-mmosin__unix.adb: Likewise.
8360 * libgnat/s-mmosin__unix.ads: Likewise.
8361 * libgnat/s-multip.adb: Likewise.
8362 * libgnat/s-objrea.adb: Likewise.
8363 * libgnat/s-objrea.ads: Likewise.
8364 * libgnat/s-optide.adb: Likewise.
8365 * libgnat/s-os_lib.adb: Likewise.
8366 * libgnat/s-os_lib.ads: Likewise.
8367 * libgnat/s-osprim.ads: Likewise.
8368 * libgnat/s-osprim__darwin.adb: Likewise.
8369 * libgnat/s-osprim__lynxos.ads: Likewise.
8370 * libgnat/s-osprim__mingw.adb: Likewise.
8371 * libgnat/s-osprim__posix.adb: Likewise.
8372 * libgnat/s-osprim__posix2008.adb: Likewise.
8373 * libgnat/s-osprim__rtems.adb: Likewise.
8374 * libgnat/s-osprim__solaris.adb: Likewise.
8375 * libgnat/s-osprim__unix.adb: Likewise.
8376 * libgnat/s-osprim__vxworks.adb: Likewise.
8377 * libgnat/s-osprim__x32.adb: Likewise.
8378 * libgnat/s-osvers__vxworks-653.ads: Likewise.
8379 * libgnat/s-pack03.adb: Likewise.
8380 * libgnat/s-pack03.ads: Likewise.
8381 * libgnat/s-pack05.adb: Likewise.
8382 * libgnat/s-pack05.ads: Likewise.
8383 * libgnat/s-pack06.adb: Likewise.
8384 * libgnat/s-pack06.ads: Likewise.
8385 * libgnat/s-pack07.adb: Likewise.
8386 * libgnat/s-pack07.ads: Likewise.
8387 * libgnat/s-pack09.adb: Likewise.
8388 * libgnat/s-pack09.ads: Likewise.
8389 * libgnat/s-pack10.adb: Likewise.
8390 * libgnat/s-pack10.ads: Likewise.
8391 * libgnat/s-pack11.adb: Likewise.
8392 * libgnat/s-pack11.ads: Likewise.
8393 * libgnat/s-pack12.adb: Likewise.
8394 * libgnat/s-pack12.ads: Likewise.
8395 * libgnat/s-pack13.adb: Likewise.
8396 * libgnat/s-pack13.ads: Likewise.
8397 * libgnat/s-pack14.adb: Likewise.
8398 * libgnat/s-pack14.ads: Likewise.
8399 * libgnat/s-pack15.adb: Likewise.
8400 * libgnat/s-pack15.ads: Likewise.
8401 * libgnat/s-pack17.adb: Likewise.
8402 * libgnat/s-pack17.ads: Likewise.
8403 * libgnat/s-pack18.adb: Likewise.
8404 * libgnat/s-pack18.ads: Likewise.
8405 * libgnat/s-pack19.adb: Likewise.
8406 * libgnat/s-pack19.ads: Likewise.
8407 * libgnat/s-pack20.adb: Likewise.
8408 * libgnat/s-pack20.ads: Likewise.
8409 * libgnat/s-pack21.adb: Likewise.
8410 * libgnat/s-pack21.ads: Likewise.
8411 * libgnat/s-pack22.adb: Likewise.
8412 * libgnat/s-pack22.ads: Likewise.
8413 * libgnat/s-pack23.adb: Likewise.
8414 * libgnat/s-pack23.ads: Likewise.
8415 * libgnat/s-pack24.adb: Likewise.
8416 * libgnat/s-pack24.ads: Likewise.
8417 * libgnat/s-pack25.adb: Likewise.
8418 * libgnat/s-pack25.ads: Likewise.
8419 * libgnat/s-pack26.adb: Likewise.
8420 * libgnat/s-pack26.ads: Likewise.
8421 * libgnat/s-pack27.adb: Likewise.
8422 * libgnat/s-pack27.ads: Likewise.
8423 * libgnat/s-pack28.adb: Likewise.
8424 * libgnat/s-pack28.ads: Likewise.
8425 * libgnat/s-pack29.adb: Likewise.
8426 * libgnat/s-pack29.ads: Likewise.
8427 * libgnat/s-pack30.adb: Likewise.
8428 * libgnat/s-pack30.ads: Likewise.
8429 * libgnat/s-pack31.adb: Likewise.
8430 * libgnat/s-pack31.ads: Likewise.
8431 * libgnat/s-pack33.adb: Likewise.
8432 * libgnat/s-pack33.ads: Likewise.
8433 * libgnat/s-pack34.adb: Likewise.
8434 * libgnat/s-pack34.ads: Likewise.
8435 * libgnat/s-pack35.adb: Likewise.
8436 * libgnat/s-pack35.ads: Likewise.
8437 * libgnat/s-pack36.adb: Likewise.
8438 * libgnat/s-pack36.ads: Likewise.
8439 * libgnat/s-pack37.adb: Likewise.
8440 * libgnat/s-pack37.ads: Likewise.
8441 * libgnat/s-pack38.adb: Likewise.
8442 * libgnat/s-pack38.ads: Likewise.
8443 * libgnat/s-pack39.adb: Likewise.
8444 * libgnat/s-pack39.ads: Likewise.
8445 * libgnat/s-pack40.adb: Likewise.
8446 * libgnat/s-pack40.ads: Likewise.
8447 * libgnat/s-pack41.adb: Likewise.
8448 * libgnat/s-pack41.ads: Likewise.
8449 * libgnat/s-pack42.adb: Likewise.
8450 * libgnat/s-pack42.ads: Likewise.
8451 * libgnat/s-pack43.adb: Likewise.
8452 * libgnat/s-pack43.ads: Likewise.
8453 * libgnat/s-pack44.adb: Likewise.
8454 * libgnat/s-pack44.ads: Likewise.
8455 * libgnat/s-pack45.adb: Likewise.
8456 * libgnat/s-pack45.ads: Likewise.
8457 * libgnat/s-pack46.adb: Likewise.
8458 * libgnat/s-pack46.ads: Likewise.
8459 * libgnat/s-pack47.adb: Likewise.
8460 * libgnat/s-pack47.ads: Likewise.
8461 * libgnat/s-pack48.adb: Likewise.
8462 * libgnat/s-pack48.ads: Likewise.
8463 * libgnat/s-pack49.adb: Likewise.
8464 * libgnat/s-pack49.ads: Likewise.
8465 * libgnat/s-pack50.adb: Likewise.
8466 * libgnat/s-pack50.ads: Likewise.
8467 * libgnat/s-pack51.adb: Likewise.
8468 * libgnat/s-pack51.ads: Likewise.
8469 * libgnat/s-pack52.adb: Likewise.
8470 * libgnat/s-pack52.ads: Likewise.
8471 * libgnat/s-pack53.adb: Likewise.
8472 * libgnat/s-pack53.ads: Likewise.
8473 * libgnat/s-pack54.adb: Likewise.
8474 * libgnat/s-pack54.ads: Likewise.
8475 * libgnat/s-pack55.adb: Likewise.
8476 * libgnat/s-pack55.ads: Likewise.
8477 * libgnat/s-pack56.adb: Likewise.
8478 * libgnat/s-pack56.ads: Likewise.
8479 * libgnat/s-pack57.adb: Likewise.
8480 * libgnat/s-pack57.ads: Likewise.
8481 * libgnat/s-pack58.adb: Likewise.
8482 * libgnat/s-pack58.ads: Likewise.
8483 * libgnat/s-pack59.adb: Likewise.
8484 * libgnat/s-pack59.ads: Likewise.
8485 * libgnat/s-pack60.adb: Likewise.
8486 * libgnat/s-pack60.ads: Likewise.
8487 * libgnat/s-pack61.adb: Likewise.
8488 * libgnat/s-pack61.ads: Likewise.
8489 * libgnat/s-pack62.adb: Likewise.
8490 * libgnat/s-pack62.ads: Likewise.
8491 * libgnat/s-pack63.adb: Likewise.
8492 * libgnat/s-pack63.ads: Likewise.
8493 * libgnat/s-parame.adb: Likewise.
8494 * libgnat/s-parame.ads: Likewise.
8495 * libgnat/s-parame__ae653.ads: Likewise.
8496 * libgnat/s-parame__hpux.ads: Likewise.
8497 * libgnat/s-parame__rtems.adb: Likewise.
8498 * libgnat/s-parame__vxworks.adb: Likewise.
8499 * libgnat/s-parame__vxworks.ads: Likewise.
8500 * libgnat/s-parint.adb: Likewise.
8501 * libgnat/s-parint.ads: Likewise.
8502 * libgnat/s-pooglo.adb: Likewise.
8503 * libgnat/s-pooglo.ads: Likewise.
8504 * libgnat/s-pooloc.adb: Likewise.
8505 * libgnat/s-pooloc.ads: Likewise.
8506 * libgnat/s-poosiz.adb: Likewise.
8507 * libgnat/s-poosiz.ads: Likewise.
8508 * libgnat/s-powtab.ads: Likewise.
8509 * libgnat/s-purexc.ads: Likewise.
8510 * libgnat/s-rannum.adb: Likewise.
8511 * libgnat/s-rannum.ads: Likewise.
8512 * libgnat/s-ransee.adb: Likewise.
8513 * libgnat/s-ransee.ads: Likewise.
8514 * libgnat/s-regexp.adb: Likewise.
8515 * libgnat/s-regexp.ads: Likewise.
8516 * libgnat/s-regpat.adb: Likewise.
8517 * libgnat/s-regpat.ads: Likewise.
8518 * libgnat/s-resfil.adb: Likewise.
8519 * libgnat/s-resfil.ads: Likewise.
8520 * libgnat/s-restri.adb: Likewise.
8521 * libgnat/s-restri.ads: Likewise.
8522 * libgnat/s-rident.ads: Likewise.
8523 * libgnat/s-rpc.adb: Likewise.
8524 * libgnat/s-rpc.ads: Likewise.
8525 * libgnat/s-scaval.adb: Likewise.
8526 * libgnat/s-scaval.ads: Likewise.
8527 * libgnat/s-secsta.adb: Likewise.
8528 * libgnat/s-secsta.ads: Likewise.
8529 * libgnat/s-sequio.adb: Likewise.
8530 * libgnat/s-sequio.ads: Likewise.
8531 * libgnat/s-shasto.adb: Likewise.
8532 * libgnat/s-shasto.ads: Likewise.
8533 * libgnat/s-soflin.adb: Likewise.
8534 * libgnat/s-soflin.ads: Likewise.
8535 * libgnat/s-soliin.adb: Likewise.
8536 * libgnat/s-soliin.ads: Likewise.
8537 * libgnat/s-sopco3.adb: Likewise.
8538 * libgnat/s-sopco3.ads: Likewise.
8539 * libgnat/s-sopco4.adb: Likewise.
8540 * libgnat/s-sopco4.ads: Likewise.
8541 * libgnat/s-sopco5.adb: Likewise.
8542 * libgnat/s-sopco5.ads: Likewise.
8543 * libgnat/s-spsufi.adb: Likewise.
8544 * libgnat/s-spsufi.ads: Likewise.
8545 * libgnat/s-stache.adb: Likewise.
8546 * libgnat/s-stache.ads: Likewise.
8547 * libgnat/s-stalib.adb: Likewise.
8548 * libgnat/s-stalib.ads: Likewise.
8549 * libgnat/s-stausa.adb: Likewise.
8550 * libgnat/s-stausa.ads: Likewise.
8551 * libgnat/s-stchop.adb: Likewise.
8552 * libgnat/s-stchop.ads: Likewise.
8553 * libgnat/s-stchop__limit.ads: Likewise.
8554 * libgnat/s-stchop__rtems.adb: Likewise.
8555 * libgnat/s-stchop__vxworks.adb: Likewise.
8556 * libgnat/s-stoele.adb: Likewise.
8557 * libgnat/s-stoele.ads: Likewise.
8558 * libgnat/s-stopoo.adb: Likewise.
8559 * libgnat/s-stopoo.ads: Likewise.
8560 * libgnat/s-stposu.adb: Likewise.
8561 * libgnat/s-stposu.ads: Likewise.
8562 * libgnat/s-stratt.adb: Likewise.
8563 * libgnat/s-stratt.ads: Likewise.
8564 * libgnat/s-stratt__xdr.adb: Likewise.
8565 * libgnat/s-strcom.adb: Likewise.
8566 * libgnat/s-strcom.ads: Likewise.
8567 * libgnat/s-strhas.adb: Likewise.
8568 * libgnat/s-strhas.ads: Likewise.
8569 * libgnat/s-string.adb: Likewise.
8570 * libgnat/s-string.ads: Likewise.
8571 * libgnat/s-strops.adb: Likewise.
8572 * libgnat/s-strops.ads: Likewise.
8573 * libgnat/s-ststop.adb: Likewise.
8574 * libgnat/s-ststop.ads: Likewise.
8575 * libgnat/s-tasloc.adb: Likewise.
8576 * libgnat/s-tasloc.ads: Likewise.
8577 * libgnat/s-thread.ads: Likewise.
8578 * libgnat/s-thread__ae653.adb: Likewise.
8579 * libgnat/s-traceb.adb: Likewise.
8580 * libgnat/s-traceb.ads: Likewise.
8581 * libgnat/s-traceb__hpux.adb: Likewise.
8582 * libgnat/s-traceb__mastop.adb: Likewise.
8583 * libgnat/s-traent.adb: Likewise.
8584 * libgnat/s-traent.ads: Likewise.
8585 * libgnat/s-trasym.adb: Likewise.
8586 * libgnat/s-trasym.ads: Likewise.
8587 * libgnat/s-trasym__dwarf.adb: Likewise.
8588 * libgnat/s-tsmona.adb: Likewise.
8589 * libgnat/s-tsmona__linux.adb: Likewise.
8590 * libgnat/s-tsmona__mingw.adb: Likewise.
8591 * libgnat/s-unstyp.ads: Likewise.
8592 * libgnat/s-utf_32.adb: Likewise.
8593 * libgnat/s-utf_32.ads: Likewise.
8594 * libgnat/s-valboo.adb: Likewise.
8595 * libgnat/s-valboo.ads: Likewise.
8596 * libgnat/s-valcha.adb: Likewise.
8597 * libgnat/s-valcha.ads: Likewise.
8598 * libgnat/s-valdec.adb: Likewise.
8599 * libgnat/s-valdec.ads: Likewise.
8600 * libgnat/s-valenu.adb: Likewise.
8601 * libgnat/s-valenu.ads: Likewise.
8602 * libgnat/s-valint.adb: Likewise.
8603 * libgnat/s-valint.ads: Likewise.
8604 * libgnat/s-vallld.adb: Likewise.
8605 * libgnat/s-vallld.ads: Likewise.
8606 * libgnat/s-vallli.adb: Likewise.
8607 * libgnat/s-vallli.ads: Likewise.
8608 * libgnat/s-valllu.adb: Likewise.
8609 * libgnat/s-valllu.ads: Likewise.
8610 * libgnat/s-valrea.adb: Likewise.
8611 * libgnat/s-valrea.ads: Likewise.
8612 * libgnat/s-valuns.adb: Likewise.
8613 * libgnat/s-valuns.ads: Likewise.
8614 * libgnat/s-valuti.adb: Likewise.
8615 * libgnat/s-valuti.ads: Likewise.
8616 * libgnat/s-valwch.adb: Likewise.
8617 * libgnat/s-valwch.ads: Likewise.
8618 * libgnat/s-veboop.adb: Likewise.
8619 * libgnat/s-veboop.ads: Likewise.
8620 * libgnat/s-vector.ads: Likewise.
8621 * libgnat/s-vercon.adb: Likewise.
8622 * libgnat/s-vercon.ads: Likewise.
8623 * libgnat/s-wchcnv.adb: Likewise.
8624 * libgnat/s-wchcnv.ads: Likewise.
8625 * libgnat/s-wchcon.adb: Likewise.
8626 * libgnat/s-wchcon.ads: Likewise.
8627 * libgnat/s-wchjis.adb: Likewise.
8628 * libgnat/s-wchjis.ads: Likewise.
8629 * libgnat/s-wchstw.adb: Likewise.
8630 * libgnat/s-wchstw.ads: Likewise.
8631 * libgnat/s-wchwts.adb: Likewise.
8632 * libgnat/s-wchwts.ads: Likewise.
8633 * libgnat/s-widboo.adb: Likewise.
8634 * libgnat/s-widboo.ads: Likewise.
8635 * libgnat/s-widcha.adb: Likewise.
8636 * libgnat/s-widcha.ads: Likewise.
8637 * libgnat/s-widenu.adb: Likewise.
8638 * libgnat/s-widenu.ads: Likewise.
8639 * libgnat/s-widlli.adb: Likewise.
8640 * libgnat/s-widlli.ads: Likewise.
8641 * libgnat/s-widllu.adb: Likewise.
8642 * libgnat/s-widllu.ads: Likewise.
8643 * libgnat/s-widwch.adb: Likewise.
8644 * libgnat/s-widwch.ads: Likewise.
8645 * libgnat/s-win32.ads: Likewise.
8646 * libgnat/s-winext.ads: Likewise.
8647 * libgnat/s-wwdcha.adb: Likewise.
8648 * libgnat/s-wwdcha.ads: Likewise.
8649 * libgnat/s-wwdenu.adb: Likewise.
8650 * libgnat/s-wwdenu.ads: Likewise.
8651 * libgnat/s-wwdwch.adb: Likewise.
8652 * libgnat/s-wwdwch.ads: Likewise.
8653 * libgnat/system-aix.ads: Likewise.
8654 * libgnat/system-darwin-arm.ads: Likewise.
8655 * libgnat/system-darwin-ppc.ads: Likewise.
8656 * libgnat/system-darwin-x86.ads: Likewise.
8657 * libgnat/system-djgpp.ads: Likewise.
8658 * libgnat/system-dragonfly-x86_64.ads: Likewise.
8659 * libgnat/system-freebsd.ads: Likewise.
8660 * libgnat/system-hpux-ia64.ads: Likewise.
8661 * libgnat/system-hpux.ads: Likewise.
8662 * libgnat/system-linux-alpha.ads: Likewise.
8663 * libgnat/system-linux-arm.ads: Likewise.
8664 * libgnat/system-linux-hppa.ads: Likewise.
8665 * libgnat/system-linux-ia64.ads: Likewise.
8666 * libgnat/system-linux-m68k.ads: Likewise.
8667 * libgnat/system-linux-mips.ads: Likewise.
8668 * libgnat/system-linux-ppc.ads: Likewise.
8669 * libgnat/system-linux-riscv.ads: Likewise.
8670 * libgnat/system-linux-s390.ads: Likewise.
8671 * libgnat/system-linux-sh4.ads: Likewise.
8672 * libgnat/system-linux-sparc.ads: Likewise.
8673 * libgnat/system-linux-x86.ads: Likewise.
8674 * libgnat/system-lynxos178-ppc.ads: Likewise.
8675 * libgnat/system-lynxos178-x86.ads: Likewise.
8676 * libgnat/system-mingw.ads: Likewise.
8677 * libgnat/system-qnx-aarch64.ads: Likewise.
8678 * libgnat/system-rtems.ads: Likewise.
8679 * libgnat/system-solaris-sparc.ads: Likewise.
8680 * libgnat/system-solaris-x86.ads: Likewise.
8681 * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
8682 * libgnat/system-vxworks-arm-rtp.ads: Likewise.
8683 * libgnat/system-vxworks-arm.ads: Likewise.
8684 * libgnat/system-vxworks-e500-kernel.ads: Likewise.
8685 * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
8686 * libgnat/system-vxworks-e500-rtp.ads: Likewise.
8687 * libgnat/system-vxworks-e500-vthread.ads: Likewise.
8688 * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
8689 * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
8690 * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
8691 * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
8692 * libgnat/system-vxworks-ppc-vthread.ads: Likewise.
8693 * libgnat/system-vxworks-ppc.ads: Likewise.
8694 * libgnat/system-vxworks-x86-kernel.ads: Likewise.
8695 * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
8696 * libgnat/system-vxworks-x86-rtp.ads: Likewise.
8697 * libgnat/system-vxworks-x86-vthread.ads: Likewise.
8698 * libgnat/system-vxworks-x86.ads: Likewise.
8699 * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
8700 * libgnat/system-vxworks7-aarch64.ads: Likewise.
8701 * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
8702 * libgnat/system-vxworks7-arm.ads: Likewise.
8703 * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
8704 * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
8705 * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
8706 * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
8707 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
8708 * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
8709 * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
8710 * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
8711 * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
8712 * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
8713 * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
8714 * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
8715 * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
8716 * libgnat/system.ads: Likewise.
8718 * live.adb: Likewise.
8719 * live.ads: Likewise.
8720 * locales.c: Likewise.
8721 * make.adb: Likewise.
8722 * make.ads: Likewise.
8723 * make_util.adb: Likewise.
8724 * make_util.ads: Likewise.
8725 * makeusg.adb: Likewise.
8726 * makeusg.ads: Likewise.
8727 * mdll-fil.adb: Likewise.
8728 * mdll-fil.ads: Likewise.
8729 * mdll-utl.adb: Likewise.
8730 * mdll-utl.ads: Likewise.
8731 * mdll.adb: Likewise.
8732 * mdll.ads: Likewise.
8733 * mingw32.h: Likewise.
8734 * mkdir.c: Likewise.
8735 * namet-sp.adb: Likewise.
8736 * namet-sp.ads: Likewise.
8737 * namet.adb: Likewise.
8738 * namet.ads: Likewise.
8739 * namet.h: Likewise.
8740 * nlists.adb: Likewise.
8741 * nlists.ads: Likewise.
8742 * nlists.h: Likewise.
8743 * opt.adb: Likewise.
8744 * opt.ads: Likewise.
8745 * osint-b.adb: Likewise.
8746 * osint-b.ads: Likewise.
8747 * osint-c.adb: Likewise.
8748 * osint-c.ads: Likewise.
8749 * osint-l.adb: Likewise.
8750 * osint-l.ads: Likewise.
8751 * osint-m.adb: Likewise.
8752 * osint-m.ads: Likewise.
8753 * osint.adb: Likewise.
8754 * osint.ads: Likewise.
8755 * output.adb: Likewise.
8756 * output.ads: Likewise.
8757 * par-ch10.adb: Likewise.
8758 * par-ch11.adb: Likewise.
8759 * par-ch12.adb: Likewise.
8760 * par-ch13.adb: Likewise.
8761 * par-ch2.adb: Likewise.
8762 * par-ch3.adb: Likewise.
8763 * par-ch4.adb: Likewise.
8764 * par-ch5.adb: Likewise.
8765 * par-ch6.adb: Likewise.
8766 * par-ch7.adb: Likewise.
8767 * par-ch8.adb: Likewise.
8768 * par-ch9.adb: Likewise.
8769 * par-endh.adb: Likewise.
8770 * par-labl.adb: Likewise.
8771 * par-load.adb: Likewise.
8772 * par-prag.adb: Likewise.
8773 * par-sync.adb: Likewise.
8774 * par-tchk.adb: Likewise.
8775 * par-util.adb: Likewise.
8776 * par.adb: Likewise.
8777 * par.ads: Likewise.
8778 * par_sco.adb: Likewise.
8779 * par_sco.ads: Likewise.
8780 * pprint.adb: Likewise.
8781 * pprint.ads: Likewise.
8782 * prep.adb: Likewise.
8783 * prep.ads: Likewise.
8784 * prepcomp.adb: Likewise.
8785 * prepcomp.ads: Likewise.
8786 * put_scos.adb: Likewise.
8787 * put_scos.ads: Likewise.
8788 * raise-gcc.c: Likewise.
8789 * raise.c: Likewise.
8790 * raise.h: Likewise.
8791 * repinfo-input.adb: Likewise.
8792 * repinfo-input.ads: Likewise.
8793 * repinfo.adb: Likewise.
8794 * repinfo.ads: Likewise.
8795 * repinfo.h: Likewise.
8796 * restrict.adb: Likewise.
8797 * restrict.ads: Likewise.
8798 * rident.ads: Likewise.
8799 * rtfinal.c: Likewise.
8800 * rtinit.c: Likewise.
8801 * rtsfind.adb: Likewise.
8802 * rtsfind.ads: Likewise.
8803 * runtime.h: Likewise.
8804 * s-oscons-tmplt.c: Likewise.
8805 * sa_messages.adb: Likewise.
8806 * sa_messages.ads: Likewise.
8807 * scans.adb: Likewise.
8808 * scans.ads: Likewise.
8809 * scil_ll.adb: Likewise.
8810 * scil_ll.ads: Likewise.
8811 * scn.adb: Likewise.
8812 * scn.ads: Likewise.
8813 * scng.adb: Likewise.
8814 * scng.ads: Likewise.
8815 * scos.adb: Likewise.
8816 * scos.ads: Likewise.
8818 * sdefault.ads: Likewise.
8819 * seh_init.c: Likewise.
8820 * sem.adb: Likewise.
8821 * sem.ads: Likewise.
8822 * sem_aggr.adb: Likewise.
8823 * sem_aggr.ads: Likewise.
8824 * sem_attr.adb: Likewise.
8825 * sem_attr.ads: Likewise.
8826 * sem_aux.adb: Likewise.
8827 * sem_aux.ads: Likewise.
8828 * sem_case.adb: Likewise.
8829 * sem_case.ads: Likewise.
8830 * sem_cat.adb: Likewise.
8831 * sem_cat.ads: Likewise.
8832 * sem_ch10.adb: Likewise.
8833 * sem_ch10.ads: Likewise.
8834 * sem_ch11.adb: Likewise.
8835 * sem_ch11.ads: Likewise.
8836 * sem_ch12.adb: Likewise.
8837 * sem_ch12.ads: Likewise.
8838 * sem_ch13.adb: Likewise.
8839 * sem_ch13.ads: Likewise.
8840 * sem_ch2.adb: Likewise.
8841 * sem_ch2.ads: Likewise.
8842 * sem_ch3.adb: Likewise.
8843 * sem_ch3.ads: Likewise.
8844 * sem_ch4.adb: Likewise.
8845 * sem_ch4.ads: Likewise.
8846 * sem_ch5.adb: Likewise.
8847 * sem_ch5.ads: Likewise.
8848 * sem_ch6.adb: Likewise.
8849 * sem_ch6.ads: Likewise.
8850 * sem_ch7.adb: Likewise.
8851 * sem_ch7.ads: Likewise.
8852 * sem_ch8.adb: Likewise.
8853 * sem_ch8.ads: Likewise.
8854 * sem_ch9.adb: Likewise.
8855 * sem_ch9.ads: Likewise.
8856 * sem_dim.adb: Likewise.
8857 * sem_dim.ads: Likewise.
8858 * sem_disp.adb: Likewise.
8859 * sem_disp.ads: Likewise.
8860 * sem_dist.adb: Likewise.
8861 * sem_dist.ads: Likewise.
8862 * sem_elab.adb: Likewise.
8863 * sem_elab.ads: Likewise.
8864 * sem_elim.adb: Likewise.
8865 * sem_elim.ads: Likewise.
8866 * sem_eval.adb: Likewise.
8867 * sem_eval.ads: Likewise.
8868 * sem_intr.adb: Likewise.
8869 * sem_intr.ads: Likewise.
8870 * sem_mech.adb: Likewise.
8871 * sem_mech.ads: Likewise.
8872 * sem_prag.adb: Likewise.
8873 * sem_prag.ads: Likewise.
8874 * sem_res.adb: Likewise.
8875 * sem_res.ads: Likewise.
8876 * sem_scil.adb: Likewise.
8877 * sem_scil.ads: Likewise.
8878 * sem_smem.adb: Likewise.
8879 * sem_smem.ads: Likewise.
8880 * sem_type.adb: Likewise.
8881 * sem_type.ads: Likewise.
8882 * sem_util.adb: Likewise.
8883 * sem_util.ads: Likewise.
8884 * sem_warn.adb: Likewise.
8885 * sem_warn.ads: Likewise.
8886 * set_targ.adb: Likewise.
8887 * set_targ.ads: Likewise.
8888 * sfn_scan.adb: Likewise.
8889 * sfn_scan.ads: Likewise.
8890 * sigtramp-armdroid.c: Likewise.
8891 * sigtramp-ios.c: Likewise.
8892 * sigtramp-qnx.c: Likewise.
8893 * sigtramp-vxworks.c: Likewise.
8894 * sigtramp.h: Likewise.
8895 * sinfo-cn.adb: Likewise.
8896 * sinfo-cn.ads: Likewise.
8897 * sinfo.adb: Likewise.
8898 * sinfo.ads: Likewise.
8899 * sinput-c.adb: Likewise.
8900 * sinput-c.ads: Likewise.
8901 * sinput-d.adb: Likewise.
8902 * sinput-d.ads: Likewise.
8903 * sinput-l.adb: Likewise.
8904 * sinput-l.ads: Likewise.
8905 * sinput.adb: Likewise.
8906 * sinput.ads: Likewise.
8907 * socket.c: Likewise.
8908 * spark_xrefs.adb: Likewise.
8909 * spark_xrefs.ads: Likewise.
8910 * sprint.adb: Likewise.
8911 * sprint.ads: Likewise.
8912 * stand.adb: Likewise.
8913 * stand.ads: Likewise.
8914 * stringt.adb: Likewise.
8915 * stringt.ads: Likewise.
8916 * stringt.h: Likewise.
8917 * style.adb: Likewise.
8918 * style.ads: Likewise.
8919 * styleg.adb: Likewise.
8920 * styleg.ads: Likewise.
8921 * stylesw.adb: Likewise.
8922 * stylesw.ads: Likewise.
8923 * switch-b.adb: Likewise.
8924 * switch-b.ads: Likewise.
8925 * switch-c.adb: Likewise.
8926 * switch-c.ads: Likewise.
8927 * switch-m.adb: Likewise.
8928 * switch-m.ads: Likewise.
8929 * switch.adb: Likewise.
8930 * switch.ads: Likewise.
8931 * symbols.adb: Likewise.
8932 * symbols.ads: Likewise.
8933 * sysdep.c: Likewise.
8934 * table.adb: Likewise.
8935 * table.ads: Likewise.
8936 * targext.c: Likewise.
8937 * targparm.adb: Likewise.
8938 * targparm.ads: Likewise.
8939 * tbuild.adb: Likewise.
8940 * tbuild.ads: Likewise.
8941 * tempdir.adb: Likewise.
8942 * tempdir.ads: Likewise.
8943 * terminals.c: Likewise.
8944 * tracebak.c: Likewise.
8945 * tree_gen.adb: Likewise.
8946 * tree_gen.ads: Likewise.
8947 * tree_in.adb: Likewise.
8948 * tree_in.ads: Likewise.
8949 * tree_io.adb: Likewise.
8950 * tree_io.ads: Likewise.
8951 * treepr.adb: Likewise.
8952 * treepr.ads: Likewise.
8953 * ttypes.ads: Likewise.
8954 * types.adb: Likewise.
8955 * types.ads: Likewise.
8956 * types.h: Likewise.
8957 * uintp.adb: Likewise.
8958 * uintp.ads: Likewise.
8959 * uintp.h: Likewise.
8960 * uname.adb: Likewise.
8961 * uname.ads: Likewise.
8962 * urealp.adb: Likewise.
8963 * urealp.ads: Likewise.
8964 * urealp.h: Likewise.
8965 * usage.adb: Likewise.
8966 * usage.ads: Likewise.
8967 * validsw.adb: Likewise.
8968 * validsw.ads: Likewise.
8969 * warnsw.adb: Likewise.
8970 * warnsw.ads: Likewise.
8971 * widechar.adb: Likewise.
8972 * widechar.ads: Likewise.
8973 * xeinfo.adb: Likewise.
8974 * xnmake.adb: Likewise.
8975 * xoscons.adb: Likewise.
8976 * xr_tabls.adb: Likewise.
8977 * xr_tabls.ads: Likewise.
8978 * xref_lib.adb: Likewise.
8979 * xref_lib.ads: Likewise.
8980 * xsinfo.adb: Likewise.
8981 * xsnamest.adb: Likewise.
8982 * xtreeprs.adb: Likewise.
8983 * xutil.adb: Likewise.
8984 * xutil.ads: Likewise.
8986 2020-06-02 Javier Miranda <miranda@adacore.com>
8988 * sem_ch3.adb (Analyze_Object_Declaration): Set attribute
8989 Expansion_Delayed on aggregates that initialize an object that
8990 has aspect alignment or address clause. Done to allow ther
8991 initialization by means of multiple assignments.
8992 * exp_ch3.adb (Expand_N_Object_Declaration): Resolve delayed
8993 aggregates. This patch complements the patch applied to
8996 2020-06-02 Javier Miranda <miranda@adacore.com>
8998 * sem_util.adb (Ensure_Minimum_Decoration): New subprogram that
8999 ensures the minimum decoration required by
9000 Requires_Transient_Scope() to provide its functionality when the
9001 entity is not frozen.
9003 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9005 * exp_ch4.adb (Expand_N_Op_Divide): Remove code dealing with
9006 the Treat_Fixed_As_Integer flag.
9007 (Expand_N_Op_Multiply): Likewise.
9008 * exp_fixd.adb (Build_Divide): Do the division in an integer
9009 type long enough to hold both operands and convert the result
9010 to the type of the LHS. Do not set Treat_Fixed_As_Integer.
9011 (Build_Multiply): Do not set Treat_Fixed_As_Integer.
9012 (Build_Rem): Likewise.
9013 * sem_ch4.adb (Analyze_Arithmetic_Op): Remove code dealing with
9014 the Treat_Fixed_As_Integer flag.
9015 (Check_Arithmetic_Pair): Likewise.
9016 * sinfo.ads (Treat_Fixed_As_Integer): Delete.
9017 (N_Has_Treat_Fixed_As_Integer): Likewise.
9018 (Set_Treat_Fixed_As_Integer): Likewise.
9019 * sinfo.adb (Treat_Fixed_As_Integer): Likewise.
9020 (Set_Treat_Fixed_As_Integer): Likewise.
9021 * sprint.ads (Syntax Extensions): Remove '#' special character.
9022 * sprint.adb (Process_TFAI_RR_Flags): Delete.
9023 (Sprint_Node_Actual) <N_Op_Divide>: Print '@' manually.
9024 <N_Op_Multiply>: Likewise.
9025 <N_Op_Mod>: Do not print '#'.
9026 <N_Op_Rem>: Likewise.
9028 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9030 * exp_aggr.adb (Others_Check): In the positional case, use the
9031 general expression for the comparison only when needed.
9032 * exp_attr.adb (Expand_Fpt_Attribute;): Use a simple conversion
9033 to the target type instead of an unchecked conversion to the
9034 base type to do the range check, as in the other cases.
9035 (Expand_N_Attribute_Reference) <Attribute_Storage_Size>: Do the
9036 Max operation in the type of the storage size variable, and use
9037 Convert_To as in the other cases.
9038 * tbuild.adb (Convert_To): Do not get rid of an intermediate
9039 conversion to Universal_Integer here...
9040 * sem_res.adb (Simplify_Type_Conversion): ...but here instead.
9042 2020-06-02 Bob Duff <duff@adacore.com>
9044 * doc/gnat_ugn/gnat_utility_programs.rst: Update documentation
9045 for --RM-style-spacing.
9047 2020-06-02 Bob Duff <duff@adacore.com>
9049 * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
9050 --[no-]compact switch.
9052 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9054 * exp_aggr.adb (Build_Array_Aggr_Code): Set the type of the PAT
9055 on the zero used to clear the array.
9056 * exp_attr.adb (Expand_N_Attribute_Reference)
9057 <Attribute_Alignment>: In the CW case, directly convert from the
9058 alignment's type to the target type if the parent is an
9059 unchecked conversion.
9060 * sem_res.adb (Set_String_Literal_Subtype): In the dynamic case,
9061 use the general expression for the upper bound only when needed.
9062 Set the base type of the index as the type of the low bound.
9063 (Simplify_Type_Conversion): Do an intermediate conversion to the
9064 root type of the target type if the operand is an integer
9066 * tbuild.adb (Convert_To): Get rid of an intermediate conversion
9067 to Universal_Integer if the inner expression has integer tyoe.
9068 * libgnat/a-sequio.adb (Byte_Swap): Make use of an equivalent
9069 static expression in the case statement.
9071 2020-06-02 Thomas Quinot <quinot@adacore.com>
9073 * par_sco.adb (Traverse_Degenerate_Subprogram): Set statement
9075 * scos.ads: Update comment documenting SCO data.
9077 2020-06-02 Gary Dismukes <dismukes@adacore.com>
9079 * exp_unst.adb (Register_Subprogram): Test for Address_Taken (in
9080 addition to the existing test for In_Synchonized_Unit) when
9081 deciding whether to reset the Reachable flag on all subprograms
9082 enclosing the subprogram being registered.
9084 2020-06-02 Justin Squirek <squirek@adacore.com>
9086 * sem_ch6.adb (Check_Return_Obj_Accessibility): Avoid use of
9087 parent node pointers so we are not relying on expansion done in
9090 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9092 * exp_attr.adb (Expand_N_Attribute_Reference)
9093 <Attribute_Alignment>: Adjust comment and compare against proper
9096 2020-06-02 Gary Dismukes <dismukes@adacore.com>
9098 * exp_unst.adb (Visit_Node): When visiting array attribute
9099 nodes, apply Get_Referenced_Object to the attribute prefix, to
9100 handle prefixes denoting renamed objects by picking up the Etype
9101 of the renamed object rather than the possibly unconstrained
9102 nominal subtype of the renaming declaration's Entity.
9103 * sem_util.ads (Get_Referenced_Object): Update comment to
9104 clearly indicate that any kind of node can be passed to this
9106 * sem_util.adb (Get_Referenced_Object): Add test of Is_Object to
9107 the condition, to allow for passing names that denote types and
9110 2020-06-02 Bob Duff <duff@adacore.com>
9112 * snames.ads-tmpl: Add comments explaining that enumeration
9113 types have to be kept in synch with subtypes of Name_Id.
9115 2020-06-02 Piotr Trojanek <trojanek@adacore.com>
9117 * sem_util.adb (Check_No_Hidden_State): Remove dead code.
9119 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9121 * exp_pakd.adb (Expand_Packed_Bit_Reference): Change type of
9122 reference from Universal_Integer to Standard_Natural.
9124 2020-06-02 Piotr Trojanek <trojanek@adacore.com>
9126 * sem_prag.adb (Collect_States_And_Objects): Call itself on
9127 declaration of nested packages; append abstract states
9128 one-by-one, so that in recursive call we do not overwrite the
9129 ones that have been already collected.
9131 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9133 * exp_atag.ads (Build_Inherit_Predefined_Prims): Change type
9134 of Num_Predef_Prim parameter from Int to Nat.
9135 * exp_atag.adb (Build_Range): New procedure.
9136 (Build_Val): Likewise.
9137 (Build_CW_Membership): Call Build_Val.
9138 (Build_Get_Predefined_Prim_Op_Address): Likewise.
9139 (Build_Inherit_CPP_Prims): Likewise.
9140 (Build_Get_Prim_Op_Address): Likewise.
9141 (Build_Set_Predefined_Prim_Op_Address): Likewise.
9142 (Build_Inherit_Prims): Call Build_Range.
9143 (Build_Inherit_Predefined_Prims): Likewise. Change type of
9144 Num_Predef_Prim parameter from Int to Nat.
9146 2020-06-02 Gary Dismukes <dismukes@adacore.com>
9148 * sem_ch3.adb: Two typo fixes.
9150 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9152 * sem_ch3.adb (Replace_Discriminants): Preserve the Etype of the
9153 Name of N_Variant_Part nodes when rewriting it.
9155 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9157 * sem_ch3.adb (Signed_Integer_Type_Declaration): Change the type
9158 of the bounds from Universal_Integer to Implicit_Base.
9160 2020-06-02 Arnaud Charlet <charlet@adacore.com>
9162 * bcheck.adb, binde.adb, bindo-diagnostics.adb, checks.adb,
9163 exp_aggr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb,
9164 exp_ch9.adb, gnatname.adb, sem_case.adb, sem_ch13.adb,
9165 sem_ch5.adb, sem_prag.adb, sem_util.adb, uintp.adb, urealp.adb,
9166 xoscons.adb, xr_tabls.adb, xref_lib.adb: Initialize objects more
9167 explicitly and add corresponding assertions. Remove dead code.
9168 Also add a few Annotate pragmas to help static analysis.
9169 * libgnat/a-caldel.adb, libgnat/a-calend.adb,
9170 libgnat/a-ngcoty.adb, libgnat/a-ngelfu.adb,
9171 libgnat/a-ngrear.adb, libgnat/a-strfix.adb,
9172 libgnat/g-calend.adb, libgnat/g-catiio.adb,
9173 libgnat/g-comlin.adb, libgnat/g-debpoo.adb,
9174 libgnat/g-dirope.adb, libgnat/g-hesorg.adb,
9175 libgnat/g-pehage.adb, libgnat/g-socket.adb, libgnat/i-cobol.adb,
9176 libgnat/s-dwalin.adb, libgnat/s-dwalin.ads,
9177 libgnat/s-fatgen.adb, libgnat/s-gearop.adb,
9178 libgnat/s-genbig.adb, libgnat/s-imgrea.adb,
9179 libgnat/s-os_lib.adb, libgnat/s-rannum.adb,
9180 libgnat/s-regpat.adb, libgnat/s-trasym__dwarf.adb,
9181 libgnat/s-valrea.adb: Ditto.
9183 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9185 * sem_ch3.adb (Replace_Components): Rename into...
9186 (Replace_Discriminants): ...this. Replace girder discriminants
9187 with non-girder ones. Do not replace components.
9188 * sem_ch13.adb (Check_Record_Representation_Clause): Deal with
9189 non-girder discriminants correctly.
9191 2020-06-02 Piotr Trojanek <trojanek@adacore.com>
9193 * lib-xref-spark_specific.adb (Create_Heap): use a new variant
9194 of Name_Enter to directly converts String to Make_Id.
9196 2020-06-02 Gary Dismukes <dismukes@adacore.com>
9198 * exp_attr.adb, par-ch4.adb, par-util.adb, scans.ads, scng.adb,
9199 sem_attr.adb, sem_ch4.adb, sinfo.ads: Typo corrections and minor
9202 2020-06-02 Arnaud Charlet <charlet@adacore.com>
9204 * snames.ads-tmpl (Name_Img, Attribute_Img): Make it an
9205 attribute returning renamable functions.
9207 2020-06-02 Yannick Moy <moy@adacore.com>
9209 * sem_prag.adb, sem_prag.ads (Set_Overflow_Mode): New procedure
9210 to set overflow mode.
9212 2020-06-02 Piotr Trojanek <trojanek@adacore.com>
9214 * contracts.adb, einfo.adb, exp_ch9.adb, sem_ch12.adb,
9215 sem_ch4.adb, sem_ch7.adb, sem_ch8.adb, sem_elab.adb,
9216 sem_type.adb, sem_util.adb: Reuse Is_Package_Or_Generic_Package
9217 where possible (similarly, reuse Is_Concurrent_Type if it was
9218 possible in the same expressions).
9220 2020-05-30 Arnaud Charlet <charlet@adacore.com>
9222 * Makefile.rtl (ADA_INCLUDE_SRCS): Replace Makefile.adalib by
9223 libada.gpr and associated project files.
9224 (g-debpoo.o): Add missing rule to ensure subprograms are not reordered.
9225 (setup-rts): Add generation of libgnat/libgnarl.lst.
9226 (LIBGNAT_SRCS): Remove thread.c which is part of libgnarl.
9227 * tracebak.c, tb-gcc.c: Merged the two files to simplify dependencies.
9228 * libgnarl/libgnarl.gpr, libgnat/libada.gpr,
9229 libgnat/libgnat.gpr, libgnat/libgnat_common.gpr: New files.
9230 * doc/gnat_ugn/the_gnat_compilation_model.rst: Makefile.adalib
9231 replaced by libada.gpr.
9232 * libgnat/system-mingw.ads: Remove obsolete comment.
9233 * gcc-interface/Makefile.in: Remove dependency on tb-gcc.c.
9235 2020-05-27 Martin Liska <mliska@suse.cz>
9237 * gnatvsn.ads: Bump Library_Version to 11.
9239 2020-05-26 Eric Botcazou <ebotcazou@adacore.com>
9242 * gcc-interface/decl.c (gnat_to_gnu_param): Never make a variant of
9245 2020-05-26 Alexandre Oliva <oliva@adacore.com>
9247 * gcc-interface/lang-specs.h (ADA_DUMPS_OPTIONS): Define in
9248 terms of DUMPS_OPTIONS. Replace occurrences of %{d*} %:dumps
9251 2020-05-26 Alexandre Oliva <oliva@adacore.com>
9253 * gcc-interface/lang-specs.h: Drop auxbase and auxbase-strip.
9254 Use %:dumps instead of -dumpbase. Add %w for implicit .s
9256 * switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
9257 dumpbase-ext. Drop auxbase and auxbase-strip.
9259 2020-05-25 Yannick Moy <moy@adacore.com>
9261 * sem_util.adb (Check_No_Hidden_State): Stop propagation at
9262 first block/task/entry.
9264 2020-05-25 Yannick Moy <moy@adacore.com>
9266 * doc/gnat_rm/implementation_defined_pragmas.rst: Document
9267 changes to pragmas Compile_Time_Error/Compile_Time_Warning.
9268 * gnat_rm.texi: Regenerate.
9269 * libgnat/g-bytswa.adb: Change uses of Compile_Time_Error to
9270 Compile_Time_Warning, as the actual expression may not always be
9272 * sem_prag.adb (Analyze_Pragma): Handle differently pragma
9273 Compile_Time_Error in both compilation and in GNATprove mode.
9274 (Validate_Compile_Time_Warning_Or_Error): Issue an error or
9275 warning when the expression is not known at compile time.
9276 * usage.adb: Add missing documentation for warning switches _c
9278 * warnsw.ads: Update comment.
9280 2020-05-25 Justin Squirek <squirek@adacore.com>
9282 * sem_ch6.adb (Check_Return_Obj_Accessibility): Use original
9283 node to avoid looking at expansion done in GNATprove mode.
9285 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
9287 * gcc-interface/decl.c (gnat_to_gnu_entity): Add new local variable
9288 and use it throughout the function.
9289 <E_Variable>: Rename local variable and adjust accordingly. In the
9290 case of a renaming, materialize the entity if the renamed object is
9291 an N_Expression_With_Actions node.
9292 <E_Procedure>: Use Alias accessor function consistently.
9294 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
9296 * gcc-interface/misc.c (get_array_bit_stride): Get to the debug type,
9297 if any, before calling gnat_get_array_descr_info.
9299 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
9301 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Tidy up.
9302 (build_variant_list): Add GNAT_VARIANT_PART parameter and annotate its
9303 variants if it is present. Adjust the recursive call by passing the
9304 variant subpart of variants, if any.
9305 (copy_and_substitute_in_layout): Rename GNU_SUBST_LIST to SUBST_LIST
9306 and adjust throughout. For a type, pass the variant part in the
9307 call to build_variant_list.
9309 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
9311 * gcc-interface/decl.c (gnat_to_gnu_component_type): Cap the alignment
9312 of the component type according to the component size.
9314 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
9316 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Add a
9317 description of the various types associated with the unconstrained
9318 type. Declare the fat pointer earlier. Set the current function
9319 as context on the template type, and the fat pointer type on the
9320 array type. Always mark the fat pointer type as artificial and set
9321 it as the context for the pointer type to the array. Also reuse
9322 GNU_ENTITY_NAME. Finish up the unconstrained type at the very end.
9323 * gcc-interface/misc.c (gnat_get_array_descr_info): Do not handle
9324 fat pointer types and tidy up accordingly.
9325 * gcc-interface/utils.c (build_unc_object_type): Do not set the
9326 context on the template type.
9327 (gnat_pushdecl): Mark the canonical fat pointer types as artificial.
9329 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
9331 * gcc-interface/gigi.h (operand_type): New static inline function.
9332 * gcc-interface/trans.c (gnat_to_gnu): Do not suppress conversion
9333 to the resulty type at the end for array types.
9334 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Do not
9335 remove conversions between array types on the LHS.
9337 2020-05-12 Eric Botcazou <ebotcazou@adacore.com>
9339 * sem_aggr.ads (Is_Single_Aggregate): New function.
9340 * sem_aggr.adb (Is_Others_Aggregate): Use local variable.
9341 (Is_Single_Aggregate): New function to recognize an aggregate with
9342 a single association containing a single choice.
9343 * fe.h (Is_Others_Aggregate): Delete.
9344 (Is_Single_Aggregate): New declaration.
9345 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Call
9346 Is_Single_Aggregate instead of Is_Others_Aggregate.
9348 2020-05-12 Eric Botcazou <ebotcazou@adacore.com>
9351 * gcc-interface/utils.c (packable_type_hasher::equal): Also compare
9352 the scalar storage order.
9353 (hash_packable_type): Also hash the scalar storage order.
9354 (hash_pad_type): Likewise.
9356 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
9358 * gcc-interface/*.[ch]: Update copyright year.
9360 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
9362 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Assert that
9363 the prefix is not a type.
9365 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
9367 * gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Rename into...
9368 (TYPE_BIT_PACKED_ARRAY_TYPE_P): ...this.
9369 (TYPE_IS_PACKED_ARRAY_TYPE_P): Rename into...
9370 (BIT_PACKED_ARRAY_TYPE_P): ...this.
9371 (TYPE_IMPL_PACKED_ARRAY_P): Adjust to above renaming.
9372 * gcc-interface/gigi.h (maybe_pad_type): Remove IS_USER_TYPE parameter.
9373 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Adjust call
9375 <E_Ordinary_Fixed_Point_Type>: Remove const qualifiers for tree.
9376 <E_Signed_Integer_Subtype>: Remove redundant test and redundant call
9377 to associate_original_type_to_packed_array. Turn test into assertion.
9378 Call associate_original_type_to_packed_array and modify gnu_entity_name
9379 accordingly. Explicitly set the parallel type for GNAT encodings.
9380 Call create_type_decl in the misaligned case before maybe_pad_type.
9381 <E_Array_Type>: Do not use the name of the implementation type for a
9382 packed array when not using GNAT encodings.
9383 <E_Array_Subtype>: Move around setting flags. Use the result of the
9384 call to associate_original_type_to_packed_array for gnu_entity_name.
9385 <E_Record_Subtype>: Create XVS type and XVZ variable only if debug
9386 info is requested for the type.
9387 Call create_type_decl if a padded type was created for a type entity.
9388 (gnat_to_gnu_component_type): Use local variable and adjust calls to
9390 (gnat_to_gnu_subprog_type): Adjust call to maybe_pad_type.
9391 (gnat_to_gnu_field): Likewise.
9392 (validate_size): Adjust to renaming of macro.
9393 (set_rm_size): Likewise.
9394 (associate_original_type_to_packed_array): Adjust return type and
9395 return the name of the original type if GNAT encodings are not used.
9396 * gcc-interface/misc.c (gnat_get_debug_typ): Remove obsolete stuff.
9397 (gnat_get_fixed_point_type_info): Remove const qualifiers for tree.
9398 (gnat_get_array_descr_info): Likewise and set variables lazily.
9399 Remove call to maybe_debug_type. Simplify a few computations.
9400 (enumerate_modes): Remove const qualifier for tree.
9401 * gcc-interface/utils.c (make_type_from_size): Adjust to renaming.
9402 (maybe_pad_type): Remove IS_USER_TYPE parameter and adjust. Remove
9403 specific code for implementation types for packed arrays.
9404 (compute_deferred_decl_context): Remove const qualifier for tree.
9405 (convert): Adjust call to maybe_pad_type.
9406 (unchecked_convert): Likewise.
9407 * gcc-interface/utils2.c (is_simple_additive_expressio): Likewise.
9409 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
9411 * gcc-interface/utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Use
9412 build_nonshared_array_type to build the common type and declare it.
9414 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
9416 * gcc-interface/misc.c (gnat_init_gcc_eh): Do not override the user
9417 for -fnon-call-exceptions in default mode.
9419 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
9421 * gcc-interface/trans.c (lvalue_required_p) <N_Selected_Component>:
9423 <N_Allocator>: Move to...
9424 (lvalue_for_aggregate_p): ...here. New function.
9425 (Identifier_to_gnu): For an identifier with aggregate type, also
9426 call lvalue_for_aggregate_p if lvalue_required_p returned false
9427 before substituting the identifier with the constant.
9429 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
9431 * gcc-interface/trans.c (gnat_to_gnu): Do not wrap boolean values if
9432 they appear in any kind of attribute references.
9434 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
9436 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Deal
9437 with qualified "others" aggregates in the memset case.
9439 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
9441 * gcc-interface/decl.c (gnat_to_gnu_param): Also back-annotate the
9442 mechanism in the case of an Out parameter only passed by copy-out.
9444 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
9446 * gcc-interface/gigi.h (change_qualified_type): Move around.
9447 (maybe_vector_array): Likewise.
9448 (maybe_padded_object): New static line function.
9449 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Component_Size>:
9450 Remove useless code.
9451 <Attr_Null_Parameter>: Remove obsolete code.
9452 (Call_to_gn): Likewise. Use maybe_padded_object to remove padding.
9453 (gnat_to_gnu): Likewise.
9454 <N_String_Literal>: Do not add a useless null character at the end.
9455 <N_Indexed_Component>: Likewise and remove obsolete code.
9456 (add_decl_expr): Likewise.
9457 (maybe_implicit_deref): Likewise.
9458 * gcc-interface/utils.c (maybe_unconstrained_array): Likewise.
9459 * gcc-interface/utils2.c (gnat_invariant_expr): Likewise.
9461 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
9463 * gcc-interface/utils2.c: Include builtins.h.
9464 (known_alignment) <ADDR_EXPR>: Use DECL_ALIGN for DECL_P operands
9465 and get_object_alignment for the rest.
9467 2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
9469 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Force at
9470 least the unit size for an aliased object of a constrained nominal
9471 subtype whose size is variable.
9473 2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
9475 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Deal
9476 with artificial maximally-sized types designed by access types.
9477 * gcc-interface/utils.c (packable_type_hash): New structure.
9478 (packable_type_hasher): Likewise.
9479 (packable_type_hash_table): New hash table.
9480 (init_gnat_utils): Initialize it.
9481 (destroy_gnat_utils): Destroy it.
9482 (packable_type_hasher::equal): New method.
9483 (hash_packable_type): New static function.
9484 (canonicalize_packable_type): Likewise.
9485 (make_packable_type): Make sure not to use too small a type for the
9486 size of the new fields. Canonicalize the type if it is named.
9488 2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
9490 * gcc-interface/trans.c (Raise_Error_to_gnu): Always compute a lower
9491 bound and an upper bound for use by the -gnateE switch for range and
9492 comparison operators.
9494 2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
9496 * gcc-interface/decl.c (gnat_to_gnu_param): Do not make a variant of
9497 the type in LTO mode.
9499 2020-05-04 Mikael Pettersson <mikpelinux@gmail.com>
9502 * mingw32.h: Prevent windows.h from including emmintrin.h on Cygwin64.
9503 * s-oscons-tmplt.c (Serial_Port_Descriptor): Use System.Win32.HANDLE
9506 2020-03-11 Richard Wai <richard@annexi-strayline.com>
9508 * gcc-interface/decl.c (gnat_to_gnu_entity): Also test Is_Public on
9509 the Alias of the entitiy, if it is present, in the main assertion.
9511 2020-02-06 Alexandre Oliva <oliva@adacore.com>
9513 * raise-gcc.c (personality_body) [__ARM_EABI_UNWINDER__]:
9514 Initialize barrier_cache.sp when ending phase1.
9516 2020-01-04 Eric Botcazou <ebotcazou@adacore.com>
9518 * gnatvsn.ads: Bump copyright year.
9520 2020-01-01 Jakub Jelinek <jakub@redhat.com>
9522 Update copyright years.
9524 * gnat_ugn.texi: Bump @copying's copyright year.
9525 * gnat_rm.texi: Likewise.
9527 Copyright (C) 2020 Free Software Foundation, Inc.
9529 Copying and distribution of this file, with or without modification,
9530 are permitted in any medium without royalty provided the copyright
9531 notice and this notice are preserved.