1 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
3 * Makefile.rtl (GNATRTL_128BIT_PAIRS): Add i-cexten.ads.
4 * debug.adb (d.H): Document new usage.
5 * doc/gnat_rm/representation_clauses_and_pragmas.rst (Size Clauses):
6 Document new limit on 64-bit platforms.
7 (Component_Size Clauses): Likewise.
8 (Pragma Pack for Arrays): Likewise.
9 (Pragma Pack for Records): Likewise.
10 (Record Representation Clauses): Likewise.
11 * gnat_rm.texi: Regenerate.
12 * gnat1drv.adb (Adjust_Global_Switches): Rewrite code enabling or
13 disabling the support for 128-bit integer types.
14 * switch-c.adb (Scan_Front_End_Switches): Do not deal with e128.
15 * usage.adb (Write_Switch_Char): Do not print -gnate128 switch.
16 * libgnat/i-cexten__128.ads: New file.
18 2020-10-22 Javier Miranda <miranda@adacore.com>
20 * einfo.ads (Has_Limited_View): New synthesized attribute.
21 * einfo.adb (Has_Limited_View): New synthesized attribute.
22 (Set_Limited_View): Complete assertion.
23 * sem_ch10.ads (Is_Visible_Through_Renamings): Make this routine
24 public to invoke it from Find_Expanded_Name and avoid reporting
25 spurious errors on renamings of limited-with packages.
26 (Load_Needed_Body): Moved to have this spec alphabetically
28 * sem_ch10.adb (Is_Visible_Through_Renamings): Moved to library
30 (Is_Limited_Withed_Unit): New subprogram.
31 * sem_ch3.adb (Access_Type_Declaration): Adding protection to
32 avoid reading attribute Entity() when not available.
33 * sem_ch8.adb (Analyze_Package_Renaming): Report error on
34 renamed package not visible through context clauses.
35 (Find_Expanded_Name): Report error on renamed package not
36 visible through context clauses; handle special case where the
37 prefix is a renaming of a (now visible) shadow package.
39 2020-10-22 Ghjuvan Lacambre <lacambre@adacore.com>
41 * exp_prag.adb (Get_Launch_Kernel_Arg_Type): New function.
42 (Build_Shared_Memory_Declaration): Use
43 Get_Launch_Kernel_Arg_Type.
44 (Build_Stream_Declaration): Use Get_Launch_Kernel_Arg_Type.
45 * rtsfind.ads: Remove RO_IC_Unsigned_Long_Long.
47 2020-10-22 Arnaud Charlet <charlet@adacore.com>
49 * libgnat/s-imenne.adb, libgnat/s-imgrea.adb: Add assertions.
51 2020-10-22 Arnaud Charlet <charlet@adacore.com>
53 * libgnat/s-imgrea.adb (Set_Image_Real): Update annotations.
55 2020-10-22 Steve Baird <baird@adacore.com>
57 * aspects.ads: Introduce the subtype Nonoverridable_Aspect_Id,
58 whose Static_Predicate reflects the list of nonoverridable
59 aspects given in Ada RM 13.1.1(18.7).
60 * sem_util.ads, sem_util.adb: Add two new visible subprograms,
61 Check_Inherited_Nonoverridable_Aspects and Is_Confirming. The
62 former is used to check the consistency of inherited
63 nonoverridable aspects from multiple sources. The latter
64 indicates whether two aspect specifications for a nonoverridable
65 aspect are confirming. Because of compatibility concerns in
66 compiling QGen, Is_Confirming always returns True if
67 Relaxed_RM_Semantics (i.e., -gnatd.M) is specified.
68 * sem_ch3.adb (Derived_Type_Declaration): Call new
69 Check_Inherited_Nonoverridable_Aspects procedure if interface
71 * sem_ch9.adb (Check_Interfaces): Call new
72 Check_Inherited_Nonoverridable_Aspects procedure if interface
74 * sem_ch13.adb (Analyze_Aspect_Specifications): When an explicit
75 aspect specification overrides an inherited nonoverridable
76 aspect, check that the explicit specification is confirming.
78 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
80 * freeze.ads (Check_Compile_Time_Size): Adjust size limit.
82 2020-10-22 Richard Kenner <kenner@adacore.com>
84 * sprint.adb (pg, po, ps): Use {Push,Pop}_Output.
85 * treepr.adb (pl, pn): Likewise.
87 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
89 * doc/gnat_rm/implementation_advice.rst: Minor fix.
90 * gnat_rm.texi: Regenerate.
92 2020-10-22 Steve Baird <baird@adacore.com>
94 * sem_util.adb (Is_Container_Aggregate): A new local predicates
95 which indicates whether a given expression is a container
96 aggregate. The implementation of this function is incomplete; in
97 the unusual case of a record aggregate (i.e., not a container
98 aggregate) of a type whose Aggregate aspect is specified, the
99 function will incorrectly return True.
100 (Immediate_Context_Implies_Is_Potentially_Unevaluated): Improve
101 handling of aggregate components.
102 (Is_Repeatedly_Evaluated): Test for container aggregate
103 components along with existing test for array aggregate
106 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
108 * exp_fixd.adb (Fpt_Value): Fold if-then-else with identical arms.
110 2020-10-22 Ed Schonberg <schonberg@adacore.com>
112 * par-ch4.adb (P_Iterated_Component_Association): If the
113 construct includes an iterator filter it corresponds to an
114 Iterated_Element_Association, so build the proper node for it.
115 * exp_aggr.adb (Expand_Container_Aggregate, Aggregate_Size): If
116 the component is an Iterated_Element_Association, treat it as
117 having a non-static size.
119 2020-10-22 Ghjuvan Lacambre <lacambre@adacore.com>
121 * scng.adb (Scan): Check if any letter of the token is
124 2020-10-22 Justin Squirek <squirek@adacore.com>
126 * sem_util.adb (Accessibility_Level_Helper): Conversions to
127 named access types get the level associated with the named
130 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
132 * einfo.ads (Has_Constrained_Partial_View): Add "base type" marker.
134 2020-10-22 Gary Dismukes <dismukes@adacore.com>
136 * einfo.adb (Has_Constrained_Partial_View): Apply Base_Type to Id.
137 * sem_res.adb (Resolve_Actuals.Check_Aliased_Parameter): Remove
138 "not Is_Generic_Type" test and call
139 Object_Type_Has_Constrained_Partial_View instead of
140 Has_Constrained_Partial_View. Improve related error message to
141 say "does not statically match" instead of just "does not
144 2020-10-22 Steve Baird <baird@adacore.com>
146 * sem_util.ads, sem_util.adb: Declare and implement a new
147 predicate, Derivation_Too_Early_To_Inherit. This function
148 indicates whether a given derived type fails to inherit a given
149 streaming-related attribute from its parent type because the
150 declaration of the derived type precedes the corresponding
151 attribute_definition_clause of the parent.
152 * exp_tss.adb (Find_Inherited_TSS): Call
153 Derivation_Too_Early_To_Inherit instead of unconditionally
154 assuming that a parent type's streaming attribute is available
155 for inheritance by an immediate descendant type.
156 * sem_attr.adb (Stream_Attribute_Available): Call
157 Derivation_Too_Early_To_Inherit instead of unconditionally
158 assuming that a parent type's streaming attribute is available
159 for inheritance by an immediate descendant type.
160 * exp_attr.adb (Default_Streaming_Unavailable): A new predicate;
161 given a type, indicates whether predefined (as opposed to
162 user-defined) streaming operations for the type should be
163 implemented by raising Program_Error.
164 (Expand_N_Attribute_Reference): For each of the 4
165 streaming-related attributes (i.e., Read, Write, Input, Output),
166 after determining that no user-defined implementation is
167 available (including a Stream_Convert pragma), call
168 Default_Streaming_Unavailable; if that call returns True, then
169 implement the streaming operation as "raise Program_Error;".
171 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
173 * checks.adb (Apply_Float_Conversion_Check): Saturate the bounds
174 of the check to those of the base type of the expression.
176 2020-10-22 Justin Squirek <squirek@adacore.com>
178 * checks.adb (Apply_Accessibility_Check): Modify condition to
179 avoid flawed optimization and use Get_Accessibility over
181 * exp_attr.adb: Remove inclusion of Exp_Ch2.adb.
182 * exp_ch2.adb, exp_ch2.ads (Param_Entity): Moved to sem_util.
183 * exp_ch3.ads (Init_Proc_Level_Formal): New function.
184 * exp_ch3.adb (Build_Init_Procedure): Add extra accessibility
185 formal for init procs when the associated type is a limited
187 (Build_Initialization_Call): Add condition to handle propagation
188 of the new extra accessibility paramter actual needed for init
190 (Init_Proc_Level_Formal): Created to fetch a the extra
191 accessibility parameter associated with init procs if one
193 * exp_ch4.adb (Build_Attribute_Reference): Modify static check
195 * exp_ch6.adb (Add_Cond_Expression_Extra_Actual): Move logic
196 used to expand conditional expressions used as actuals for
197 anonymous access formals.
198 (Expand_Call_Helper): Remove extranious accessibility
200 * exp_util.adb: Remove inclusion of Exp_Ch2.adb.
201 * par-ch3.adb (P_Array_Type_Definition): Properly set
202 Aliased_Present on access definitions
203 * sem_attr.adb (Resolve_Attribute): Replace instances for
204 Object_Access_Level with Static_Accessibility_Level.
205 * sem_ch13.adb (Storage_Pool): Replace instances for
206 Object_Access_Level with Static_Accessibility_Level.
207 * sem_ch6.adb (Check_Return_Construct_Accessibility): Replace
208 instances for Object_Access_Level with
209 Static_Accessibility_Level.
210 * sem_ch9.adb (Analyze_Requeue): Replace instances for
211 Object_Access_Level with Static_Accessibility_Level.
212 * sem_res.adb (Check_Aliased_Parameter,
213 Check_Allocator_Discrim_Accessibility, Valid_Conversion):
214 Replace instances for Object_Access_Level with
215 Static_Accessibility_Level.
216 * sem_util.adb, sem_util.ads (Accessibility_Level_Helper):
217 Created to centralize calculation of accessibility levels.
218 (Build_Component_Subtype): Replace instances for
219 Object_Access_Level with Static_Accessibility_Level.
220 (Defining_Entity): Add extra parameter to dictate whether an
221 error is raised or empty is return in the case of an irrelevant
223 (Dynamic_Accessibility_Level): Rewritten to use
224 Accessibility_Level_Helper.
225 (Is_View_Conversion): Check membership against Etype to capture
226 nodes like explicit dereferences which have types but are not
227 expanded names or identifers.
228 (Object_Access_LeveL): Removed.
229 (Param_Entity): Moved from sem_util.
230 (Static_Accessibility_Level): Created as a replacement to
231 Object_Access_Level, it also uses Accessibility_Level_Helper for
233 * snames.ads-tmpl: Added new name for extra accessibility
234 parameter in init procs.
236 2020-10-22 Piotr Trojanek <trojanek@adacore.com>
238 * exp_prag.adb (Expand_Pragma_Contract_Cases,
239 Expand_Pragma_Loop_Variant): Reuse Append_New_To.
240 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Fix typo.
241 (Analyze_Pre_Post_Condition): Refactor repeated calls to
244 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
246 * doc/gnat_rm/implementation_defined_characteristics.rst: Minor
248 * gnat_rm.texi: Regenerate.
250 2020-10-22 Piotr Trojanek <trojanek@adacore.com>
252 * sem_warn.adb (Check_Unused_Withs): Move local variables from
253 to a nested procedure; Lunit is passed as a parameter to
254 Check_System_Aux and its type is refined from Node_Id to
255 Entity_Id; Cnode is now a constant.
257 2020-10-22 Patrick Bernardi <bernardi@adacore.com>
259 * libgnat/s-rident.ads (Profile_Info): Use a common profile
260 definition for Jorvik and GNAT Extended Ravenscar, using the
261 GNAT Extended Ravenscar definition.
263 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
265 * Makefile.rtl (64-bit platforms): Add GNATRTL_128BIT_PAIRS to
266 the LIBGNAT_TARGET_PAIRS list and also GNATRTL_128BIT_OBJS to
267 the EXTRA_GNATRTL_NONTASKING_OBJS list.
269 2020-10-22 Ghjuvan Lacambre <lacambre@adacore.com>
271 * sem_prag.adb (Process_Convention,
272 Process_Import_Or_Interface): Fix error message.
274 2020-10-22 Ghjuvan Lacambre <lacambre@adacore.com>
276 * sem_ch13.adb (Make_Aitem_Pragma): Turn into function. This
277 removes a side-effect on the Aitem variable.
278 (Analyze_Aspect_Specifications): Handle Suppress and Unsuppress
279 aspects differently from the Linker_Section aspect.
280 (Ceck_Aspect_At_Freeze_Point): Don't expect Suppress/Unsuppress
281 to be delayed anymore.
283 2020-10-22 Ed Schonberg <schonberg@adacore.com>
285 * sem_aggr.adb: (Resolve_Container_Aggregate): For an indexed
286 container, verify that expressions and component associations
287 are not both present.
288 * exp_aggr.adb: Code reorganization, additional comments.
289 (Expand_Container_Aggregate): Use Aggregate_Size for Iterated_
290 Component_Associations for indexed aggregates. If present, the
291 default value of the formal in the constructor function is used
292 when the size of the aggregate cannot be determined statically.
294 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
296 * sem_attr.adb (Eval_Attribute): Fix oversight for Bit_Position.
298 2020-10-22 Ed Schonberg <schonberg@adacore.com>
300 * sem_util.ads, sem_util.adb (Check_Ambiguous_Aggregate): When a
301 subprogram call is found to be ambiguous, check whether
302 ambiguity is caused by an aggregate actual. and indicate that
303 it should carry a type qualification.
304 * sem_ch4.adb (Traverse_Hoonyms, Try_Primitive_Operation): Call
306 * sem_res.adb (Report_Ambiguous_Argument): Call it.
308 2020-10-22 Piotr Trojanek <trojanek@adacore.com>
310 * sem_warn.adb (Check_One_Unit): Avoid repeated calls by using a
311 local variable Lunit; remove local constant Eitem, which was
314 2020-10-22 Alexandre Oliva <oliva@adacore.com>
316 * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <x86*-vxworks*>: Select
317 nolibm and wraplf variants like other vxworks ports.
319 2020-10-22 Martin Liska <mliska@suse.cz>
322 * gcc-interface/utils.c (handle_no_stack_protect_attribute):
324 (handle_stack_protect_attribute): Add error message for a
325 no_stack_protector function.
327 2020-10-22 Alexandre Oliva <oliva@adacore.com>
329 * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <lynxos178>: Rely on
330 Aux_Long_Float for all real types.
332 2020-10-22 Alexandre Oliva <oliva@adacore.com>
334 * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Use Long Float-based
335 variant of Aux_Short_Float and Aux_Float on vxworks targets.
336 * libgnat/a-nashfl__wraplf.ads: New.
337 * libgnat/a-nuaufl__wraplf.ads: New.
339 2020-10-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
341 * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <sparc*-sun-solaris>:
342 Use wraplf version of a-nallfl.
344 2020-10-22 Alexandre Oliva <oliva@adacore.com>
346 * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Use
347 a-nallfl__wraplf.ads on aarch64-* and ppc*-linux-gnu targets.
348 * libgnat/a-nallfl__wraplf.ads: New.
350 2020-10-22 Jan Hubicka <hubicka@ucw.cz>
352 * gcc-interface/trans.c: Include tree-nested.h
353 (walk_nesting_tree): Update for new nested function info.
355 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
357 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add a-llltio, a-lllwti,
358 a-lllzti and remove a-timoau, a-wtmoau and a-ztmoau.
359 (GNATRTL_128BIT_PAIRS): Add a-tiinio.adb, a-timoio.adb, a-wtinio.adb,
360 a-wtmoio.adb, a-ztinio.adb and a-ztmoio.adb.
361 * impunit.adb (Non_Imp_File_Names_95): Add a-llltio, a-lllwti and
363 * krunch.ads: Document trick for Ada.Long_Long_Long_Integer_*_IO.
364 * krunch.adb (Krunch): Add trick for Ada.Long_Long_Long_Integer_*_IO.
365 * libgnat/a-llltio.ads: Instantiate Ada.Text_IO.Integer_IO.
366 * libgnat/a-lllwti.ads: Instantiate Ada.Wide_Text_IO.Integer_IO.
367 * libgnat/a-lllzti.ads: Instantiate Ada.Wide_Wide_Text_IO.Integer_IO.
368 * libgnat/a-tigeau.ads (Load_Integer): New procedure.
369 * libgnat/a-tigeau.adb (Load_Integer): Likewise.
370 * libgnat/a-tiinau.ads, libgnat/a-tiinau.adb: Change to generic
372 * libgnat/a-tiinio.adb: Instantiate it.
373 * libgnat/a-tiinio__128.adb: Likewise.
374 * libgnat/a-timoau.ads, libgnat/a-timoau.adb: Change to generic
376 * libgnat/a-timoio.adb: Instantiate it.
377 * libgnat/a-timoio__128.adb: Likewise.
378 * libgnat/a-wtgeau.ads (Load_Integer): New procedure.
379 * libgnat/a-wtgeau.adb (Load_Integer): Likewise.
380 * libgnat/a-wtinau.ads, libgnat/a-wtinau.adb: Change to generic
382 * libgnat/a-wtinio.adb: Instantiate it.
383 * libgnat/a-wtinio__128.adb: Likewise.
384 * libgnat/a-wtmoau.ads, libgnat/a-wtmoau.adb: Change to generic
386 * libgnat/a-wtmoio.adb: Instantiate it.
387 * libgnat/a-wtmoio__128.adb: Likewise.
388 * libgnat/a-ztgeau.ads (Load_Integer): New procedure.
389 * libgnat/a-ztgeau.adb (Load_Integer): Likewise.
390 * libgnat/a-ztinau.ads, libgnat/a-ztinau.adb: Change to generic
392 * libgnat/a-ztinio.adb: Instantiate it.
393 * libgnat/a-ztinio__128.adb: Likewise.
394 * libgnat/a-ztmoau.ads, libgnat/a-ztmoau.adb: Change to generic
396 * libgnat/a-ztmoio.adb: Instantiate it.
397 * libgnat/a-ztmoio__128.adb: Likewise.
399 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
401 * sem_ch12.adb (Freeze_Subprogram_Body): Do not move the freeze
402 node of the package body enclosing the instance when its parent
403 is in the same declarative part as the freeze node of the parent.
405 2020-10-21 Steve Baird <baird@adacore.com>
407 * exp_ch6.adb (Insert_Post_Call_Actions): When a function's
408 result type requires finalization and we decide to make copy of
409 a call to the function and subsequently refer only to the copy,
410 then don't forget to finalize the original function result
413 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
415 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-widint,
416 s-widthi, s-widuns, s-widuns.
417 (GNATRTL_128BIT_OBJS): Add s-imglllb, s-imgllli, s-imglllu, s-imglllw,
418 s-valllli, s-vallllu, s-widllli, s-widlllu.
419 * exp_imgv.adb (Expand_Image_Attribute): Deal with 128-bit types.
420 (Expand_Value_Attribute): Likewise.
421 (Expand_Width_Attribute): Likewise.
422 * exp_put_image.adb (Build_Elementary_Put_Image_Call): Likewise.
423 * krunch.adb (Krunch): Deal with s-img, s-val and s-wid prefixes.
424 * rtsfind.ads (RTU_Id): Add System_Img_LLLI, System_Img_LLLU,
425 System_Val_LLLI, System_Val_LLL, System_Wid_Int, System_Wid_LLLI,
426 System_Wid_LLLU, System_Wid_Uns).
427 (RE_Id): Add RE_Image_Long_Long_Long_Integer,
428 RE_Image_Long_Long_Long_Unsigned,
429 RE_Put_Image_Long_Long_Long_Integer,
430 RE_Put_Image_Long_Long_Long_Unsigned,
431 RE_Long_Long_Long_Unsigned, RE_Value_Long_Long_Long_Integer,
432 RE_Value_Long_Long_Long_Unsigned, RE_Width_Integer,
433 RE_Width_Long_Long_Long_Integer, RE_Width_Long_Long_Long_Unsigned,
434 RE_Width_Unsigned, RE_Image_Long_Long_Long_Integer,
435 RE_Image_Long_Long_Long_Unsigned, RE_Put_Image_Long_Long_Long_Integer,
436 RE_Put_Image_Long_Long_Long_Unsigned, RE_Long_Long_Long_Unsigned,
437 RE_Value_Long_Long_Long_Integer, RE_Value_Long_Long_Long_Unsigned,
438 RE_Width_Integer, RE_Width_Long_Long_Long_Integer,
439 RE_Width_Long_Long_Long_Unsigned, RE_Width_Unsigned.
440 * libgnat/s-imageb.ads, libgnat/s-imageb.adb: New generic
442 * libgnat/s-imagei.ads, libgnat/s-imagei.adb: Likewise.
443 * libgnat/s-imageu.ads, libgnat/s-imageu.adb: Likewise.
444 * libgnat/s-imagew.ads, libgnat/s-imagew.adb: Likewise.
445 * libgnat/s-imgbiu.ads: Instantiate System.Image_B.
446 * libgnat/s-imgbiu.adb: Add pragma No_Body.
447 * libgnat/s-imgint.ads: Instantiate System.Image_I.
448 * libgnat/s-imgint.adb: Add pragma No_Body.
449 * libgnat/s-imgllb.ads: Instantiate System.Image_B.
450 * libgnat/s-imgllb.adb: Add pragma No_Body0
451 * libgnat/s-imglli.ads: Instantiate System.Image_I.
452 * libgnat/s-imglli.adb: Add pragma No_Body.
453 * libgnat/s-imglllb.ads: Instantiate System.Image_B.
454 * libgnat/s-imgllli.ads: Instantiate System.Image_I.
455 * libgnat/s-imglllu.ads: Instantiate System.Image_U.
456 * libgnat/s-imglllw.ads: Instantiate System.Image_W.
457 * libgnat/s-imgllu.ads: Instantiate System.Image_U.
458 * libgnat/s-imgllu.adb: Add pragma No_Body.
459 * libgnat/s-imgllw.ads: Instantiate System.Image_W.
460 * libgnat/s-imgllw.adb: Add pragma No_Body.
461 * libgnat/s-imgrea.adb: Remove clauses for System.Unsigned_Types.
462 * libgnat/s-imguns.ads: Instantiate System.Image_U.
463 * libgnat/s-imguns.adb: Add pragma No_Body.
464 * libgnat/s-imgwiu.ads: Instantiate System.Image_W.
465 * libgnat/s-imgwiu.adb: Add pragma No_Body.
466 * libgnat/s-putima.ads (Long_Long_Long_Unsigned): New subtype.
467 (Put_Image_Long_Long_Long_Unsigned): New procedure.
468 * libgnat/s-putima.adb (Small): Rename to Integer_Images.
469 (Large): Rename to LL_Integer_Images.
470 (LLL_Integer_Images): New instantiation.
471 (Put_Image_Long_Long_Long_Integer): New renaming.
472 (Put_Image_Long_Long_Long_Unsigned): Likewise.
473 * libgnat/s-valint.ads: Instantiate System.Value_I.
474 * libgnat/s-valint.adb: Add pragma No_Body.
475 * libgnat/s-vallli.ads: Instantiate System.Value_I.
476 * libgnat/s-vallli.adb: Add pragma No_Body.
477 * libgnat/s-valllli.ads: Instantiate System.Value_I.
478 * libgnat/s-vallllu.ads: Instantiate System.Value_U.
479 * libgnat/s-valllu.ads: Instantiate System.Value_U.
480 * libgnat/s-valllu.adb: Add pragma No_Body.
481 * libgnat/s-valuei.ads, libgnat/s-valuei.adb: New generic
483 * libgnat/s-valueu.ads, libgnat/s-valueu.adb: Likewise.
484 * libgnat/s-valuns.ads: Instantiate System.Value_U.
485 * libgnat/s-valuns.adb: Add pragma No_Body.
486 * libgnat/s-widint.ads: Instantiate System.Width_I.
487 * libgnat/s-widlli.ads: Likewise.
488 * libgnat/s-widlli.adb: Add pragma No_Body.
489 * libgnat/s-widllli.ads: Instantiate System.Width_I.
490 * libgnat/s-widlllu.ads: Instantiate System.Width_U.
491 * libgnat/s-widllu.ads: Likewise.
492 * libgnat/s-widllu.adb: Add pragma No_Body.
493 * libgnat/s-widthi.ads, libgnat/s-widthi.adb: New generic
495 * libgnat/s-widthu.ads, libgnat/s-widthu.adb: Likewise.
496 * libgnat/s-widuns.ads: Instantiate System.Width_U.
498 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
500 * set_targ.adb (DTN): Fix oversight.
501 (Read_Target_Dependent_Values): Do not error out on missing
502 Long_Long_Long_Size entry and reuse Long_Long_Size for it.
504 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
506 * exp_aggr.adb (Gen_Loop): Analyze copy of the expression in the
507 scope of the implicit loop with name of the index parameter
510 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
512 * Makefile.rtl (GNATRTL_128BIT_PAIRS): New variable.
513 (GNATRTL_128BIT_OBJS): Likewise.
514 (Windows): In 64-bit mode, add the former to LIBGNAT_TARGET_PAIRS and
515 the latter to EXTRA_GNATRTL_NONTASKING_OBJS.
516 (x86_64/linux): Likewise, but unconditionally.
517 (GNATRTL_NONTASKING_OBJS): Add s-aridou, s-exponn, s-expont,
519 * ada_get_targ.adb (Get_Long_Long_Long_Size): New function.
520 * checks.adb (Apply_Arithmetic_Overflow_Strict): Use Integer_Type_For
521 to find an appropriate integer type; if it does not exist and the max
522 integer size is larger than 64, use the 128-bit arithmetic routines.
523 * cstand.adb (Create_Standard): Build Standard_Long_Long_Long_Integer
524 and its base type. Use it for Etype of Any_Integer, Any_Modular and
525 Any_Numeric. Use its size for Build Standard_Long_Long_Long_Unsigned
526 and Universal_Integer.
527 (Print_Standard): Print Long_Long_Long_Integer.
528 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Mod>: Adjust
530 * exp_ch3.adb (Simple_Init_Initialize_Scalars_Type): Deal with 128-bit
532 * exp_ch4.adb (Expand_Array_Comparison): Likewise.
533 (Expand_N_Op_Expon): Likewise.
534 (Narrow_Large_Operation): Likewise.
535 * exp_dbug.adb (Bounds_Match_Size): Handle 128-bit size.
536 * exp_fixd.adb (Build_Double_Divide_Code): Use RE_Double_Divide64.
537 * exp_intr.adb (Expand_Binary_Operator_Call): Handle 128-bit size.
538 * exp_pakd.ads (E_Array): Extend range to 127.
539 (Bits_Id): Fill in up to 127.
544 * exp_pakd.adb (Revert_Storage_Order): Handle 128-bit size.
545 * exp_util.adb (Integer_Type_For): Likewise.
546 (Small_Integer_Type_For): Likewise.
547 * fname.adb (Is_Predefined_File_Name): Do not return False for names
548 larger than 12 characters if they start with "s-".
549 * freeze.adb (Adjust_Esize_For_Alignment): Change the maximum value
550 to System_Max_Integer_Size.
551 (Check_Suspicious_Modulus): Adjust comment.
552 (Freeze_Entity): Likewise.
553 * get_targ.ads (Get_Long_Long_Long_Size): New function.
554 * get_targ.adb (Get_Long_Long_Long_Size): Likewise.
555 (Width_From_Size): Deal with 128-bit size.
556 * gnat1drv.adb (Adjust_Global_Switches): Deal with 128-bit types.
557 * impunit.adb (Get_Kind_Of_File): Bump buffer size. Accept files with
558 13 characters if they start with 's'. Compare slice of Buffer.
559 (Not_Impl_Defined_Unit): Accept files with 13 characters if they start
561 * krunch.ads: Document length for 128-bit support units.
562 * krunch.adb (Krunch): Set length to 9 for 128-bit support units.
563 * layout.adb (Layout_Type): Use System_Max_Integer_Size as alignment
565 * rtsfind.ads (RTU_Id): Add System_Arith_128,
566 System_Compare_Array_Signed_128, System_Compare_Array_Unsigned_128,
567 System_Exn_LLLI, System_Exp_LLLU, System_Pack_[65..127].
568 (RE_Id): Add RE_Integer_128, RE_Unsigned_128, RE_Add_With_Ovflo_Check128
569 RE_Multiply_With_Ovflo_Check128, RE_Subtract_With_Ovflo_Check128,
570 RE_Bswap_128, RE_Compare_Array_S128, RE_Compare_Array_U128,
571 RE_Exn_Long_Long_Long_Integer, RE_Exp_Long_Long_Long_Integer,
572 RE_Exp_Long_Long_Long_Unsigned, RE_Bits_[65-127], RE_Get_[65-127],
573 RE_Set_[65-127], RE_IS_Is16, RE_IS_Iu16, RE_Integer_128 and
574 RE_Unsigned_128. Rename RE_Add_With_Ovflo_Check, RE_Double_Divide,
575 RE_Multiply_With_Ovflo_Check, RE_Scaled_Divide and
576 RE_Subtract_With_Ovflo_Check. Remove RE_IS_Iz1, RE_IS_Iz2, RE_IS_Iz4,
577 RE_IS_Iz8, RE_Long_Unsigned, RE_Short_Unsigned, RE_Short_Short_Unsigned
578 (RE_Unit_Table): Likewise.
579 * sem_aux.adb (Corresponding_Unsigned_Type): Deal with a size equal to
580 that of Standard_Long_Long_Long_Integer.
581 (First_Subtype): Deal with Standard_Long_Long_Long_Integer'Base.
582 * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Attribute_Size>:
583 Check the size against powers of 2 and System_Max_Integer_Size for
585 (Set_Enum_Esize): Deal with 128-bit bounds.
586 * sem_ch3.adb (Set_Modular_Size): Handle 128-bit size.
587 (Modular_Type_Declaration): Deal with 128-bit types.
588 (Signed_Integer_Type_Declaration): Support derivation from
589 Standard_Long_Long_Long_Integer.
590 * sem_ch4.adb (Analyze_Mod): Handle 128-bit modulus.
591 * sem_intr.adb: Add with and use clauses for Ttypes.
592 (Check_Shift): Handle 128-bit size and modulus.
593 * sem_prag.adb (Analyze_Pragma) <Pragma_Initialize_Scalars>: Deal
594 with Signed_128 and Unsigned_128.
595 (Analyze_Integer_Value): Handle 128-bit size.
596 * sem_util.ads (Addressable): Adjust description.
597 * sem_util.adb (Addressable): Return true for 128 if the system
599 (Set_Invalid_Binder_Values): Deal with Signed_128 and Unsigned_128.
600 * set_targ.ads (Long_Long_Long_Size): New variable.
601 * set_targ.adb (S_Long_Long_Long_Size): New constant.
602 (DTN): Add entry for S_Long_Long_Long_Size.
603 (DTV): Add entry for Long_Long_Long_Size.
604 (Set_Targ): Set Long_Long_Long_Size.
605 * snames.ads-tmpl (Name_Max_Integer_Size): New attribute name.
606 (Name_Signed_128): New scalar name.
607 (Name_Unsigned_128): Likewise.
609 (Integer_Scalar_Id): Likewise.
610 (Attribute_Id): Add Attribute_Max_Integer_Size.
611 * stand.ads (Standard_Entity_Type): Add S_Long_Long_Long_Integer.
612 (Standard_Long_Long_Long_Integer): New renaming.
613 (Universal_Integer): Adjust description.
614 (Standard_Long_Long_Long_Unsigned): New variable.
615 * switch-c.adb (Scan_Front_End_Switches): Deal with -gnate128.
616 * ttypes.ads (Standard_Long_Long_Long_Integer_Size): New variable.
617 (Standard_Long_Long_Long_Integer_Width): Likewise.
618 (System_Max_Integer_Size): Turn into variable.
619 (System_Max_Binary_Modulus_Power): Likewise.
620 * uintp.ads (Uint_127): New constant.
621 * uintp.adb (UI_Power_2): Extednd to 128.
622 (UI_Power_10): Likewise.
623 (UI_Expon): Deal with exponent up to 128 specially.
624 * usage.adb (Write_Switch_Char): Print -gnate128 switch.
625 * libgnat/a-tifiio.adb (Put_Scaled): Call Scaled_Divide64.
626 * libgnat/interfac__2020.ads (Integer_128): New integer type.
627 (Unsigned_128): New modular type.
628 (Shift_Left, Shift_Right, Shift_Right_Arithmetic, Rotate_Left,
629 Rotate_Right): New intrinsic functions operating on it.
630 * libgnat/s-aridou.ads, libgnat/s-aridou.adb: New generic
632 * libgnat/s-arit64.ads, libgnat/s-arit64.adb: Instantiate
633 System.Arithmetic_Double.
634 * libgnat/s-arit128.ads, libgnat/s-arit128.adb: Likewise.
635 * libgnat/s-bytswa.ads: Add with clause for Interfaces, use subtypes
636 of unsigned types defined in Interfaces and add Bswap_128.
637 * libgnat/s-casi128.ads, libgnat/s-casi128.adb: New package.
638 * libgnat/s-caun128.ads, libgnat/s-caun128.adb: Likewise.
639 * libgnat/s-exnint.ads: Instantiate System.Exponn.
640 * libgnat/s-exnint.adb: Add pragma No_Body.
641 * libgnat/s-exnlli.ads: Instantiate System.Exponn.
642 * libgnat/s-exnlli.adb: Add pragma No_Body.
643 * libgnat/s-exnllli.ads: Instantiate System.Exponn.
644 * libgnat/s-expint.ads: Likewise.
645 * libgnat/s-expint.adb: Add pragma No_Body.
646 * libgnat/s-explli.ads: Instantiate System.Exponn.
647 * libgnat/s-explli.adb: Add pragma No_Body.
648 * libgnat/s-expllli.ads: Instantiate System.Exponn.
649 * libgnat/s-explllu.ads: Instantiate System.Exponu.
650 * libgnat/s-expllu.ads: Likewise.
651 * libgnat/s-expllu.adb: Add pragma No_Body.
652 * libgnat/s-exponn.ads, libgnat/s-exponn.adb: New generic
654 * libgnat/s-expont.ads, libgnat/s-expont.adb: Likewise.
655 * libgnat/s-exponu.ads, libgnat/s-exponu.adb: Likewise.
656 * libgnat/s-expuns.ads, libgnat/s-expuns.adb: Likewise.
657 * libgnat/s-pack65.ads, libgnat/s-pack65.adb: New package.
658 * libgnat/s-pack66.ads, libgnat/s-pack66.adb: New package.
659 * libgnat/s-pack67.ads, libgnat/s-pack67.adb: New package.
660 * libgnat/s-pack68.ads, libgnat/s-pack68.adb: New package.
661 * libgnat/s-pack69.ads, libgnat/s-pack69.adb: New package.
662 * libgnat/s-pack70.ads, libgnat/s-pack70.adb: New package.
663 * libgnat/s-pack71.ads, libgnat/s-pack71.adb: New package.
664 * libgnat/s-pack72.ads, libgnat/s-pack72.adb: New package.
665 * libgnat/s-pack73.ads, libgnat/s-pack73.adb: New package.
666 * libgnat/s-pack74.ads, libgnat/s-pack74.adb: New package.
667 * libgnat/s-pack75.ads, libgnat/s-pack75.adb: New package.
668 * libgnat/s-pack76.ads, libgnat/s-pack76.adb: New package.
669 * libgnat/s-pack77.ads, libgnat/s-pack77.adb: New package.
670 * libgnat/s-pack78.ads, libgnat/s-pack78.adb: New package.
671 * libgnat/s-pack79.ads, libgnat/s-pack79.adb: New package.
672 * libgnat/s-pack80.ads, libgnat/s-pack80.adb: New package.
673 * libgnat/s-pack81.ads, libgnat/s-pack81.adb: New package.
674 * libgnat/s-pack82.ads, libgnat/s-pack82.adb: New package.
675 * libgnat/s-pack83.ads, libgnat/s-pack83.adb: New package.
676 * libgnat/s-pack84.ads, libgnat/s-pack84.adb: New package.
677 * libgnat/s-pack85.ads, libgnat/s-pack85.adb: New package.
678 * libgnat/s-pack86.ads, libgnat/s-pack86.adb: New package.
679 * libgnat/s-pack87.ads, libgnat/s-pack87.adb: New package.
680 * libgnat/s-pack88.ads, libgnat/s-pack88.adb: New package.
681 * libgnat/s-pack89.ads, libgnat/s-pack89.adb: New package.
682 * libgnat/s-pack90.ads, libgnat/s-pack90.adb: New package.
683 * libgnat/s-pack91.ads, libgnat/s-pack91.adb: New package.
684 * libgnat/s-pack92.ads, libgnat/s-pack92.adb: New package.
685 * libgnat/s-pack93.ads, libgnat/s-pack93.adb: New package.
686 * libgnat/s-pack94.ads, libgnat/s-pack94.adb: New package.
687 * libgnat/s-pack95.ads, libgnat/s-pack95.adb: New package.
688 * libgnat/s-pack96.ads, libgnat/s-pack96.adb: New package.
689 * libgnat/s-pack97.ads, libgnat/s-pack97.adb: New package.
690 * libgnat/s-pack98.ads, libgnat/s-pack98.adb: New package.
691 * libgnat/s-pack99.ads, libgnat/s-pack99.adb: New package.
692 * libgnat/s-pack100.ads, libgnat/s-pack100.adb: New package.
693 * libgnat/s-pack101.ads, libgnat/s-pack101.adb: New package.
694 * libgnat/s-pack102.ads, libgnat/s-pack102.adb: New package.
695 * libgnat/s-pack103.ads, libgnat/s-pack103.adb: New package.
696 * libgnat/s-pack104.ads, libgnat/s-pack104.adb: New package.
697 * libgnat/s-pack105.ads, libgnat/s-pack105.adb: New package.
698 * libgnat/s-pack106.ads, libgnat/s-pack106.adb: New package.
699 * libgnat/s-pack107.ads, libgnat/s-pack107.adb: New package.
700 * libgnat/s-pack108.ads, libgnat/s-pack108.adb: New package.
701 * libgnat/s-pack109.ads, libgnat/s-pack109.adb: New package.
702 * libgnat/s-pack110.ads, libgnat/s-pack110.adb: New package.
703 * libgnat/s-pack111.ads, libgnat/s-pack111.adb: New package.
704 * libgnat/s-pack112.ads, libgnat/s-pack112.adb: New package.
705 * libgnat/s-pack113.ads, libgnat/s-pack113.adb: New package.
706 * libgnat/s-pack114.ads, libgnat/s-pack114.adb: New package.
707 * libgnat/s-pack115.ads, libgnat/s-pack115.adb: New package.
708 * libgnat/s-pack116.ads, libgnat/s-pack116.adb: New package.
709 * libgnat/s-pack117.ads, libgnat/s-pack117.adb: New package.
710 * libgnat/s-pack118.ads, libgnat/s-pack118.adb: New package.
711 * libgnat/s-pack119.ads, libgnat/s-pack119.adb: New package.
712 * libgnat/s-pack120.ads, libgnat/s-pack120.adb: New package.
713 * libgnat/s-pack121.ads, libgnat/s-pack121.adb: New package.
714 * libgnat/s-pack122.ads, libgnat/s-pack122.adb: New package.
715 * libgnat/s-pack123.ads, libgnat/s-pack123.adb: New package.
716 * libgnat/s-pack124.ads, libgnat/s-pack124.adb: New package.
717 * libgnat/s-pack125.ads, libgnat/s-pack125.adb: New package.
718 * libgnat/s-pack126.ads, libgnat/s-pack126.adb: New package.
719 * libgnat/s-pack127.ads, libgnat/s-pack127.adb: New package.
720 * libgnat/s-rannum.ads (Random): New function returning 128-bit.
721 * libgnat/s-rannum.adb (Random): Implement it.
722 * libgnat/s-scaval.ads: Add with clause for Interfaces, use subtypes
723 of unsigned types defined in Interfaces.
724 * libgnat/s-scaval.adb: Add use clause for Interfaces.
725 * libgnat/s-scaval__128.ads, libgnat/s-scaval__128.adb: New
727 * libgnat/s-unstyp.ads (Long_Long_Long_Unsigned): New modular type.
728 (Shift_Left, Shift_Right, Shift_Right_Arithmetic, Rotate_Left,
729 Rotate_Right): New intrinsic functions operating on it.
731 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
733 * doc/gnat_rm/implementation_defined_characteristics.rst: Add
734 Long_Long_Long_Integer to the list of predefined integer types.
735 * gnat_rm.texi: Regenerate.
737 2020-10-21 Yannick Moy <moy@adacore.com>
739 * ada_get_targ.adb (Width_From_Size): Add case for 128 bits.
740 Reorder declarations in the same order as get_targ.adb to
743 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
745 * exp_aggr.adb (Expand_N_Aggregate): Refactor repeated calls to
747 (Build_Array_Aggr_Code): Fix whitespace.
749 2020-10-21 Dmitriy Anisimkov <anisimko@adacore.com>
751 * adaint.c (__gnat_file_time): Use regular arithmetic instead of
752 __builtin_*_overflow routines if GCC version 4 or less and
755 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
757 * sem_aggr.adb (Resolve_Array_Aggregate): Use Choice_List, which
758 internally calls either Choice or Discrete_Choices, depending on
761 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
763 * sem_aggr.adb (Resolve_Iterated_Component_Association): Use
764 existing defining identifier for index parameter.
766 2020-10-21 Javier Miranda <miranda@adacore.com>
768 * exp_ch9.adb (Build_Task_Activation_Call): Do not generate a
769 call to activate tasks if we are within the scope of a protected
770 type and pragma Detect_Blocking is active.
772 2020-10-21 Liaiss Merzougue <merzougue@adacore.com>
774 * libgnat/s-carsi8.adb (Compare_Array_S8): Add pragma Assert to
775 avoid warning concerning Left_Len and RighLen value regarding
776 Bytes_Compared_As_Words.
777 * libgnat/s-carun8.adb (Compare_Array_U8): Likewise.
778 * libgnat/s-geveop.adb (Binary_Operation, Unary_Operation): Add
779 pragma Assert concerning divide by 0 warning.
780 * libgnat/s-imgcha.adb (Image_Character): Code update to prevent
781 constant operation warning.
782 (Image_Character): Add pragma Assert concerning the unchecked
784 * libgnat/s-imgdec.adb
785 (Round): Upate loop code to prevent warning concerning
787 (Round): Add pragma assert.
788 (Set): Add pragma Assert for the unchecked string size.
789 (Set_Digits): Add pragma Assert for the input range.
790 (Set_Decimal_Digits): Add pragma Assert.
791 (Set_Blank_And_Sign): Add pragma Assert for the input range.
792 * libgnat/s-arit64.adb (DoubleDivide): Add pragma Assert
794 (Multiply_With_Ovflo_Check): Add pragma Annotate to avoid
795 warning concerning unsigned -> signed conversion.
796 * libgnat/s-imguns.adb (Set_Image_Unsigned): Add pragma Assert
797 to prevent overflow check warning. Add pragma Assert for
798 controlling S'First = 1.
799 * libgnat/s-imgrea.adb (Image_Floating_Point, Set, Set_Digs,
800 Set_Special_Fill, Convert_Integer): Add pragma Annotate to
801 prevent overflow check warning.
802 (Set_Image_Real): Add pragma Annotate to avoid dead code warning
803 on float check. Add pragma Assert to prevent overflow check
805 * libgnat/s-imgwiu.adb (Set_Digits, Set_Image_Width_Unsigned):
806 Add pragma assert to prevent overflow check warning.
807 * libgnat/s-imgllu.adb (Set_Image_Long_Long_Unsigned): Add
808 pragma assert to prevent overflow check warning.
809 * libgnat/s-imgint.adb (Set_Digits): Add Assert for input
810 constraint and to prevent overflow check warning, create
811 Non_Positive subtype, and change the T parameter as Non_Positive
813 (Set_Image_Integer): Add pragma assert to prevent overflow check
815 * libgnat/s-imglli.adb (Set_Digits): Add Assert for input
816 constraint and to prevent overflow check warning, create
817 Non_Positive subtype, and change the T parameter as Non_Positive
819 (Set_Image_Long_Long_Integer): Add pragma assert to prevent
820 overflow check warning.
821 * libgnat/s-fatgen.adb (Decompose, Pred, Succ): Add pragma
822 Annotate to prevent dead code due to invalid float check.
823 * libgnat/s-imenne.adb (Image_Enumeration_8,
824 Image_Enumeration_16, Image_Enumeration_32): Add pragma Assert
825 to prevent overflow check warning. Add Names_Index subtype for
826 restricting Index_table content.
828 2020-10-21 Gary Dismukes <dismukes@adacore.com>
830 * exp_ch6.adb (Insert_Post_Call_Actions): Test for
831 N_Explicit_Dereference as part of the existing test for function
834 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
836 * freeze.adb (Check_Strict_Alignment): Do not set the flag for
837 a bit-packed array type, even if it is a by-reference type.
839 2020-10-21 Dmitriy Anisimkov <anisimko@adacore.com>
841 * adaint.c (__gnat_file_time): New routine.
842 (__gnat_copy_attribs): Copy timestamps in nanoseconds.
843 * libgnat/a-direct.adb (C_Modification_Time): Bind to
845 (Modification_Time): Call to C_Modification_Time.
847 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
849 * sem_aggr.adb (Resolve_Iterated_Component_Association):
850 Expression's copy and now has the same parent as the original
852 (Resolve_Array_Aggregate): Add ??? comment about a still
853 existing minor issue that led to discovery of the above crash.
855 2020-10-21 Javier Miranda <miranda@adacore.com>
857 * sem_ch12.adb (Install_Parents_Of_Generic_Context): Simplify
858 functionality; collect and install parents of generic child
860 (Remove_Parents_Of_Generic_Context): Code cleanup.
861 (Instantiate_Package_Body): Hide parents of generic context from
862 visibility before installing the parent instance; restore their
863 visibility when the instance is analyzed
865 2020-10-21 Doug Rupp <rupp@adacore.com>
867 * libgnarl/s-osinte__lynxos178e.ads: Remove -mthreads switch.
869 2020-10-21 Patrick Bernardi <bernardi@adacore.com>
871 * env.c (__gnat_setenv): call setenv for VxWorks 7 kernel mode.
872 (__gnat_environ): envGet takes an int instead of a NULL pointer.
873 (__gnat_unsetenv): call unsetenv for VxWorks 7 kernel mode.
874 (__gnat_clearenv): use __gnat_unsetenv to clear environment
877 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
879 * sem_ch12.adb (Freeze_Subprogram_Body): Call
880 Package_Freeze_Node to retrieve the freeze node for the
881 enclosing body of the generic.
883 2020-10-21 Justin Squirek <squirek@adacore.com>
885 * exp_ch6.adb (Expand_Call_Helper): Modify calls to
886 Add_Extra_Actual to use Extra_Accessibility instead of
887 Get_Accessibility for the EF parameter.
889 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
891 * exp_ch6.adb (Expand_Actuals): Whitespace cleanup.
892 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Make minimum
893 accessibility a constant object.
895 2020-10-21 Patrick Bernardi <bernardi@adacore.com>
897 * env.c (__gnat_environ): For VxWorks kernel simply return the
898 result of the envGet call. Do this for VxWorks 6 and 7 as they
899 both support the same API.
901 2020-10-21 Ghjuvan Lacambre <lacambre@adacore.com>
903 * exp_ch7.adb (Build_Finalizer): Disable warnings on referenced
906 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
908 * einfo.ads, sem_ch3.adb, sem_util.adb: Fix comments.
910 2020-10-21 Javier Miranda <miranda@adacore.com>
912 * sem_ch3.adb (Build_Derived_Type): Propagate convention of
915 2020-10-21 Claire Dross <dross@adacore.com>
917 * libgnat/a-cofove.adb (Copy): Add explanation in case of
919 (Insert_Space): Raise Capacity_Error if the new length is
920 greater than the capacity.
921 (Reserve_Capacity): Raise Capacity_Error instead of
924 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
926 * sem_ch3.adb (Constrain_Decimal, Constrain_Enumeration,
927 Constrain_Float, Constrain_Integer, Constrain_Ordinary_Fixed):
928 Refine parameter type from Node_Id to Entity_Id.
930 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
932 * sprint.adb (po): Set Dump_Freeze_Null to False; align colons.
935 2020-10-20 Ed Schonberg <schonberg@adacore.com>
937 * sinfo.ads, sinfo.adb: The flag Box_Present can appear in
938 Iterated_Element_Association nodes.
939 * sem_aggr.adb (Resolve_Aggregate): Call
940 Resolve_Container_Aggregate when type of context has
941 corresponding aspect.
942 * sem_type.adb (Covers): In Ada_2020 an aggregate is compatible
943 with a type that carries the corresponding aspect.
944 * exp_ch3.adb (Make_Controlling_Function_Wrappers): Do not
945 create declarations and bodies for inherited primitive functions
946 of null extensions that dispatch on result, when current scope
947 includes an immediately visible non-overloadable homonym of the
949 * libgnat/a-cborse.adb, libgnat/a-cborse.ads,
950 libgnat/a-cbhase.ads, libgnat/a-cbhase.adb,
951 libgnat/a-cborma.adb, libgnat/a-cborma.ads,
952 libgnat/a-cbhama.adb, libgnat/a-cbhama.ads,
953 libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
954 libgnat/a-convec.ads, libgnat/a-ciorse.ads,
955 libgnat/a-cihase.ads, libgnat/a-cihase.adb,
956 libgnat/a-ciorma.ads, libgnat/a-cihama.ads,
957 libgnat/a-cihama.adb, libgnat/a-cidlli.ads,
958 libgnat/a-cidlli.adb, libgnat/a-coinve.adb,
959 libgnat/a-cobove.adb, libgnat/a-cobove.ads,
960 libgnat/a-convec.adb, libgnat/a-coinve.ads,
961 libgnat/a-coorse.ads, libgnat/a-cohase.adb,
962 libgnat/a-cohase.ads, libgnat/a-coorma.ads,
963 libgnat/a-cohama.adb, libgnat/a-cohama.ads,
964 libgnat/a-cdlili.ads: Add primitive function Empty for use in
965 aspect Aggregate, and add corresponding body or expression
968 2020-10-20 Arnaud Charlet <charlet@adacore.com>
970 * aspects.adb (Has_Aspect_Specifications_Flag): Add
971 N_Parameter_Specification.
972 * par-ch13.adb (Aspect_Specifications_Present): Also handle case
973 of an unknown aspect on the last formal parameter (terminated by
974 a Tok_Right_Paren). Minor reformatting.
975 * par-ch6.adb (P_Formal_Part): Scan aspects on formal
977 * par.adb: Fix typos.
978 * sem_ch6.adb (Process_Formals): Add processing of aspects and
979 in particular Unreferenced aspect for now.
980 * sinfo.ads: Allow ASPECT_SPECIFICATIONS on a
981 PARAMETER_SPECIFICATION.
982 * doc/gnat_rm/implementation_defined_aspects.rst
983 (Aspect Unreferenced): Update documentation.
984 * gnat_rm.texi: Regenerate.
986 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
988 * sem_util.ads, sem_util.adb (Get_Accessibility): Refine result
989 type from Node_Id to Entity_Id.
991 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
993 * einfo.adb, exp_attr.adb, sem_ch13.adb, sem_util.adb: Use
994 Is_Formal where possible.
996 2020-10-20 Steve Baird <baird@adacore.com>
998 * sem_util.ads: Declare a new package, Old_Attr_Util, which in
999 turn declares two more packages, Conditional_Evaluation and
1000 Indirect_Temps. Conditional_Evaluation provides a predicate for
1001 deciding whether a given 'Old attribute reference is eligible
1002 for conditional evaluation and, in the case where it is
1003 eligible, a function that constructs the Boolean-valued
1004 condition that is to be evaluated at run time in deciding
1005 whether to evaluate the attribute prefix. Indirect_Temps
1006 provides support for declaring a temporary which is only
1007 initialized conditionally; more specifically, an access type and
1008 a variable of that type are declared (unconditionally) and then
1009 the variable is (conditionally) initialized with an allocator.
1010 The existence of the access type and the pointer variable is
1011 hidden from clients, except that a predicate,
1012 Is_Access_Type_For_Indirect_Temp, is provided for identifying
1013 such access types. This is needed because we want such an access
1014 type to be treated like a "normal" access type (specifically
1015 with respect to finalization of allocated objects). Other parts
1016 of the compiler treat access types differently if
1017 Comes_From_Source is False, or if the secondary stack storage
1018 pool is used; this predicate is used to disable this special
1020 * sem_attr.adb (Uneval_Old_Msg): Improve message text to reflect
1022 (Analyze_Attribute): A previously-illegal 'Old attribute
1023 reference is accepted in Ada2020 if it is eligible for
1024 conditional evaluation.
1025 * sem_res.adb (Valid_Conversion): Do not treat a rewritten 'Old
1026 attribute like other rewrite substitutions. This makes a
1027 difference, for example, in the case where we are generating the
1028 expansion of a membership test of the form "Saooaaat'Old in
1029 Named_Access_Type"; in this case Valid_Conversion needs to
1030 return True (otherwise the expansion will be False - see the
1031 call site in exp_ch4.adb).
1032 * exp_attr.adb (Expand_N_Attribute_Reference): When expanding a
1033 'Old attribute reference, test for the case where the reference
1034 is eligible for conditional evaluation. In that case, use the
1035 new "indirect temporary" mechanism provided by Sem_Util.
1037 (Expand_Attributes_In_Consequence.Expand_Attributes): If
1038 Sem_Util.Indirect_Temp_Needed indicates that there could be
1039 correctness problems associated with the old expansion scheme
1040 for dealing with 'Old attributes in contract cases consequences,
1041 then we use the new "indirect temporary" mechanism provided by
1042 Sem_Util instead. We do not want to do this unconditionally.
1043 * sem_util.adb: Provide a body for the new Old_Attr_Util
1044 package. Further work is needed in several areas for
1046 - The function Is_Repeatedly_Evaluated does not deal with
1047 container aggregates yet.
1048 - The function Is_Known_On_Entry does not deal with interactions
1049 with the Global aspect.
1050 Each area where more work is needed is indicated with a "???"
1051 comment in the code; a more detailed description can be found
1052 there. Some optimization opportunties are similarly indicated
1053 with a "???" comment.
1054 * exp_ch3.adb (Freeze_Type): In deciding whether to generate
1055 expansion for the list controller of an access type, take the
1056 predicate Is_Access_Type_For_Indirect_Temp into account. If the
1057 predicate yields True, then generate the expansion.
1058 * exp_util.adb (Build_Allocate_Deallocate_Proc): We don't
1059 normally finalize allocated objects that are allocated on the
1060 secondary stack. Add an exception to this rule if the predicate
1061 Is_Access_Type_For_Indirect_Temp yields True. As a result of
1062 this exception, we have to deal with the fact that gigi expects
1063 a different parameter profile if we are using the secondary
1064 stack pool; the Pool and Alignment parameters must be omitted in
1067 2020-10-20 Javier Miranda <miranda@adacore.com>
1069 * sem_ch12.adb (Install_Parents_Of_Generic_Context,
1070 Remove_Parents_Of_Generic_Context): New subprograms.
1071 (Instantiate_Package_Body): Adding assertions to ensure that
1072 installed parents are properly removed.
1074 2020-10-20 Claire Dross <dross@adacore.com>
1076 * sem_attr.adb (Analyze_Attribute): Emit a warning on 'Update
1077 when Warn_On_Obsolescent_Feature is set to True.
1079 2020-10-20 Richard Kenner <kenner@adacore.com>
1081 * gnat_cuda.adb (Build_Register_Function_Call): Make procedure
1082 call instead of function, rename to
1083 Build_Register_Procedure_Call.
1084 (Build_CUDA_Init_Proc): Make procedure call instead of function.
1086 2020-10-20 Justin Squirek <squirek@adacore.com>
1088 * exp_ch6.adb (Expand_Branch): Properly anticipate expansion of
1089 conditional expressions producing object declarations in
1090 addition to assignment statements, and rename formal.
1092 2020-10-20 Yannick Moy <moy@adacore.com>
1094 * errout.adb (Write_Source_Code_Line): Adopt display closer to
1096 (Output_Messages): Deal specially with info messages.
1097 * erroutc.adb (Prescan_Message): Fix bug leading to check
1098 messages being considered as error messages in pretty output
1101 2020-10-20 Justin Squirek <squirek@adacore.com>
1103 * exp_ch6.adb (Expand_Call_Helper): Properly handle the case
1104 where the condition of a conditional expression has been
1105 optimized out when calculating the value of an extra
1106 accessibility parameter.
1108 2020-10-20 Bob Duff <duff@adacore.com>
1110 * doc/gnat_ugn/gnat_utility_programs.rst: Change "_" to "-".
1112 2020-10-20 Arnaud Charlet <charlet@adacore.com>
1114 * sem_aggr.adb (Resolve_Aggregate): Warn on not fully
1115 initialized box aggregate.
1116 * sem_aggr.ads: Fix typo.
1117 * sem_res.adb (Resolve_Actuals): Fix typo in error message
1118 format marking it incorrectly as a continuation message.
1119 * sem_elab.adb (Check_Internal_Call_Continue): Similarly, add
1120 missing primary message in case of a call to an actual generic
1122 * sem_warn.adb (Check_References): Do not warn on read but never
1123 assigned variables if the type is partially initialized.
1124 * libgnat/a-except.ads, libgnat/a-ststun.ads,
1125 libgnat/g-sechas.ads, libgnat/a-cbdlli.ads,
1126 libgnat/a-cfdlli.ads, libgnat/a-cobove.ads,
1127 libgnat/a-cohata.ads, libgnat/a-crbltr.ads,
1128 libgnat/a-cbmutr.ads, libgnat/a-crdlli.ads,
1129 libgnat/a-cbsyqu.ads: Address new warning.
1130 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1131 Update doc on -gnatwv.
1132 * gnat_ugn.texi: Regenerate.
1134 2020-10-20 Gary Dismukes <dismukes@adacore.com>
1136 * sem_ch6.adb (Analyze_Expression_Function): Mark static
1137 expression functions as inlined.
1139 2020-10-20 Arnaud Charlet <charlet@adacore.com>
1141 * contracts.adb (Is_Prologue_Renaming): This function was
1142 missing support for E_Constant which can also be generated in
1145 2020-10-20 Arnaud Charlet <charlet@adacore.com>
1147 * bindgen.adb (Gen_Bind_Env_String): Generate Ada 2012 compatible
1148 strings. Code cleanup.
1150 2020-10-20 Yannick Moy <moy@adacore.com>
1152 * sem_util.adb, sem_util.ads: Comment fix.
1154 2020-10-20 Arnaud Charlet <charlet@adacore.com>
1156 * sem_ch8.adb (Check_Constrained_Object): Suppress discriminant
1157 checks when the type has default discriminants and comes from
1158 expansion of a "for of" loop.
1160 2020-10-20 Bob Duff <duff@adacore.com>
1162 * atree.ads: Make Default_Node a constant. Remove the
1163 modification of Comes_From_Source, and use a separate flag for
1164 that. Change Sloc to 0; it always overwritten, and never left
1165 as the No_Location value.
1166 (Print_Statistics): Move to spec so we can call it from
1168 (Num_Nodes): Rename to clarify that this is approximate.
1169 Correct comment: nodes and entities are never deleted, the count
1170 is never decremented, and this is not used by Xref.
1171 (Initialize): Correct comment: Error_List is not created here.
1172 Other minor naming and comment changes.
1173 * atree.adb (Extend_Node, New_Copy, New_Entity, New_Node):
1174 Streamline these. Simplify and improve efficiency. Move code
1175 from Allocate_Initialize_Node to these, where it can be executed
1176 unconditionally. Take advantage of automatic zeroing of the
1178 (Allocate_Initialize_Node): Remove this. It was an efficiency
1179 bottleneck, and somewhat complicated, because it was called from
1180 4 places, and had all sorts of conditionals to check where it
1181 was called from. Better to move most of that code to the call
1182 sites, where it can be executed (or not) unconditionally.
1183 (Allocate_New_Node): New procedure to partly replace
1184 Allocate_Initialize_Node (called from just 2 of those 4 places).
1185 (Comes_From_Source_Default): New flag written/read by
1186 Set_Comes_From_Source_Default/Get_Comes_From_Source_Default.
1187 This allows us to make Default_Node into a constant with
1189 (Set_Paren_Count_Of_Copy): New procedure to avoid duplicated
1191 (Report): New procedure to encapsulate the call to the reporting
1193 (Atree_Private_Part): We now need a body for this package, to
1194 contain package body Nodes.
1195 (Approx_Num_Nodes_And_Entities): Was Num_Nodes. For efficiency,
1196 compute the answer from Nodes.Last. That way we don't need to
1197 increment a counter on every node creation. Other minor naming
1198 and comment changes.
1199 * gnat1drv.adb: Call Atree.Print_Statistics if -gnatd.A switch
1200 was given. Add comment documenting the new order dependency (we
1201 must process the command line before calling Atree.Initialize).
1202 * debug.adb: Document -gnatd.A.
1203 * einfo.adb, sinfo.adb: Remove useless Style_Checks pragmas.
1204 * nlists.ads (Allocate_List_Tables): Inline makes node creation
1206 * nlists.adb (Initialize): Remove local constant E, which didn't
1207 seem to add clarity.
1208 * treepr.adb (Print_Init): Use renamed
1209 Approx_Num_Nodes_And_Entities function.
1210 * types.ads: Change the Low and High bounds as described above.
1211 * types.h: Change Low and High bounds to match types.ads.
1212 * sem_ch8.adb, namet.adb, namet.ads: Move the computation of
1213 Last_Name_Id from sem_ch8 to namet, and correct it to not assume
1214 Name_Ids are positive.
1215 * ali.adb, ali-util.adb, bindo-writers.adb, exp_dist.adb,
1216 fmap.adb, fname-uf.adb, osint.adb: Fix various hash functions to
1217 avoid assuming the various ranges are positive. Note that "mod"
1218 returns a nonnegative result when the second operand is
1219 positive. "rem" can return negative values in that case (in
1220 particular, if the first operand is negative, which it now is).
1221 * switch-c.adb: Allow switch -gnaten to control the value of
1223 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1224 Remove traling whitespaces.
1225 * opt.ads (Nodes_Size_In_Meg): New Variable.
1227 2020-10-20 Eric Botcazou <ebotcazou@adacore.com>
1229 * exp_util.adb (Remove_Side_Effects): Always generate a renaming
1230 that is handled by the front-end in the case of an indexed or a
1231 selected component whose prefix has a nonstandard representation.
1233 2020-10-20 Pat Rogers <rogers@adacore.com>
1235 * doc/gnat_rm/the_gnat_library.rst: Add Ada.Task_Initialization.
1236 * gnat_rm.texi: Regenerate.
1238 2020-10-20 Yannick Moy <moy@adacore.com>
1240 * errout.adb: (Error_Msg-Internal): Pass the location for a line
1241 insertion if any in the message.
1242 (Output_Messages: Add display of source code lines if -gnatdF is
1244 (Write_Source_Code_Line): Code clean up.
1245 * erroutc.adb (Prescan_Message): Apply prescan for continuation
1246 lines when -gnatdF is set, and record presence of line
1248 * erroutc.ads (Has_Insertion_Line): New global for prescan.
1249 (Error_Msg_Object): Add field to record line insertion if
1251 * errutil.adb (Error_Msg): Pass no location for Insertion_Sloc.
1253 2020-10-20 Arnaud Charlet <charlet@adacore.com>
1255 * exp_ch5.adb (Expand_N_Case_Statement): Do not generate
1256 validity check when possible.
1258 2020-10-20 Ed Schonberg <schonberg@adacore.com>
1260 * exp_aggr.adb (Expand_Iterated_Component): Reorganize code to
1261 ensure that Loop_Id is properly initialized on all paths, and
1262 remove code duplication.
1264 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
1266 * sem_ch3.adb (Analyze_Subtype_Declaration): Propagate predicate
1267 function to full view of the created type as well, if it was
1270 2020-10-20 Arnaud Charlet <charlet@adacore.com>
1272 * exp_attr.adb (Expand_N_Attribute_Reference): Merge handling of
1273 Simple_Storage_Pool and Storage_Pool.
1275 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
1277 * aspects.ads: Introduce Subprogram_Variant aspect with the
1278 following properties: GNAT-specific, with mandatory expression,
1279 not a representation aspect, never delayed.
1280 * contracts.adb (Expand_Subprogram_Contract): Mention new aspect
1282 (Add_Contract_Item): Support addition of pragma
1283 Subprogram_Variant to N_Contract node.
1284 (Analyze_Entry_Or_Subprogram_Contract): Mention new aspect in
1285 the comment; add pragma Subprogram_Variant to N_Contract node.
1286 (Build_Postconditions_Procedure): Adapt call to
1287 Insert_Before_First_Source_Declaration, which is now reused in
1288 expansion of new aspect.
1289 (Process_Contract_Cases_For): Also process Subprogram_Variant,
1290 which is stored in N_Contract node together with Contract_Cases.
1291 * contracts.ads (Analyze_Entry_Or_Subprogram_Contract): Mention
1292 new aspect in the comment.
1293 (Analyze_Entry_Or_Subprogram_Body_Contract): Likewise.
1294 * einfo.adb (Get_Pragma): Support retrieval of new pragma.
1295 * einfo.ads (Get_Pragma): Likewise.
1296 * exp_ch6.adb (Check_Subprogram_Variant): New routine for
1297 emitting call to check Subprogram_Variant expressions at run
1299 (Expand_Call_Helper): Check Subprogram_Variant expressions at
1301 * exp_prag.adb (Make_Op): Moved from expansion of pragma
1302 Loop_Variant to Exp_Util, so it is now reused for expansion of
1303 pragma Subprogram_Variant.
1304 (Process_Variant): Adapt call to Make_Op after moving it to
1306 (Expand_Pragma_Subprogram_Variant): New routine.
1307 * exp_prag.ads (Expand_Pragma_Subprogram_Variant): Likewise.
1308 * exp_util.adb (Make_Variant_Comparison): Moved from Exp_Prag
1310 * exp_util.ads (Make_Variant_Comparison): Likewise.
1311 * inline.adb (Remove_Aspects_And_Pragmas): Handle aspect/pragma
1312 Subprogram_Variant just like similar contracts.
1313 * par-prag.adb (Prag): Likewise.
1314 * sem.adb (Insert_Before_First_Source_Declaration): Moved from
1315 Contracts (see above).
1316 * sem.ads (Insert_Before_First_Source_Declaration): Likewise.
1317 * sem_ch12.adb: Mention new aspect in the comment about
1318 "Implementation of Generic Contracts", just like similar aspects
1319 are mentioned there.
1320 * sem_ch13.adb (Insert_Pragma): Mention new aspect in the
1321 comment, because this routine is now used for Subprogram_Variant
1322 just like for other similar aspects.
1323 (Analyze_Aspect_Specifications): Mention new aspect in comments;
1324 it is handled just like aspect Contract_Cases.
1325 (Check_Aspect_At_Freeze_Point): Do not expect aspect
1326 Subprogram_Variant just like we don't expect aspect
1328 * sem_prag.adb (Ensure_Aggregate_Form): Now also used for pragma
1329 Subprogram_Variant, so update comment.
1330 (Analyze_Pragma): Add initial checks for pragma
1332 (Analyze_Subprogram_Variant_In_Decl_Part): New routine with
1333 secondary checks on the new pragma.
1334 (Sig_Flags): Handle references within pragma Subprogram_Variant
1335 expression just like references in similar pragma
1337 (Is_Valid_Assertion_Kind): Handle Subprogram_Variant just like
1338 other similar contracts.
1339 * sem_prag.ads (Analyze_Subprogram_Variant_In_Decl_Part): New
1341 * sem_res.adb (Same_Or_Aliased_Subprograms): Moved to Sem_Util,
1342 so it can be reused for detection of recursive calls where
1343 Subprogram_Variant needs to be verified.
1344 * sem_util.adb (Is_Subprogram_Contract_Annotation): Handle new
1345 Subprogram_Variant annotation just like other similar
1347 (Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above).
1348 * sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new
1349 aspect in the comment.
1350 (Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above).
1351 * sinfo.ads (N_Contract): Document handling of
1353 * snames.ads-tmpl: Add name for the internally generated
1354 procedure with checks for Subprogram_Variant expression, name
1355 for the new aspect and new pragma corresponding to aspect
1358 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
1360 * exp_util.ads: Reorder declaration.
1362 2020-10-19 Ed Schonberg <schonberg@adacore.com>
1364 * par-ch4.adb: (P_Aggregate_Or_Paren_Expr): Recognize
1365 Iterated_Element_Component.
1366 (P_Iterated_Component_Association): Rebuild node as an Iterated_
1367 Element_Association when Key_Expression is present, and attach
1368 either the Loop_Parameter_Specification or the
1369 Iterator_Specification to the new node.
1370 * sem_aggr.adb: (Resolve_Container_Aggregate):
1371 Resolve_Iterated_Association handles bota Iterated_Component_
1372 and Iterated_Element_Associations, in which case it analyzes and
1373 resoles the orresponding Key_Expression.
1374 * exp_aggr.adb (Expand_Iterated_Component): If a Key_Expression
1375 is present, use it as the required parameter in the call to the
1376 insertion routine for the destination container aggregate. Call
1377 this routine for both kinds of Iterated_Associations.
1379 2020-10-19 Arnaud Charlet <charlet@adacore.com>
1381 * exp_ch4.adb (Expand_Concatenate): Enable needed range checks.
1383 2020-10-19 Bob Duff <duff@adacore.com>
1385 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
1386 Set the Warnings_Off flag on the pointer object used in the
1387 expansion of iterators and similar.
1389 2020-10-19 Eric Botcazou <ebotcazou@adacore.com>
1391 * Makefile.rtl (PowerPC/Linux): Use s-taspri__posix.ads instead
1392 of s-taspri__posix-noaltstack.ads for s-taspri.ads.
1394 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1396 * sem_ch13.adb (Add_Call): Remove excessive condition and
1397 unnecessary call to Set_Has_Predicates.
1399 2020-10-19 Yannick Moy <moy@adacore.com>
1401 * debug.adb: Use debug switch -gnatdF for this alternative
1402 display of messages.
1403 * errout.adb (Output_Messages): Alternative display when -gnatdF
1405 * erroutc.adb (Output_Msg_Text): Likewise.
1407 2020-10-19 Arnaud Charlet <charlet@adacore.com>
1409 * sem_ch6.adb (Check_Untagged_Equality): Check for AI12-0352.
1411 2020-10-19 Ed Schonberg <schonberg@adacore.com>
1413 * exp_ch6.adb (Add_View_Conversion_Invariants): Do not insert
1414 generated invariant checks when the call is a function call.
1415 These tests are properly inserted in the code in procedure
1416 Insert_Post_Call_Actions, which takes care of finding the proper
1417 insertion point for the checks.
1418 (Insert_Post_Call_Actions): Add question marks to indicate
1419 possible gap in handling function calls that appear as aggregate
1422 2020-10-19 Arnaud Charlet <charlet@adacore.com>
1424 * contracts.adb (Process_Preconditions_For): Do not exclude
1426 * sem_ch4.adb (Analyze_Quantified_Expression): Disable spurious
1427 warning on internally generated variables.
1429 2020-10-19 Ghjuvan Lacambre <lacambre@adacore.com>
1431 * debug.adb: Document -gnatd_c flag as being used for CUDA.
1432 * gnat_cuda.ads: New file.
1433 * gnat_cuda.adb: New file.
1434 * rtsfind.ads: Add Interfaces_C_Strings package and
1435 RE_Fatbin_Wrapper, RE_Register_Fat_Binary,
1436 RE_Register_Fat_Binary_End, RE_Register_Function, RE_Chars_Ptr,
1437 RE_New_Char_Array entities.
1438 * rtsfind.adb: Create new Interfaces_C_Descendant subtype,
1440 * sem_ch7.adb (Analyze_Package_Body_Helper): Call CUDA init
1442 * sem_prag.adb (Analyze_Pragma): Call Add_Cuda_Kernel procedure.
1443 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add gnat_cuda.o.
1445 2020-10-19 Bob Duff <duff@adacore.com>
1447 * ghost.adb (Whole_Object_Ref): New function to compute the name
1448 of the whole object.
1449 (Mark_And_Set_Ghost_Assignment): Rewrite to use
1450 Whole_Object_Ref. We need to partly analyze the left-hand side
1451 in order to distinguish expanded names and record components.
1452 * lib-xref.ads, lib-xref.adb (Deferred_References): Move table
1453 to body, and add Defer_Reference to update the table, avoiding
1455 (Generate_Reference): Avoid duplicates.
1456 * sem_ch8.ads, sem_ch8.adb (Find_Direct_Name): Remove _OK
1457 parameters, which are no longer needed. Ignore errors in
1459 * sem_util.ads, sem_util.adb (Preanalyze_Without_Errors): Make
1460 this public, so we can call it from Ghost.
1461 * errout.ads, scng.adb, sem_prag.adb: Minor.
1463 2020-10-19 Ghjuvan Lacambre <lacambre@adacore.com>
1465 * exp_attr.adb (Expand_N_Attribute_Reference): Check if type
1466 depends on discriminant.
1468 2020-10-19 Bob Duff <duff@adacore.com>
1470 * libgnat/a-coinve.adb, libgnat/a-cidlli.adb (Put_Image): Call
1473 2020-10-19 Arnaud Charlet <charlet@adacore.com>
1475 * sem_aggr.adb (Resolve_Record_Aggregate): Properly apply
1476 subtype constraints when using a Default_Value.
1477 * freeze.adb: Fix typo.
1479 2020-10-19 Yannick Moy <moy@adacore.com>
1481 * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix bug
1482 where a call to Error_Msg_N leads to crash due to
1483 Error_Msg_Name_1 being removed by the call, while a subsequent
1484 call to Error_Msg_N tries to use it. The variable
1485 Error_Msg_Name_1 should be restored prior to the next call. Also
1486 add checking for the new rules.
1488 2020-10-19 Arnaud Charlet <charlet@adacore.com>
1490 * checks.adb (Apply_Type_Conversion_Checks): Minor code clean
1492 * exp_ch4.adb (Discrete_Range_Check): Optimize range checks.
1494 (Expand_N_Type_Conversion): Generate range check when rewriting
1495 a type conversion if needed. Add assertion.
1496 * exp_ch6.adb (Expand_Simple_Function_Return): Minor code clean
1498 * sem_res.adb (Resolve_Type_Conversion): Apply range check when
1499 needed. Update comments.
1501 2020-10-19 Yannick Moy <moy@adacore.com>
1503 * libgnat/a-textio.ads: Update top-level comment.
1505 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1507 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Fix typo.
1509 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1511 * exp_ch6.adb (Expand_Actuals): Simplify condition for by-copy
1514 2020-10-19 Yannick Moy <moy@adacore.com>
1516 * errout.ads: Add comment regarding lack of preservation of
1517 Errout state across successive calls to the API.
1519 2020-10-19 Bob Duff <duff@adacore.com>
1521 * exp_put_image.adb (Build_Elementary_Put_Image_Call): Use the
1522 base type to recognize various cases of access types.
1523 * libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb,
1524 libgnat/a-cbhama.ads, libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
1525 libgnat/a-cbmutr.adb, libgnat/a-cbmutr.ads, libgnat/a-cborma.adb,
1526 libgnat/a-cborma.ads, libgnat/a-cborse.adb, libgnat/a-cborse.ads,
1527 libgnat/a-cdlili.adb, libgnat/a-cdlili.ads, libgnat/a-cidlli.adb,
1528 libgnat/a-cidlli.ads, libgnat/a-cihama.adb, libgnat/a-cihama.ads,
1529 libgnat/a-cihase.adb, libgnat/a-cihase.ads, libgnat/a-cimutr.adb,
1530 libgnat/a-cimutr.ads, libgnat/a-ciorma.adb, libgnat/a-ciorma.ads,
1531 libgnat/a-ciormu.adb, libgnat/a-ciormu.ads, libgnat/a-ciorse.adb,
1532 libgnat/a-ciorse.ads, libgnat/a-coboho.adb, libgnat/a-coboho.ads,
1533 libgnat/a-cobove.adb, libgnat/a-cobove.ads, libgnat/a-cohama.adb,
1534 libgnat/a-cohama.ads, libgnat/a-cohase.adb, libgnat/a-cohase.ads,
1535 libgnat/a-coinho.adb, libgnat/a-coinho.ads,
1536 libgnat/a-coinho__shared.adb, libgnat/a-coinho__shared.ads,
1537 libgnat/a-coinve.adb, libgnat/a-coinve.ads, libgnat/a-comutr.adb,
1538 libgnat/a-comutr.ads, libgnat/a-coorma.adb, libgnat/a-coorma.ads,
1539 libgnat/a-coormu.adb, libgnat/a-coormu.ads, libgnat/a-coorse.adb,
1540 libgnat/a-coorse.ads, libgnat/a-strunb.adb, libgnat/a-strunb.ads,
1541 libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads:
1542 Implement Put_Image attibute.
1543 * libgnat/a-stteou.ads, libgnat/s-putima.ads,
1544 libgnat/a-stouut.ads, libgnat/a-stoubu.adb: Make
1545 Ada.Strings.Text_Output, Ada.Strings.Text_Output.Utils, and
1546 System.Put_Images Pure, so they can be with'ed by Pure units
1547 that should have Put_Image defined.
1548 * libgnat/a-stouut.adb: Add missing column adjustments, and
1549 remove a redundant one.
1550 * libgnat/s-putima.adb (Put_Arrow): New routine to print an
1551 arrow. Avoids adding a with clause to some containers.
1553 2020-10-19 Bob Duff <duff@adacore.com>
1555 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Require matching
1557 * par.adb, par-tchk.adb (T_Right_Bracket): New procedure to give
1558 an error on missing ].
1560 2020-10-19 Javier Miranda <miranda@adacore.com>
1562 * sem_ch8.adb (Find_Direct_Name): Do not trust in the decoration
1563 of the Entity attribute in constants associated with
1564 discriminals of protected types.
1566 2020-10-19 Gary Dismukes <dismukes@adacore.com>
1568 * sem_disp.adb (Check_Dispatching_Context): When the enclosing
1569 subprogram is abstract, bypass early return if the call is
1570 tag-indeterminate, to continue with the later error checking.
1572 2020-10-19 Javier Miranda <miranda@adacore.com>
1574 * sem_ch7.adb (Uninstall_Declarations): Uninstall the
1575 declaration of a subtype declaration defined in the private part
1578 2020-10-19 Arnaud Charlet <charlet@adacore.com>
1580 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify code since
1581 we are always under -gnatX if we encounter a Tok_Left_Bracket.
1582 * scng.adb (Scan): [] is an aggregate under -gnatX and a wide
1583 character otherwise.
1585 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1587 * exp_ch6.adb (Expand_Call_Helper): Cleanup.
1589 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1591 * exp_ch6.adb (Is_Direct_Deep_Call): Refine type from Node_Id to
1594 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1596 * exp_ch6.adb (May_Fold): Detect all operators, i.e. both binary
1599 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1601 * inline.adb (Expand_Inlined_Call): Simplify repeated calls to
1604 2020-10-18 Alexandre Oliva <oliva@adacore.com>
1606 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Compile Ada.Numerics
1607 child units Aux_Generic_Float, Aux_Long_Long_Float, Aux_Long_Float,
1608 Aux_Float, Aux_Short_Float, Aux_Compat, and Aux_Linker_Options.
1609 (X86_TARGET_PAIRS): Drop dummy body for Aux. Use x86 version
1611 (X86_64_TARGET_PAIRS): Likewise.
1612 (LIBGNAT_TARGET_PAIRS): On VxWorks, select the nolibm
1613 variants. Drop the darwin version of Aux. Drop the redundant
1614 libc-x86 numaux variants on x86* kfreebsd variants.
1615 * libgnat/a-nagefl.ads: New Aux_Generic_Float.
1616 * libgnat/a-naliop.ads: New Aux_Linker_Options.
1617 * libgnat/a-naliop__nolibm.ads: New.
1618 * libgnat/a-nallfl.ads: New Aux_Long_Long_Float.
1619 * libgnat/a-nalofl.ads: New Aux_Long_Float.
1620 * libgnat/a-nuaufl.ads: New Aux_Float.
1621 * libgnat/a-nashfl.ads: New Aux_Short_Float.
1622 * libgnat/a-ngcefu.adb (Exp): Factor out the Im (X) passed to
1623 Sin and Cos in the Complex variant too.
1624 * libgnat/a-ngcoty.adb: Switch to Aux_Generic_Float. Drop
1625 redundant conversions.
1626 * libgnat/a-ngelfu.adb: Likewise.
1627 * libgnat/a-nuauco.ads: New Aux_Compat.
1628 * libgnat/a-nuauco__x86.ads: New.
1629 * libgnat/a-numaux.ads: Replace with Compat wrapper.
1630 * libgnat/a-numaux__darwin.adb: Remove.
1631 * libgnat/a-numaux__darwin.ads: Remove.
1632 * libgnat/a-numaux__dummy.adb: Remove.
1633 * libgnat/a-numaux__libc-x86.ads: Remove.
1634 * libgnat/a-numaux__vxworks.ads: Remove.
1636 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
1638 * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch6.adb,
1639 freeze.adb, sem_aggr.adb, sem_attr.adb, sem_ch13.adb,
1640 sem_ch13.ads, sem_ch6.adb, sem_eval.adb, sem_util.adb: Fix style
1643 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1645 * sem_cat.adb (Is_Primary): Handle N_Range properly.
1647 2020-10-16 Ghjuvan Lacambre <lacambre@adacore.com>
1649 * elists.ads (New_Elmt_List): New functions.
1650 * elists.adb (New_Elmt_List): New functions.
1651 * exp_prag.adb: Add dependency on Elists.
1652 (Expand_Pragma_CUDA_Execute): New function.
1653 (Expand_N_Pragma): Add call to Expand_Pragma_CUDA_Execute.
1654 * rtsfind.ads: Add CUDA.Internal, CUDA.Runtime, System.C
1655 packages and RE_Push_Call_Configuration,
1656 RE_Pop_Call_Configuration, RE_Launch_Kernel, RO_IC_Unsigned,
1657 RO_IC_Unsigned_Long_Long entities.
1658 * rtsfind.adb: Extend Interfaces_Descendant to include
1661 2020-10-16 Bob Duff <duff@adacore.com>
1663 * par-ch4.adb (P_Name): Allow Tok_Left_Bracket in two places to
1664 call P_Qualified_Expression. We don't need to modify other
1665 places that call P_Qualified_Expression, because a
1666 qualified_expression is a name in Ada 2012 and higher, so P_Name
1667 is the right place. The parser already parses aggregates with
1668 brackets; we just need to allow that in qualified expressions.
1670 2020-10-16 Javier Miranda <miranda@adacore.com>
1672 * sem_ch12.adb (Check_Generic_Child_Unit): When the child unit
1673 is a renaming of a generic child unit then traverse the scope
1674 containing the renaming declaration to locate the instance of
1675 its parent. Otherwise the parent is not installed and the
1676 frontend cannot process the instantiation.
1678 2020-10-16 Bob Duff <duff@adacore.com>
1680 * libgnat/a-numeri.ads: Remove the greek letter.
1682 2020-10-16 Ed Schonberg <schonberg@adacore.com>
1684 * exp_imgv.adb (Expand_Image_Attribute): Refine previous patch
1685 to use root type (and not base type) on enumeration types.
1687 2020-10-16 Ed Schonberg <schonberg@adacore.com>
1689 * exp_imgv.adb (Expand_Image_Attribute): Use the base type
1690 instead of the root type when type of object is private. Remove
1691 Ada_2020 guard, because it has been checked during prior
1692 analysis. Use Underlying_Type in all cases, as it is a no-op on
1693 types that are not private.
1695 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1697 * aspects.ads, snames.ads-tmpl: Add support for
1698 Exclusive_Functions aspect.
1699 * sem_ch13.adb (Analyze_Aspect_Specifications): Ditto.
1700 * exp_ch9.adb (Build_Protected_Subprogram_Body): Take aspect
1701 Exclusive_Functions into account.
1703 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1705 * gcc-interface/Make-lang.in: Update dependencies on system.ads,
1706 add gnatbind switch -t to avoid timestamp inconsistencies during
1708 * libgnat/system.ads: Move...
1709 * gcc-interface/system.ads: ... here.
1711 2020-10-16 Gary Dismukes <dismukes@adacore.com>
1713 * sem_eval.adb (Subtypes_Statically_Match): Retrieve
1714 discriminant constraints from the two types via new function
1715 Original_Discriminant_Constraint rather than
1716 Discriminant_Constraint.
1717 (Original_Discriminant_Constraint): New function to locate the
1718 nearest explicit discriminant constraint associated with a type
1719 that may possibly have inherited a constraint from an ancestor
1722 2020-10-16 Bob Duff <duff@adacore.com>
1724 * exp_ch6.adb (Expand_Simple_Function_Return): Remove obsolete
1727 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1730 * libgnat/a-suenco.adb (Convert): Fix handling of third UTF-8
1733 2020-10-16 Steve Baird <baird@adacore.com>
1735 * exp_util.adb (Is_Related_To_Func_Return): Cope with the case
1736 where the FE introduces a type conversion.
1738 2020-10-16 Chris Martin <cmartin@adacore.com>
1740 * sem_util.ads, sem_util.adb (Is_Access_Variable): New function.
1741 (Is_Synchronized_Object): Call new function when determining if
1742 a constant can be regarded as synchronized.
1744 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1746 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
1747 Call Set_BIP_Initialization_Call systematically.
1748 * exp_ch7.adb (Process_Transient_In_Scope): Take
1749 BIP_Initialization_Call into account to decide where to insert
1752 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
1754 * sem_util.adb (Is_View_Conversion): Detect qualified types.
1755 * sem_util.ads (Is_Actual_In_Out_Parameter): Fix style in
1758 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1760 * scil_ll.adb, sem_scil.adb: Update assertions.
1762 2020-10-16 Ed Schonberg <schonberg@adacore.com>
1764 * sem_attr.adb (Min_Max): Handle the case where attribute
1765 name (qualified by required type) appears as the reducer of a
1766 'Reduce attribute reference.
1767 (Resolve_Attribute) <Reduce>: Handle properly the presence of a
1768 procedure or an attribute reference Min/Max as a reducer.
1769 * exp_attr.adb (Expand_Attribute_Reference) <Reduce>: New
1770 subprogram Build_Stat, to construct the combining statement
1771 which appears in the generated loop for Reduce, and which is
1772 either a function call when the reducer is a function or an
1773 attribute, or a procedure call when reducer is an appropriate
1774 procedure. BuilD_Stat is used both when the prefix of 'Reduce
1775 is a value sequence and when it is an object
1777 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1779 * exp_ch4.adb (Expand_Concatenate): Allocate result of string
1780 concatenation on secondary stack when relevant.
1782 2020-10-16 Ed Schonberg <schonberg@adacore.com>
1784 * sem_res.adb (Resolve_Declare_Expression): Retrieve the created
1785 block entity that is the scope of the local declarations, from
1786 either a local object declaration or an object renaming
1787 declaration. The block entity does not have an explicit
1788 declaration, but appears as the scope of all locally declared
1791 2020-10-16 Eric Botcazou <ebotcazou@adacore.com>
1793 * libgnat/system-aix.ads: Likewise.
1794 * libgnat/system-darwin-arm.ads: Likewise.
1795 * libgnat/system-darwin-ppc.ads: Likewise.
1796 * libgnat/system-darwin-x86.ads: Likewise.
1797 * libgnat/system-djgpp.ads: Likewise.
1798 * libgnat/system-dragonfly-x86_64.ads: Likewise.
1799 * libgnat/system-freebsd.ads: Likewise.
1800 * libgnat/system-hpux-ia64.ads: Likewise.
1801 * libgnat/system-hpux.ads: Likewise.
1802 * libgnat/system-linux-alpha.ads: Likewise.
1803 * libgnat/system-linux-arm.ads: Likewise.
1804 * libgnat/system-linux-hppa.ads: Likewise.
1805 * libgnat/system-linux-ia64.ads: Likewise.
1806 * libgnat/system-linux-m68k.ads: Likewise.
1807 * libgnat/system-linux-mips.ads: Likewise.
1808 * libgnat/system-linux-ppc.ads: Likewise.
1809 * libgnat/system-linux-riscv.ads: Likewise.
1810 * libgnat/system-linux-s390.ads: Likewise.
1811 * libgnat/system-linux-sh4.ads: Likewise.
1812 * libgnat/system-linux-sparc.ads: Likewise.
1813 * libgnat/system-linux-x86.ads: Likewise.
1814 * libgnat/system-lynxos178-ppc.ads: Likewise.
1815 * libgnat/system-lynxos178-x86.ads: Likewise.
1816 * libgnat/system-mingw.ads: Likewise.
1817 * libgnat/system-qnx-aarch64.ads: Likewise.
1818 * libgnat/system-rtems.ads: Likewise.
1819 * libgnat/system-solaris-sparc.ads: Likewise.
1820 * libgnat/system-solaris-x86.ads: Likewise.
1821 * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
1822 * libgnat/system-vxworks-arm-rtp.ads: Likewise.
1823 * libgnat/system-vxworks-arm.ads: Likewise.
1824 * libgnat/system-vxworks-e500-kernel.ads: Likewise.
1825 * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
1826 * libgnat/system-vxworks-e500-rtp.ads: Likewise.
1827 * libgnat/system-vxworks-e500-vthread.ads: Likewise.
1828 * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
1829 * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
1830 * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
1831 * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
1832 * libgnat/system-vxworks-ppc-vthread.ads: Likewise.
1833 * libgnat/system-vxworks-ppc.ads: Likewise.
1834 * libgnat/system-vxworks-x86-kernel.ads: Likewise.
1835 * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
1836 * libgnat/system-vxworks-x86-rtp.ads: Likewise.
1837 * libgnat/system-vxworks-x86-vthread.ads: Likewise.
1838 * libgnat/system-vxworks-x86.ads: Likewise.
1839 * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
1840 * libgnat/system-vxworks7-aarch64.ads: Likewise.
1841 * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
1842 * libgnat/system-vxworks7-arm.ads: Likewise.
1843 * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
1844 * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
1845 * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
1846 * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
1847 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
1848 * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
1849 * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
1850 * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
1851 * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
1852 * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
1853 * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
1854 * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
1855 * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
1857 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1859 * Makefile.rtl, gnat1drv.adb, expander.adb
1860 doc/gnat_rm/implementation_defined_pragmas.rst,
1861 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
1862 doc/gnat_ugn/the_gnat_compilation_model.rst, exp_ch5.ads,
1863 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
1864 exp_util.ads, libgnarl/s-osinte__aix.adb,
1865 libgnarl/s-osinte__android.adb, libgnarl/s-osinte__darwin.adb,
1866 libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__hpux-dce.adb,
1867 libgnarl/s-osinte__lynxos178.adb, libgnarl/s-osinte__posix.adb,
1868 libgnarl/s-osinte__qnx.adb, libgnarl/s-osinte__rtems.adb,
1869 libgnarl/s-osinte__solaris.adb, libgnarl/s-osinte__vxworks.adb,
1870 libgnarl/s-osinte__x32.adb, libgnarl/s-solita.adb,
1871 libgnarl/s-taasde.adb, libgnarl/s-taprob.adb,
1872 libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb,
1873 libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
1874 libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
1875 libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
1876 libgnarl/s-tarest.adb, libgnarl/s-tasini.adb,
1877 libgnarl/s-taskin.adb, libgnarl/s-taspri__dummy.ads,
1878 libgnarl/s-taspri__hpux-dce.ads, libgnarl/s-taspri__lynxos.ads,
1879 libgnarl/s-taspri__mingw.ads,
1880 libgnarl/s-taspri__posix-noaltstack.ads,
1881 libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads,
1882 libgnarl/s-taspri__vxworks.ads, libgnarl/s-tassta.adb,
1883 libgnarl/s-tasuti.adb, libgnarl/s-tposen.adb,
1884 libgnat/a-except.adb, libgnat/a-except.ads,
1885 libgnat/s-dwalin.adb, libgnat/s-dwalin.ads,
1886 libgnat/s-mastop.ads, libgnat/s-soflin.adb,
1887 libgnat/s-stalib.adb, libgnat/s-stalib.ads,
1888 libgnat/s-stchop.adb, libgnat/s-stchop.ads,
1889 libgnat/s-stchop__limit.ads, libgnat/s-traceb.ads,
1890 libgnat/s-traent.adb, libgnat/s-traent.ads,
1891 libgnat/s-trasym.adb, libgnat/s-trasym.ads,
1892 libgnat/s-trasym__dwarf.adb, opt.adb, opt.ads, par-prag.adb,
1893 sem_prag.adb, snames.ads-tmpl, switch-c.adb, targparm.adb,
1894 targparm.ads, usage.adb: Remove support for -gnatP and pragma
1896 * gnat_ugn.texi: Regenerate.
1897 * libgnat/a-excpol.adb, libgnat/a-excpol__abort.adb: Removed.
1899 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
1901 * sem_ch3.adb (Array_Type_Declaration): Create itype with unique
1904 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
1906 * sem_ch3.adb (Analyze_Object_Declaration): Limit scope of a
1907 local object by hiding it from local subprograms; simplify
1908 nested if-then-if-then condition for an Ada 83 restriction.
1909 (Array_Type_Declaration): Confirm with assertion when the else
1911 (Find_Type_Of_Object): Simplify membership test with a subtype
1914 2020-10-16 Yannick Moy <moy@adacore.com>
1916 * sem_prag.adb (Analyze_Global_In_Decl_Part): Update check to
1917 reject volatile object for reading.
1918 * sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Update
1919 check to reject volatile object for reading.
1920 * sem_util.adb, sem_util.ads
1921 (Check_Nonvolatile_Function_Profile,
1922 Has_Effectively_Volatile_Profile): Detect use of volatile object
1924 (Has_Enabled_Property): Accept constants as well.
1925 (Is_Effectively_Volatile_For_Reading): New function based on
1926 existing Is_Effectively_Volatile.
1927 (Is_Effectively_Volatile_Object_For_Reading): Adapted from the
1928 existing Is_Effectively_Volatile_Object, using a shared
1929 implementation in Is_Effectively_Volatile_Object_Shared.
1931 2020-10-16 Gary Dismukes <dismukes@adacore.com>
1933 * exp_ch7.adb (Check_Unnesting_In_Decls_Or_Stmts): In the case
1934 of an if-statement, call Unnest_If_Statement to determine
1935 whether there are nested subprograms in any of the statement
1936 lists of the "if" parts that require a wrapping procedure to
1937 handle possible up-level refeferences.
1938 (Unnest_Block): Call Check_Unnesting_In_Handlers to do unnesting
1939 of subprograms in exception handlers of the block statement.
1940 (Unnest_If_Statement): New procedure to traverse the parts of an
1941 if-statement and create wrapper procedures as needed to
1942 encapsulate nested subprograms that may make up-level
1944 (Check_Stmts_For_Subp_Unnesting): New support procedure in
1945 Unnest_If_Statement to traverse a statement list looking for
1946 top-level subprogram bodies that require wrapping inside a
1947 procedure (via Unnest_Statement_List) as well as possibly having
1948 other statements (block, loop, if) that may themselves require
1949 an unnesting transformation (via
1950 Check_Unnesting_In_Decls_Or_Stmts).
1951 (Unnest_Statement_List): New support procedure to traverse the
1952 statements of a statement list that contains subprogram bodies
1953 at the top level and replace the statement list with a wrapper
1954 procedure body encapsulating the statements and a call to the
1957 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1959 * sem_prag.adb (Check_OK_Stream_Convert_Function): Check for
1960 abstract subprograms.
1962 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
1964 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
1965 (No_Local_Timing_Events): Package Timing_Events is a child of
1966 Ada.Real_Time, not of Ada.
1967 * gnat_rm.texi: Regenerate.
1969 2020-10-16 Eric Botcazou <ebotcazou@adacore.com>
1971 * doc/gnat_rm/implementation_defined_attributes.rst: Document the
1972 new Max_Integer_Size attribute.
1973 * gnat_rm.texi: Regenerate.
1974 * exp_attr.adb (Get_Integer_Type): Call Small_Integer_Type_For.
1975 (Expand_N_Attribute_Reference) <Attribute_Pred>: Replace selection
1976 code with call to Integer_Type_For.
1977 <Attribute_Succ>: Likewise.
1978 <Attribute_Val>: Likewise.
1979 <Attribute_Valid>: Likewise.
1980 <Attribute_Max_Integer_Size>: Raise Program_Error.
1981 * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Replace selection
1982 code with call to Integer_Type_For.
1983 (Simple_Init_Initialize_Scalars_Type): Use Long_Long_Unsigned and
1984 System_Max_Integer_Size to size the largest integer type.
1985 * exp_pakd.adb (Compute_Linear_Subscript): Minor tweak.
1986 (Create_Packed_Array_Impl_Type): Use Small_Integer_Type_For.
1987 * exp_util.ads (Integer_Type_For): New function.
1988 (Small_Integer_Type_For): Likewise.
1989 * exp_util.adb (Adjust_Condition): Use Integer_Type_For.
1990 (Component_May_Be_Bit_Aligned): Use System_Max_Integer_Size.
1991 (Integer_Type_For): New function.
1992 (Small_Integer_Type_For): Likewise.
1993 (Matching_Standard_Type): Use Small_Integer_Type_For.
1994 (Needs_Constant_Address): Replace 64 with System_Max_Integer_Size.
1995 * freeze.adb (Set_Small_Size): Likewise.
1996 (Size_Known): Likewise.
1997 (Check_Suspicious_Modulus): Likewise.
1998 (Check_Large_Modular_Array): Likewise.
1999 (Freeze_Entity): Likewise.
2000 * layout.adb (Layout_Type): Likewise.
2001 * sem_aggr.adb: Add with and use clauses for Ttypes.
2002 (Resolve_Aggregate): Replace 64 with System_Max_Integer_Size.
2003 * sem_attr.ads (Attribute_Impl_Def): Add Attribute_Max_Integer_Size.
2004 * sem_attr.adb (Analyze_Attribute) <Attribute_Max_Integer_Size>: New
2005 (Eval_Attribute): Likewise.
2006 * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Change max
2007 scalar size to System_Max_Integer_Size.
2008 (Check_Array_Type): Replace 64 with System_Max_Integer_Size and
2009 remove superfluous test.
2010 (OK_Component): Likewise.
2011 * sem_ch5.adb: Add with and use clauses for Ttypes.
2012 (Analyze_Assignment): Replace 64 with System_Max_Integer_Size.
2013 * snames.ads-tmpl (Name_Max_Integer_Size): New attribute name.
2014 (Attribute_Id): Add Attribute_Max_Integer_Size.
2015 * ttypes.ads (System_Max_Integer_Size): New constant.
2017 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2019 * sem_ch10.adb (Install_With_Clause): Fix implementation of Ada
2020 2005 AI-262 by taking into account generic packages. Minor
2022 * libgnat/a-cbhase.ads, libgnat/a-cbhase.adb: Remove use clause
2023 on runtime unit spec.
2025 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2027 * einfo.ads, einfo.adb (Scope_Depth_Value,
2028 Set_Scope_Depth_Value): Add assertions on valid nodes and update
2029 documentation accordingly.
2030 (Write_Field22_Name): Sync with change in Scope_Depth_Value.
2031 * sem_ch8.adb (Find_Direct_Name): Fix call to Scope_Depth_Value.
2033 2020-10-15 Javier Miranda <miranda@adacore.com>
2035 * sem_prag.adb (Analyze_Pragma): Adding semantic support of
2036 Standard to Default_Storage_Pool.
2037 * freeze.adb (Freeze_Entity): If pragma Default_Storage_Pool
2038 applies and it is set to Standard then use the global pool as
2039 the associated storage pool of the access type.
2041 2020-10-15 Javier Miranda <miranda@adacore.com>
2043 * exp_ch6.ads (Might_Have_Tasks): Update documentation.
2044 * exp_ch6.adb (Might_Have_Tasks): Return also true when the type
2046 (Make_Build_In_Place_Call_In_Allocator): Code cleanup.
2047 * exp_ch3.adb (Ensure_Activation_Chain_And_Master,
2048 Expand_N_Full_Type_Declaration, Expand_N_Object_Declaration):
2051 2020-10-15 Steve Baird <baird@adacore.com>
2053 * checks.adb (Apply_Predicate_Check): Generate "infinite
2054 recursion" warning message even if run-time predicate checking
2056 * exp_ch6.adb (Expand_Simple_Function_Return): In testing
2057 whether the returned expression is a function call, look for the
2058 case where the call has been transformed into a dereference of
2059 an access value that designates the result of a function call.
2060 * sem_ch3.adb (Analyze_Object_Declaration): Legality checking
2061 for a static expression is unaffected by assertion policy (and,
2062 in particular, enabling/disabling of subtype predicates. To get
2063 the right legality checking, we need to call
2064 Check_Expression_Against_Static_Predicate for a static
2065 expression even if predicate checking is disabled for the given
2066 predicate-bearing subtype. On the other hand, we don't want to
2067 call Make_Predicate_Check unless predicate checking is enabled.
2068 * sem_ch7.adb (Uninstall_Declarations.Preserve_Full_Attributes):
2069 Preserve the Predicates_Ignored attribute.
2070 * sem_eval.adb (Check_Expression_Against_Static_Predicate):
2071 Previously callers ensured that this procedure was only called
2072 if predicate checking was enabled; that is no longer the case,
2073 so predicates-disabled case must be handled.
2074 * sem_prag.adb (Analyze_Pragma): Fix bug in setting
2075 Predicates_Ignored attribute in Predicate pragma case.
2077 2020-10-15 Ed Schonberg <schonberg@adacore.com>
2079 * freeze.adb (Freeze_Fixed_Point_Type): Do not scale the bounds
2080 of a declared subtype using the 'Small of the type; this is
2081 done during resolution of the bound itself, unlike what is done
2082 for the bounds of the base type, which are used to determine its
2083 required size. Previous code performed this scaling twice,
2084 leading to meaningless values for such a subtype.
2086 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2088 * sem_util.adb (Bad_Predicated_Subtype_Use): Emit an
2089 unconditional error, not a conditional warning.
2091 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2093 * sem_ch3.adb (Process_Subtype): Combine guards for
2094 Null_Exclusion_Present in May_Have_Null_Exclusion; use this
2095 combined guard when checking AI-231.
2097 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2099 * sem_ch3.adb (Process_Subtype): Sync May_Have_Null_Exclusion
2100 with assertion in Null_Exclusion_Present; clarify the scope of
2103 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2105 * sem_ch3.adb (Analyze_Subtype_Declaration): Fix style.
2106 (Make_Index): Refactor to avoid repeated detection of subtype
2107 indication; add comment.
2109 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2111 * sem_prag.adb (Is_Acceptable_Dim3): Use Is_RTE to not pull CUDA
2112 package unless necessary; rename local Tmp variable; iterate
2113 with procedural Next.
2115 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2117 * sem_ch3.adb (Array_Type_Declaration): Refine type of a local
2119 (Make_Index): Simplify to avoid assignment with a type entity
2120 and then backtracking by reassigning to Empty; remove excessive
2122 * sem_ch9.adb (Analyze_Entry_Body): Remove extra parens.
2124 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2126 * sem_ch3.adb (Access_Subprogram_Declaration): Remove extra
2128 (Make_Index): Remove excessive calls to Is_Type.
2130 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2132 * sem_util.adb (Enter_Name): Remove unnecessary conditions in
2133 Enter_Name that come from the beginning of times.
2135 2020-10-15 Bob Duff <duff@adacore.com>
2137 * exp_ch6.adb (Expand_Simple_Function_Return): Remove DSP part
2138 of comment, and reformat.
2140 2020-10-15 Boris Yakobowski <yakobowski@adacore.com>
2142 * exp_attr.adb (Expand_N_Attribute_Reference): Do not expand
2143 'Initialized in CodePeer mode.
2145 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2147 * sem_ch12.adb (Reset_Entity): Protect against malformed tree.
2149 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2151 * sem_ch13.adb (Add_Predicates): Prevent analyzing twice the
2152 same pragma in case an inner package references the type with a
2153 predicate (as opposed to defining the type).
2155 2020-10-15 Eric Botcazou <ebotcazou@adacore.com>
2157 * libgnat/a-cfinve.adb (Int): Use subtype of Long_Long_Integer.
2158 * libgnat/a-cofove.adb (Int): Likewise.
2159 * libgnat/a-cgcaso.adb (T): Likewise.
2160 * libgnat/a-cogeso.adb (T): Likewise.
2161 * libgnat/g-debpoo.ads (Byte_Count): Use Long_Long_Integer'Size.
2163 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2165 * sem_ch12.adb: Replace list of N_Defining_... enumerations with
2168 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2170 * sem_ch3.ads, sem_ch3.adb (Make_Index): Refined type of
2172 (Constrain_Index): Likewise.
2173 (Array_Type_Declaration): Refine type of a local counter
2174 variable; remove a trivially useless initialization.
2176 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2178 * sem_ch3.adb (Analyze_Subtype_Declaration): Recognize both
2179 identifiers and expanded names; use high-level Is_Scalar_Type
2180 instead of low-level membership test.
2182 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2184 * sem_eval.adb (Eval_Intrinsic_Call, Fold_Shift): Add support
2185 for Shift_Right_Arithmetic and for signed integers.
2186 * exp_ch4.adb (Expand_N_Op_Rotate_Left,
2187 Expand_N_Op_Rotate_Right, Expand_N_Op_Shift_Left,
2188 Expand_N_Op_Shift_Right_Arithmetic): Minor reformatting and code
2189 cleanup to ensure a consistent handling. Update comments and add
2192 2020-10-15 Bob Duff <duff@adacore.com>
2194 * sem_ch13.adb (Visible_Component): Enable this code for task
2195 and protected types, as well as record and private types.
2196 * sem_ch13.ads (Replace_Type_References_Generic): Update
2197 comment. Move the efficiency comment into the body, because
2198 it's about the implementation.
2200 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2202 * par-ch13.adb (Get_Aspect_Specifications): Generate a warning
2203 rather than an error on unknown aspects unless -gnatd2 is used.
2204 (Aspect_Specifications_Present): Improve detection of unknown
2206 * debug.adb (Debug_Flag_2): Update document.
2208 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2210 * sem_res.adb (Resolve_Call): Do not try to inline intrinsic
2213 2020-10-15 Ed Schonberg <schonberg@adacore.com>
2215 * exp_aggr.adb (Expand_N_Aggregate): A record aggregate requires
2217 * sem_ch13.adb (Valid_Assign_Indexed): New subprogram local to
2218 Resolve_Aspect_Aggregate, to handle the case when the
2219 corresponding name appearing in the aspect specification for an
2220 indexed aggregate is an overloaded operation.
2221 * libgnat/a-convec.ads, libgnat/a-convec.adb,
2222 libgnat/a-coinve.ads, libgnat/a-coinve.adb,
2223 libgnat/a-cobove.ads, libgnat/a-cobove.adb,
2224 libgnat/a-cdlili.ads, libgnat/a-cdlili.adb,
2225 libgnat/a-cbdlli.ads, libgnat/a-cbdlli.adb,
2226 libgnat/a-cohama.ads, libgnat/a-cihama.ads,
2227 libgnat/a-cbhama.ads, libgnat/a-cborma.ads,
2228 libgnat/a-ciorma.ads, libgnat/a-coorma.ads,
2229 libgnat/a-cihase.ads, libgnat/a-cohase.ads,
2230 libgnat/a-cbhase.ads, libgnat/a-cborse.ads,
2231 libgnat/a-ciorse.ads, libgnat/a-coorse.ads: Add Ada_2020 aspect
2232 Aggregate to types declared in standard containers, as well as
2233 new subprograms where required.
2235 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2237 * libgnat/g-arrspl.ads, libgnat/g-arrspl.adb (Create,
2238 First_Cursor, Advance, Has_Element): New.
2240 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2242 * Makefile.rtl: Add target pair for interfac.ads.
2243 * libgnat/interfac.ads: Add a comment.
2244 * libgnat/interfac__2020.ads: New, used for bootstrap purposes.
2245 * sem_util.adb (Is_Static_Function): Always return False for pre
2246 Ada 2020 to e.g. ignore the Static aspect in Interfaces for
2249 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2251 * exp_util.adb (Remove_Side_Effects): Move special-casing for
2252 GNATprove to be applied to all object declarations.
2254 2020-10-12 Alexandre Oliva <oliva@adacore.com>
2256 * libgnat/a-ngelfu.ads (Sin, Cos): Make the single-argument
2259 2020-10-11 Alexandre Oliva <oliva@adacore.com>
2261 * libgnat/a-numaux.ads: Make all imports Intrinsic.
2262 * libgnat/a-numaux__darwin.ads: Likewise.
2263 * libgnat/a-numaux__libc-x86.ads: Likewise.
2264 * libgnat/a-numaux__vxworks.ads: Likewise.
2266 2020-09-28 Eric Botcazou <ebotcazou@adacore.com>
2268 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the end locus
2269 of body and declaration earlier.
2271 2020-09-28 Eric Botcazou <ebotcazou@adacore.com>
2273 * gcc-interface/decl.c (maybe_saturate_size): Add ALIGN parameter
2274 and round down the result to ALIGN.
2275 (gnat_to_gnu_entity): Adjust calls to maybe_saturate_size.
2277 2020-09-14 Jakub Jelinek <jakub@redhat.com>
2279 * gcc-interface/trans.c (gigi): Adjust build_optimization_node
2282 2020-09-12 Eric Botcazou <ebotcazou@adacore.com>
2284 * fe.h: Fix pilot error in previous change.
2285 * gcc-interface/gigi.h (enum standard_datatypes): Add ADT_mulv128_decl.
2286 (mulv128_decl): New macro.
2287 (get_target_long_long_long_size): Declare.
2288 * gcc-interface/decl.c (gnat_to_gnu_entity): Use a maximum size of
2289 128 bits for discrete types if Enable_128bit_Types is true.
2290 * gcc-interface/targtyps.c: Include target.h.
2291 (get_target_long_long_long_size): New function.
2292 * gcc-interface/trans.c (gigi): Initialize mulv128_decl if need be.
2293 (build_binary_op_trapv): Call it for 128-bit multiplication.
2294 * gcc-interface/utils.c (make_type_from_size): Enforce a maximum
2295 size of 128 bits if Enable_128bit_Types is true.
2297 2020-09-12 Eric Botcazou <ebotcazou@adacore.com>
2299 * gcc-interface/trans.c (lvalue_for_aggr_p) <N_Object_Declaration>:
2300 Return false unconditionally.
2302 2020-09-12 Eric Botcazou <ebotcazou@adacore.com>
2304 * gcc-interface/trans.c (gnat_to_gnu) <N_Object_Declaration>: Clear
2305 the SLOC of the expression of a tag.
2307 2020-09-12 Eric Botcazou <ebotcazou@adacore.com>
2309 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Only give
2310 a warning for the overlay of an aliased array with an unconstrained
2311 nominal subtype if the address is absolute.
2313 2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
2315 * gcc-interface/utils.c (type_has_variable_size): New function.
2316 (create_field_decl): In the packed case, also force byte alignment
2317 when the type of the field has variable size.
2319 2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
2321 * gcc-interface/misc.c (get_array_bit_stride): Return TYPE_ADA_SIZE
2322 for record and union types.
2324 2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
2326 * gcc-interface/misc.c (gnat_get_fixed_point_type): Bail out only
2327 when the GNAT encodings are specifically used.
2329 2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
2331 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Only
2332 create extra subtypes for discriminants if the RM size of the base
2333 type of the index type is lower than that of the index type.
2335 2020-09-10 Eric Botcazou <ebotcazou@adacore.com>
2337 * gcc-interface/decl.c (set_rm_size): Do not take into account the
2338 Value_Size clause if it is not for the entity itself.
2340 2020-09-10 Eric Botcazou <ebotcazou@adacore.com>
2342 * gcc-interface/decl.c (build_subst_list): For a definition, make
2343 sure to instantiate the SAVE_EXPRs generated by the elaboration of
2344 the constraints in front of the elaboration of the type itself.
2346 2020-09-10 Eric Botcazou <ebotcazou@adacore.com>
2348 * gcc-interface/misc.c: Include tree-pass.h.
2349 (internal_error_function): Call emergency_dump_function.
2351 2020-09-03 Arnaud Charlet <charlet@adacore.com>
2353 * fe.h, opt.ads (Enable_128bit_Types): New.
2354 * stand.ads (Standard_Long_Long_Long_Integer,
2355 S_Long_Long_Long_Integer): New.
2357 2020-09-03 Arnaud Charlet <charlet@adacore.com>
2359 * sem_util.ads, sem_util.adb (Get_Fullest_View): New procedure.
2360 * exp_unst.adb (Check Static_Type): Do all processing on fullest
2361 view of specified type.
2363 2020-08-27 Martin Liska <mliska@suse.cz>
2365 * gcc-interface/trans.c (gigi): Set exact argument of a vector
2366 growth function to true.
2367 (Attribute_to_gnu): Likewise.
2369 2020-07-27 Alexandre Oliva <oliva@adacore.com>
2371 * switch.adb (Is_Internal_GCC_Switch): Revert accidental
2372 reintroduction of auxbase and auxbase-strip.
2374 2020-07-27 Javier Miranda <miranda@adacore.com>
2376 * sem_res.adb (Resolve_Actuals): Restrict the check on matching
2377 aliased components to view conversions of array types that are
2378 not placed in an instance. In such case at runtime an object is
2380 * sem_util.ads (Is_Actual_In_Out_Parameter, Is_View_Conversion):
2382 * sem_util.adb (Is_Actual_In_Out_Parameter, Is_View_Conversion):
2385 2020-07-27 Arnaud Charlet <charlet@adacore.com>
2387 * lib-xref.adb (Generate_Reference): Protect against malformed
2388 tree in case of severe errors.
2389 * sem_ch8.adb (Add_Implicit_Operator): Ditto.
2391 2020-07-27 Arnaud Charlet <charlet@adacore.com>
2393 * opt.ads (Ada_Version_Runtime): Set to Ada_2020.
2394 * sem_ch3.adb (Analyze_Subtype_Declaration): Propagate
2395 Is_Independent flag to subtypes.
2396 * libgnarl/s-taprop__linux.adb: Adapt to Ada 2020 warning.
2397 * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
2398 libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
2399 libgnat/a-nbnbre.ads, libgnat/a-stobbu.adb,
2400 libgnat/a-stobbu.ads, libgnat/a-stobfi.adb,
2401 libgnat/a-stobfi.ads, libgnat/a-stoubu.adb,
2402 libgnat/a-stoubu.ads, libgnat/a-stoufi.adb,
2403 libgnat/a-stoufi.ads, libgnat/a-stoufo.adb,
2404 libgnat/a-stoufo.ads, libgnat/a-stouut.adb,
2405 libgnat/a-stouut.ads, libgnat/a-strsto.ads,
2406 libgnat/a-ststbo.adb, libgnat/a-ststbo.ads,
2407 libgnat/a-ststun.adb, libgnat/a-ststun.ads,
2408 libgnat/a-stteou.ads, libgnat/s-aoinar.ads,
2409 libgnat/s-aomoar.ads, libgnat/s-atopex.ads,
2410 libgnat/s-putaim.adb, libgnat/s-putaim.ads,
2411 libgnat/s-putima.adb, libgnat/s-putima.ads: Remove pragma
2412 Ada_2020, now redundant.
2414 2020-07-27 Justin Squirek <squirek@adacore.com>
2416 * exp_ch6.adb (Expand_Call_Helper): Modify addition of the extra
2417 accessibility parameter to take into account the extra
2418 accessibility of formals within the calling subprogram.
2420 2020-07-27 Bob Duff <duff@adacore.com>
2422 * exp_imgv.adb (Expand_Image_Attribute): Add Root_Type, so
2423 constrained subtypes work.
2425 2020-07-27 Ghjuvan Lacambre <lacambre@adacore.com>
2427 * exp_prag.adb (Arg1, Arg2, Arg3): Removed.
2428 (Arg_N): New function.
2430 2020-07-27 Arnaud Charlet <charlet@adacore.com>
2432 * sem_ch8.adb (Analyze_Object_Renaming): Allow values in Ada
2435 2020-07-27 Arnaud Charlet <charlet@adacore.com>
2437 * sem_res.adb (Resolve_Actuals): Refine 6.4.1 rules as per
2440 2020-07-27 Bob Duff <duff@adacore.com>
2442 * errout.ads, errout.adb (Error_Msg_Ada_2020_Feature): New
2443 procedure analogous to Error_Msg_Ada_2012_Feature.
2444 * sem_attr.adb (Analyze_Image_Attribute): Use
2445 Error_Msg_Ada_2012_Feature and Error_Msg_Ada_2020_Feature to
2446 indicate that Object'Image is allowed in Ada 2012, and that
2447 'Image is allowed for any type in Ada 2020.
2449 2020-07-27 Dmitriy Anisimkov <anisimko@adacore.com>
2451 * libgnat/a-strunb.adb (Sum, Mul, Saturated_Sum, Saturated_Mul):
2452 New routines. Use them when resulting string size more that
2453 length of the strings in parameters.
2454 (Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side
2455 of condition to avoid overflow.
2456 * libgnat/a-strunb__shared.adb (Sum, Mul): New routines.
2457 (Allocate): New routine with 2 parameters. Use routine above
2458 when resulting string size more that length of the strings in
2460 (Aligned_Max_Length): Do not try to align to more than Natural'Last.
2461 (Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side
2462 of condition to avoid overflow.
2464 2020-07-27 Arnaud Charlet <charlet@adacore.com>
2466 * sem_attr.adb (Resolve_Attribute): Remove dead code.
2468 2020-07-27 Arnaud Charlet <charlet@adacore.com>
2470 * aspects.adb, atree.adb, atree.ads, checks.adb, contracts.adb,
2471 einfo.adb, errout.adb, exp_aggr.adb, exp_attr.adb, exp_cg.adb,
2472 exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb,
2473 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb,
2474 exp_dbug.adb, exp_disp.adb, exp_intr.adb, exp_pakd.adb,
2475 exp_prag.adb, exp_put_image.adb, exp_smem.adb, exp_tss.adb,
2476 exp_unst.adb, exp_util.adb, freeze.adb, ghost.adb, gnat1drv.adb,
2477 inline.adb, lib-writ.adb, lib-xref-spark_specific.adb,
2478 lib-xref.adb, namet.adb, namet.ads, nlists.adb, par-ch10.adb,
2479 par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
2480 par-prag.adb, par-util.adb, par_sco.adb, pprint.adb,
2481 repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, sem.adb,
2482 sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb,
2483 sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb,
2484 sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb,
2485 sem_ch8.adb, sem_ch9.adb, sem_dim.adb, sem_disp.adb,
2486 sem_dist.adb, sem_elab.adb, sem_elim.adb, sem_eval.adb,
2487 sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
2488 sem_scil.adb, sem_type.adb, sem_util.adb, sem_warn.adb,
2489 sinfo.adb, sinfo.ads, sprint.adb, styleg.adb, tbuild.adb,
2490 treepr.adb (Nkind_In, Nam_In, Ekind_In): Removed, replaced by
2493 2020-07-27 Gary Dismukes <dismukes@adacore.com>
2495 * sem_prag.adb (Analyze_Pragma, Pragma_Max_Entry_Queue_Length):
2496 Refine error message to indicate that the pragma must apply to
2497 an entry declaration, not just an entry.
2499 2020-07-27 Javier Miranda <miranda@adacore.com>
2501 * exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator):
2502 Revert previous patch, and add a missing type conversion to
2503 displace the pointer to the allocated object to reference the
2504 target dispatch table.
2506 2020-07-27 Javier Miranda <miranda@adacore.com>
2508 * sem_res.adb (Resolve_Actuals): Restore restrictive check on
2509 view conversions which required matching value of
2510 Has_Aliased_Components of formals and actuals. Required to avoid
2511 the regression of ACATS b460005.
2513 2020-07-27 Eric Botcazou <ebotcazou@adacore.com>
2515 * sem_ch12.adb (Instantiate_Package_Body): Add commentary for a
2516 nesting issue with parent handling and private view switching.
2517 (Switch_View): Do not skip specific private-dependent subtypes.
2519 2020-07-27 Patrick Bernardi <bernardi@adacore.com>
2521 * Makefile.rtl: Remove X86_TARGET_PAIRS for x86-lynx178elf.
2523 2020-07-27 Ed Schonberg <schonberg@adacore.com>
2525 * sem_ch13.adb (Analyze_Address_Specification_Clause): Do not
2526 emit a warning when a constant declaration in a generic unit
2527 overlays a generic In_Parameter.
2529 2020-07-27 Gary Dismukes <dismukes@adacore.com>
2531 * sem_ch3.adb (Check_Abstract_Overriding): Remove Scope
2532 comparison test from test related to initial implementation of
2533 AI12-0042, plus remove the related ??? comment.
2534 (Derive_Subprogram): Add test requiring that the type extension
2535 appear in the visible part of its enclosing package when
2536 checking the overriding requirement of 7.3.2(6.1/4), as
2537 clarified by AI12-0382.
2539 2020-07-27 Piotr Trojanek <trojanek@adacore.com>
2541 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference) Extend
2542 existing workaround to 'Pos.
2544 2020-07-27 Bob Duff <duff@adacore.com>
2546 * libgnat/s-rannum.ads, libgnat/s-rannum.adb: Add Put_Image.
2547 This will be inherited by the language-defined packages
2548 Ada.Numerics.Discrete_Random and Ada.Numerics.Float_Random.
2549 * libgnat/a-convec.ads, libgnat/a-convec.adb: Add Put_Image.
2550 * libgnat/s-putima.ads: Add pragma Preelaborate, so this can be
2551 imported into containers packages.
2552 * libgnat/s-putima.adb: Move Digit to private part; otherwise
2553 reference to Base is illegal in Preelaborate generic.
2554 * exp_put_image.adb (Build_Record_Put_Image_Procedure): Use the
2557 2020-07-23 Arnaud Charlet <charlet@adacore.com>
2559 * aspects.ads: Declare CUDA_Global as aspect.
2560 * einfo.ads: Use Flag118 for the Is_CUDA_Kernel flag.
2561 (Set_Is_CUDA_Kernel): New function.
2562 (Is_CUDA_Kernel): New function.
2563 * einfo.adb (Set_Is_CUDA_Kernel): New function.
2564 (Is_CUDA_Kernel): New function.
2565 * par-prag.adb (Prag): Ignore Pragma_CUDA_Execute and
2567 * rtsfind.ads: Define CUDA.Driver_Types.Stream_T and
2568 CUDA.Vector_Types.Dim3 entities
2569 * rtsfind.adb: Define CUDA_Descendant subtype.
2570 (Get_Unit_Name): Handle CUDA_Descendant packages.
2571 * sem_prag.ads: Mark CUDA_Global as aspect-specifying pragma.
2572 * sem_prag.adb (Analyze_Pragma): Validate Pragma_CUDA_Execute and
2574 * snames.ads-tmpl: Define Name_CUDA_Execute and Name_CUDA_Global.
2576 2020-07-23 Arnaud Charlet <charlet@adacore.com>
2578 * sem_ch13.ads (Same_Representation): Renamed as
2579 Has_Compatible_Representation because now the order of the arguments
2580 are taken into account; its formals are also renamed as Target_Type
2582 * sem_ch13.adb (Same_Representation): Renamed and moved to place the
2583 routine in alphabetic order.
2584 * sem_attr.adb (Prefix_With_Safe_Accessibility_Level): New subprogram.
2585 (Resolve_Attribute): Check that the prefix of attribute Access
2586 does not have a value conversion of an array type.
2587 * sem_res.adb (Resolve_Actuals): Remove restrictive check on view
2588 conversions which required matching value of Has_Aliased_Components of
2589 formals and actuals.
2590 * exp_ch4.adb (Handle_Changed_Representation): Update call to
2591 Same_Representation.
2592 (Expand_N_Type_Conversion): Update call to Same_Representation.
2593 * exp_ch5.adb (Change_Of_Representation): Update call to
2594 Same_Representation.
2595 * exp_ch6.adb (Add_Call_By_Copy_Code): Update call to
2596 Same_Representation.
2597 (Expand_Actuals): Update call to Same_Representation.
2598 (Expand_Call_Helper): Update call to Same_Representation.
2600 2020-07-23 Arnaud Charlet <charlet@adacore.com>
2602 * output.ads (Push_Output, Pop_Output): New procedures.
2603 * output.adb (FD_Array, FD_Stack, FD_Stack_Idx): New type and vars.
2604 (Push_Output, Pop_Output): New procedures.
2606 2020-07-16 Javier Miranda <miranda@adacore.com>
2608 * exp_ch3.adb (Expand_N_Full_Type_Declaration): Ensure a _master
2609 declaration on limited types that might have tasks.
2610 * exp_ch9.adb (Build_Master_Renaming): For private types, if we
2611 are processing declarations in the private part, ensure that
2612 master is inserted before its full declaration; otherwise the
2613 master renaming may be inserted in the public part of the
2614 package (and hence before the declaration of its _master
2617 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2619 * sem_ch8.adb (Analyze_Subprogram_Renaming): A renames-as-body
2620 freezes the expression of any expression function that it
2623 2020-07-16 Ed Schonberg <schonberg@adacore.com>
2625 * sem_aggr.adb (Resolve_Container_Aggregate): Add semantic
2626 checks for indexed aggregates, including component associations
2627 and iterated component associations.
2628 * exp_aggr.adb (Expand_Iterated_Component): New subprogram,
2629 subsidiary of Expand_Container_Aggreggate, used for positional,
2630 named, and indexed aggregates.
2631 (Aggregate_Size): New subprogram to precompute the size of an
2632 indexed aggregate prior to call to allocate it.
2633 (Expand_Range_Component): New subprogram so generate loop for a
2634 component association given by a range or a subtype name in an
2637 2020-07-16 Bob Duff <duff@adacore.com>
2639 * bindo-diagnostics.adb (Output_Invocation_Related_Suggestions):
2640 Use Cumulative_Restrictions.Set, because Restriction_Active only
2641 works at compile time.
2643 2020-07-16 Bob Duff <duff@adacore.com>
2645 * gnatbind.adb (Gnatbind): For No_Tasks_Unassigned_To_CPU, check
2646 that CPU has been set on the main subprogram.
2647 (Restriction_Could_Be_Set): Don't print
2648 No_Tasks_Unassigned_To_CPU if it would violate the
2649 above-mentioned rule. Up to now, all restrictions were checked
2650 by the compiler, with the binder just checking for consistency.
2651 But the compiler can't know which subprogram is the main, so
2652 it's impossible to check this one at compile time.
2653 * restrict.ads, restrict.adb: Misc refactoring. Change Warning
2654 to Warn, for consistency, since most already use Warn.
2655 (Set_Restriction): New convenience routine.
2656 * sem_ch13.adb (Attribute_CPU): Check
2657 No_Tasks_Unassigned_To_CPU.
2658 * sem_prag.adb (Pragma_CPU): Check No_Tasks_Unassigned_To_CPU.
2660 * tbuild.ads, tbuild.adb (Sel_Comp): New functions for building
2661 selected components.
2663 2020-07-16 Eric Botcazou <ebotcazou@adacore.com>
2665 * impunit.adb (Non_Imp_File_Names_95): Remove duplicate entry.
2667 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2669 * Makefile.rtl: replace a-numaux__x86.ads by
2670 a-numaux__libc-x86.ads and a-numaux__x86.adb by
2671 a-numaux__dummy.adb.
2672 * libgnat/a-numaux__x86.ads, libgnat/a-numaux__x86.adb: Removed.
2673 * libgnat/a-numaux__dummy.adb: New.
2675 2020-07-16 Ed Schonberg <schonberg@adacore.com>
2677 * sem_ch12.adb (Load_Parent_Of_Generic): If an ancestor is an
2678 instance whose source appears within a formal package of the
2679 current unit, there is no body of the ancestor needed to
2680 complete the current generic compilation.
2682 2020-07-16 Doug Rupp <rupp@adacore.com>
2684 * libgnat/s-thread__ae653.adb (taskVarAdd): Defunct, so remove.
2685 (Current_ATSD): Make it a TLS variable.
2686 (OK): Move to package scope.
2687 (System.Storage_Elements): Import and Use.
2689 2020-07-16 Eric Botcazou <ebotcazou@adacore.com>
2691 * exp_ch9.adb (Expand_N_Accept_Statement): Set Parent of the
2692 created block entity to the created block statement.
2694 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2696 * scng.adb (Scan): Detect wide characters not in NFKC.
2697 * libgnat/a-chahan.adb, libgnat/a-chahan.ads,
2698 libgnat/a-wichha.adb, libgnat/a-wichha.ads,
2699 libgnat/a-wichun.adb, libgnat/a-wichun.ads,
2700 libgnat/a-zchhan.adb, libgnat/a-zchhan.ads,
2701 libgnat/a-zchuni.adb, libgnat/a-zchuni.ads (Is_NFKC): New.
2702 * libgnat/s-utf_32.ads, libgnat/s-utf_32.adb (Is_UTF_32_NFKC):
2705 2020-07-16 Bob Duff <duff@adacore.com>
2707 * libgnat/s-rident.ads (Restriction_Id): Add
2708 No_Tasks_Unassigned_To_CPU.
2710 2020-07-16 Bob Duff <duff@adacore.com>
2712 * exp_aggr.adb (Max_Aggregate_Size): Use the small size of 64
2713 when copying is needed (for example, for the initialization of a
2714 local variable, and for assignment statements). Use the larger
2715 size when static allocation can be done without copying.
2717 2020-07-16 Bob Duff <duff@adacore.com>
2719 * libgnat/s-rident.ads (No_Dynamic_CPU_Assignment): New
2720 restriction. Add it to all relevant profiles.
2721 * sem_ch13.adb (Attribute_CPU): Check No_Dynamic_CPU_Assignment
2723 (Attribute_CPU, Attribute_Dispatching_Domain,
2724 Attribute_Interrupt_Priority): Remove error checks -- these are
2725 checked in the parser.
2726 * sem_prag.adb (Pragma_CPU): Check No_Dynamic_CPU_Assignment
2727 restriction. We've got a little violation of DRY here.
2728 * sem.ads, sem_ch3.ads: Minor comment fix.
2730 2020-07-16 Gary Dismukes <dismukes@adacore.com>
2732 * sem_ch4.adb (Try_Container_Indexing): When the prefix type is
2733 an access type, change it to the designated type, change the
2734 prefix to an explicit dereference, and emit a ?d? warning for
2735 the implicit dereference. Include a ??? comment questioning
2736 whether this is the right context in which to perform the
2737 implicit dereferencing.
2739 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2741 * sem_ch13.adb (Validate_Literal_Aspect): Ensure that the
2742 parameter is not aliased. Minor reformatting.
2743 * sem_util.adb (Statically_Names_Object): Update comment.
2745 2020-07-16 Ghjuvan Lacambre <lacambre@adacore.com>
2747 * sem_case.adb (Build_Choice): Set Is_Static_Expression flag.
2748 (Lit_Of): Update specification to mention Is_Static_Expression
2750 * sem_ch13.adb (Membership_Entry): Check for N_Others_Choice.
2752 2020-07-16 Bob Duff <duff@adacore.com>
2754 * sem_ch6.adb (Null_Exclusions_Match): New function to check
2755 that the null exclusions match, including in the case addressed
2757 (Check_Conformance): Remove calls to Comes_From_Source
2758 when calling Null_Exclusions_Match. These are not
2759 needed, as indicated by an ancient "???" comment.
2761 2020-07-16 Justin Squirek <squirek@adacore.com>
2763 * exp_ch4.adb (Expand_N_Type_Conversion): Remove flawed test for
2764 whether "statically deeper" accessibility rules apply to a given
2765 target type and instead use the new routine
2766 Statically_Deeper_Relation_Applies.
2767 (Statically_Deeper_Relation_Applies): Created to centralize the
2768 calculation of whether a target type within a conversion must
2769 have static accessibility checks.
2770 * sem_ch13.adb (Check_One_Function): Minor comment revision.
2772 2020-07-16 Eric Botcazou <ebotcazou@adacore.com>
2774 * fe.h (Is_OK_Static_Expression): Delete.
2775 * sem_eval.ads (Is_OK_Static_Expression): Remove WARNING note.
2777 2020-07-16 Justin Squirek <squirek@adacore.com>
2779 * einfo.adb, einfo.ads (Is_Named_Access_Type): Created for
2781 * sem_ch6.adb (Check_Return_Construct_Accessibility): Add
2782 special cases for formals.
2783 * sem_util.adb (Object_Access_Level): Add handling of access
2784 attributes and named access types in the general case.
2786 2020-07-16 Piotr Trojanek <trojanek@adacore.com>
2788 * sem_case.adb (Build_Choice): Simplify.
2790 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2792 * frontend.adb: Disable Initialize_Scalars on runtime files.
2794 2020-07-16 Ghjuvan Lacambre <lacambre@adacore.com>
2796 * sem_ch3.adb (Analyze_Object_Declaration): Add
2797 Comes_From_Source call.
2799 2020-07-16 Javier Miranda <miranda@adacore.com>
2801 * exp_attr.adb (Expand_Access_To_Protected_Op): Initialize
2802 variable Sub to Empty to avoid false positive reported by
2805 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2807 * sem_ch8.adb (Note_Redundant_Use): Add missing warning tag.
2808 Do not check for redundant use clauses in predefined units to avoid
2809 misleading warnings that may occur as part of a rtsfind load.
2811 2020-07-16 Javier Miranda <miranda@adacore.com>
2813 * exp_attr.adb (Has_By_Protected_Procedure_Prefixed_View): New
2815 (Expand_Access_To_Protected_Op): Adding support for prefixed
2816 class-wide view with By_Protected_Procedure convention.
2817 * sem_attr.adb (Get_Convention): New subprogram.
2818 (Get_Kind): Adapted to use Get_Convention.
2819 * sem_ch4.adb (Try_By_Protected_Procedure_Prefixed_View): New
2821 (Analyze_Selected_Component): Invoke
2822 Try_By_Protected_Procedure_Prefixed_View.
2823 * sem_util.ads (Is_By_Protected_Procedure): New subprogram.
2824 * sem_util.adb (Is_By_Protected_Procedure): New subprogram.
2826 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2828 * libgnat/s-ststop.ads: Fix typo.
2829 * libgnat/s-ststop.adb (Read, Write): Fix block number
2830 computation to avoid overflows in case of large strings.
2832 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2834 * libgnat/s-genbig.adb ("**"): Remove capacity limit check.
2835 Improve code by using an extended return.
2836 (Normalize): Perform capacity limit check here instead which is
2837 the centralized place where (potentially large) big integers are
2840 2020-07-16 Gary Dismukes <dismukes@adacore.com>
2842 * exp_ch4.adb (Expand_N_Type_Conversion): Handle the case of
2843 applying an invariant check for a conversion to a class-wide
2844 type whose root type has a type invariant, when the conversion
2845 appears within the immediate scope of the type and the
2846 expression is of a specific tagged type.
2847 * sem_ch3.adb (Is_Private_Primitive): New function to determine
2848 whether a primitive subprogram is a private operation.
2849 (Check_Abstract_Overriding): Enforce the restriction imposed by
2850 AI12-0042 of requiring overriding of an inherited nonabstract
2851 private operation when the ancestor has a class-wide type
2852 invariant and the ancestor's private operation is visible.
2853 (Derive_Subprogram): Set Requires_Overriding on a subprogram
2854 inherited from a visible private operation of an ancestor to
2855 which a Type_Invariant'Class expression applies.
2857 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
2859 * sem_util.adb (Find_Overlaid_Entity): Fix style in comment.
2860 (Note_Possible_Modification): Simplify repeated calls to Ekind.
2862 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
2864 * exp_aggr.adb (Flatten): Adjust description.
2865 (Convert_To_Positional): Remove obsolete ??? comment and use
2866 Compile_Time_Known_Value in the final test.
2868 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2870 * par-ch4.adb (P_Iterated_Component_Association): Extended to
2871 recognzize the similar Iterated_Element_Association. This node
2872 is only generated when an explicit Key_Expression is given.
2873 Otherwise the distinction between the two iterated forms is done
2874 during semantic analysis.
2875 * sinfo.ads: New node N_Iterated_Element_Association, for
2876 Ada202x container aggregates. New field Key_Expression.
2877 * sinfo.adb: Subprograms for new node and newn field.
2878 * sem_aggr.adb (Resolve_Iterated_Component_Association): Handle
2879 the case where the Iteration_Scheme is an
2880 Iterator_Specification.
2881 * exp_aggr.adb (Wxpand_Iterated_Component): Handle a component
2882 with an Iterated_Component_Association, generate proper loop
2883 using given Iterator_Specification.
2884 * exp_util.adb (Insert_Axtions): Handle new node as other
2885 aggregate components.
2886 * sem.adb, sprint.adb: Handle new node.
2887 * tbuild.adb (Make_Implicit_Loop_Statement): Handle properly a
2888 loop with an Iterator_ specification.
2890 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2892 * libgnat/s-stposu.adb (Allocate_Any_Controlled): Fix logic in
2895 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
2897 * sem_util.adb (Is_Object_Reference): Return True on
2900 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2902 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Add proper
2903 handling of Aspect_Predicate_Failure, consistent with
2904 Check_Aspect_At_Freeze_Point.
2906 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2908 * sem_ch13.adb (Check_Aspect_Too_Late): Mention -gnat2020 switch
2911 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
2913 * einfo.ads (Delayed Freezing and Elaboration): Adjust description.
2914 * freeze.adb (Freeze_Object_Declaration): Likewise.
2915 * sem_ch3.adb (Delayed_Aspect_Present): Likewise. Do not return
2917 * sem_ch13.adb (Analyze_Aspect_Specifications): Do not always delay
2918 for Alignment. Moreover, for Alignment and various Size aspects,
2919 do not delay if the expression is an attribute whose prefix is the
2922 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
2924 * exp_ch6.adb (Requires_Atomic_Or_Volatile_Copy): Return false
2925 inside an initialization procedure.
2927 2020-07-15 Ghjuvan Lacambre <lacambre@adacore.com>
2929 * sem_util.adb (Is_Renaming): Add ekind checks.
2931 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2933 * doc/gnat_ugn/gnat_utility_programs.rst: Remove doc on obsolete
2935 * gnat_ugn.texi: Regenerate.
2937 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2939 * sem_res.adb (Resolve_Type_Conversion): Protect against null
2940 entity. Add proper tag for -gnatwr warning.
2942 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2944 * sem_ch6.adb (Analyze_Procedure_Call): Detect use of operators
2945 in a procedure call.
2946 * sem_util.adb: Minor edit.
2948 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
2950 * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Apply scalar
2951 range checks against the base type of an index type, not against
2952 the index type itself.
2954 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
2956 * einfo.ads (Delayed Freezing and Elaboration): Minor tweaks.
2957 Document the discrepancy between the aspect and the non-aspect
2958 cases for alignment settings in object declarations.
2960 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2962 * exp_ch3.adb (Freeze_Type): Remove warning in expander,
2963 replaced by a corresponding error in sem_ch13.adb. Replace
2964 RTE_Available by RTU_Loaded to avoid adding unnecessary
2966 * sem_ch13.adb (Associate_Storage_Pool): New procedure.
2967 (Analyze_Attribute_Definition_Clause
2968 [Attribute_Simple_Storage_Pool| Attribute_Storage_Pool]): Call
2969 Associate_Storage_Pool to add proper legality checks on
2972 2020-07-15 Yannick Moy <moy@adacore.com>
2974 * libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
2975 libgnat/a-cbhama.adb, libgnat/a-cbhama.ads,
2976 libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
2977 libgnat/a-cbmutr.adb, libgnat/a-cbmutr.ads,
2978 libgnat/a-cborma.adb, libgnat/a-cborma.ads,
2979 libgnat/a-cborse.adb, libgnat/a-cborse.ads,
2980 libgnat/a-cbprqu.adb, libgnat/a-cbprqu.ads,
2981 libgnat/a-cbsyqu.adb, libgnat/a-cbsyqu.ads,
2982 libgnat/a-cdlili.adb, libgnat/a-cdlili.ads,
2983 libgnat/a-cidlli.adb, libgnat/a-cidlli.ads,
2984 libgnat/a-cihama.adb, libgnat/a-cihama.ads,
2985 libgnat/a-cihase.adb, libgnat/a-cihase.ads,
2986 libgnat/a-cimutr.adb, libgnat/a-cimutr.ads,
2987 libgnat/a-ciorma.adb, libgnat/a-ciorma.ads,
2988 libgnat/a-ciormu.adb, libgnat/a-ciormu.ads,
2989 libgnat/a-ciorse.adb, libgnat/a-ciorse.ads,
2990 libgnat/a-cohama.adb, libgnat/a-cohama.ads,
2991 libgnat/a-cohase.adb, libgnat/a-cohase.ads,
2992 libgnat/a-coinve.adb, libgnat/a-coinve.ads,
2993 libgnat/a-comutr.adb, libgnat/a-comutr.ads,
2994 libgnat/a-convec.adb, libgnat/a-convec.ads,
2995 libgnat/a-coorma.adb, libgnat/a-coorma.ads,
2996 libgnat/a-coormu.adb, libgnat/a-coormu.ads,
2997 libgnat/a-coorse.adb, libgnat/a-coorse.ads: Add SPARK_Mode =>
3000 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
3002 * sem_ch3.adb (Delayed_Aspect_Present): Fix oversight in loop.
3003 * freeze.adb (Freeze_Object_Declaration): Use Declaration_Node
3004 instead of Parent for the sake of consistency.
3006 2020-07-15 Javier Miranda <miranda@adacore.com>
3008 * sem_attr.adb (Resolve_Attribute): Resolve overloaded
3009 N_Selected_Component prefix of 'Access. Required to handle
3010 overloaded prefixed view of protected subprograms.
3012 2020-07-15 Arnaud Charlet <charlet@adacore.com>
3014 * doc/gnat_ugn/about_this_guide.rst: Remove old section and
3015 update for Ada 202x.
3016 * doc/gnat_ugn/getting_started_with_gnat.rst: Add a system
3017 requirements section. Remove obsolete section and minimal
3018 rewording on the getting started section.
3019 * gnat_ugn.texi: Regenerate.
3021 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
3023 * exp_ch5.adb (Expand_Assign_Array): Use short-circuit operator
3025 * sem_res.adb (Resolve_Indexed_Component): Fix style in comment.
3026 * sem_util.adb (Is_Effectively_Volatile_Object): Handle slices
3027 just like indexed components; handle qualified expressions and
3028 type conversions lie in Is_OK_Volatile_Context.
3029 (Is_OK_Volatile_Context): Handle qualified expressions just like
3032 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
3034 * sem_prag.adb (Atomic_Components): Simplify with Ekind_In.
3035 (Complex_Representation): Fix type of E_Id, which just like when
3036 for pragma Atomic_Components will hold an N_Identifier node, not
3038 * sem_util.adb (Is_Effectively_Volatile): Refactor to avoid
3039 unnecessary computation.
3041 2020-07-15 Arnaud Charlet <charlet@adacore.com>
3043 * inline.adb, inline.ads
3044 (Inline_Static_Expression_Function_Call): Renamed
3045 Inline_Static_Function_Call.
3046 * sem_ch13.adb (Analyze_Aspect_Static): Allow static intrinsic
3047 imported functions under -gnatX.
3048 * sem_util.ads, sem_util.adb (Is_Static_Expression_Function):
3049 Renamed Is_Static_Function.
3050 (Is_Static_Expression_Function_Call): Renamed
3051 Is_Static_Function_Call.
3052 * sem_ch6.adb, sem_elab.adb, sem_res.adb: Update calls to
3053 Is_Static_Function*.
3054 * sem_eval.adb (Fold_Dummy, Eval_Intrinsic_Call, Fold_Shift):
3056 (Eval_Call): Add support for intrinsic calls, code refactoring.
3057 (Eval_Entity_Name): Code refactoring.
3058 (Eval_Logical_Op): Update comment.
3059 (Eval_Shift): Call Fold_Shift. Update comments.
3060 * par-prag.adb (Par [Pragma_Extensions_Allowed]): Set
3061 Ada_Version to Ada_Version_Type'Last to handle
3062 Extensions_Allowed (On) consistently.
3063 * opt.ads (Extensions_Allowed): Update documentation.
3064 * sem_attr.adb: Update comment.
3065 * doc/gnat_rm/implementation_defined_pragmas.rst: Update
3066 documentation of Extensions_Allowed.
3067 * gnat_rm.texi: Regenerate.
3069 2020-07-15 Arnaud Charlet <charlet@adacore.com>
3071 * sem_aggr.adb (Resolve_Iterated_Component_Association): Ensure
3072 Typ is never accessed uninitialized.
3074 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
3076 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Fix typo.
3077 * gnat_rm.texi: Regenerate.
3078 * libgnat/s-secsta.ads (Memory_Alignment): Likewise.
3080 2020-07-15 Gary Dismukes <dismukes@adacore.com>
3082 * exp_ch6.adb: Add a comma and fix a typo (machinary =>
3083 machinery) in comment.
3084 * exp_aggr.adb: Reformat, fix capitalization, and add a couple
3085 of commas in a comment. Adjust columns in several code
3087 * sem_aggr.adb: Reformat and add a comma in a comment.
3089 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
3091 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Use the Sloc of
3092 the delay statement in the expansion.
3094 2020-07-15 Ed Schonberg <schonberg@adacore.com>
3096 * sem_aggr.adb (Resolve_Iterated_Component_Association): New
3097 procedure, internal to Resolve_Container_Aggregate, to complete
3098 semantic analysis of Iterated_Component_Associations.
3099 * exp_aggr.adb (Expand_Iterated_Component): New procedure,
3100 internal to Expand_Container_Aggregate, to expand the construct
3101 into an implicit loop that performs individual insertions into
3102 the target aggregate.
3104 2020-07-15 Justin Squirek <squirek@adacore.com>
3106 * exp_ch6.adb (Make_Build_In_Place_Call_Allocator): Normalize
3107 the associated node for internally generated objects to be like
3108 their SOAAT counter-parts.
3110 2020-07-15 Arnaud Charlet <charlet@adacore.com>
3112 * libgnat/g-socket.adb (Wait_On_Socket): Fix potentially
3113 uninitialized variable.
3115 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3117 * sem_ch8.adb (Find_Direct_Name): Fix code to match the comment.
3119 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
3121 * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Address>:
3122 Issue an unconditional warning for an overlay that changes the
3123 scalar storage order.
3125 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3127 * sem_ch8.adb (Is_Actual_Parameter): Fix processing when parent
3128 is a procedure call statement; extend comment.
3130 2020-07-10 Bob Duff <duff@adacore.com>
3132 * sem_res.adb (Resolve_Expression_With_Actions): Check the rules
3133 of AI12-0368, and mark the declare expression as static or known
3134 at compile time as appropriate.
3135 * sem_ch4.adb: Minor reformatting.
3136 * libgnat/a-stoufo.ads, libgnat/a-stoufo.adb: Allow up to 9
3137 replacement parameters. I'm planning to use this in the test
3138 case for this ticket.
3140 2020-07-10 Ed Schonberg <schonberg@adacore.com>
3142 * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Create a
3143 proper signature when the access type denotes a parameterless
3145 * exp_ch6.adb (Expand_Call): Handle properly a parameterless
3146 indirect call when the corresponding access type has contracts.
3148 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
3151 (Convert_To_Positional): Add Dims local variable
3152 and pass it in calls to Is_Flat and Flatten.
3153 (Check_Static_Components): Pass Dims in call to
3155 (Nonflattenable_Next_Aggr): New predicate.
3156 (Flatten): Add Dims parameter and Expr local variable. Call
3157 Nonflattenable_Next_Aggr in a couple of places. In the case
3158 when an Others choice is present, check that the element is
3159 either static or a nested aggregate that can be flattened,
3160 before disregarding the replication limit for elaboration
3161 purposes. Check that a nested array is flattenable in the case
3162 of a multidimensional array in any position. Remove redundant
3163 check in the Others case and pass Dims in call to
3164 Is_Static_Element. Use Expr variable.
3165 (Is_Flat): Change type of Dims parameter from Int to Nat.
3166 (Is_Static_Element): Add Dims parameter. Replace tests on
3167 literals with call to Compile_Time_Known_Value. If everything
3168 else failed and the dimension is 1, preanalyze the expression
3169 before calling again Compile_Time_Known_Value on it. Return
3171 (Late_Expansion): Do not expand further if the assignment to the
3172 target can be done directly by the back end.
3174 2020-07-10 Arnaud Charlet <charlet@adacore.com>
3176 * osint-c.adb (Set_File_Name): Preserve casing of file.
3177 * osint.adb (File_Names_Equal): New.
3178 (Executable_Name): Use File_Equal instead of
3179 Canonical_Case_File_Name.
3181 2020-07-10 Pascal Obry <obry@adacore.com>
3183 * libgnat/g-socket.adb (Wait_On_Socket): Fix memory leaks and
3184 file descriptor leaks. A memory leak was created each time the
3185 routine was called without a selector (Selector = Null). Also,
3186 in case of exception in the routine a memory leak and descriptor
3187 leak was created as the created file selector was not closed.
3189 2020-07-10 Pascal Obry <obry@adacore.com>
3191 * libgnat/g-socket.adb: Minor style fixes.
3193 2020-07-10 Javier Miranda <miranda@adacore.com>
3196 (Immediate_Context_Implies_Is_Potentially_Unevaluated): New
3198 (Is_Potentially_Unevaluated): Do not stop climbing the tree on
3199 the first candidate subexpression; required to handle nested
3202 2020-07-10 Gary Dismukes <dismukes@adacore.com>
3204 * exp_aggr.adb, exp_spark.adb, sem_ch13.ads, sem_ch13.adb,
3205 snames.ads-tmpl: Minor reformatting and typo fixes.
3207 2020-07-10 Yannick Moy <moy@adacore.com>
3209 * sem_util.adb (Has_Enabled_Property): Add handling of
3210 non-variable objects.
3212 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3214 * sem_ch3.adb (Check_Completion): Refactor chained
3215 if-then-elsif-... statement to be more like a case
3216 statement (note: we can't simply use case statement because of
3217 Is_Intrinsic_Subprogram in the first condition).
3219 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3221 * einfo.ads (E_Protected_Object): Enumeration literal removed.
3222 * lib-xref.ads (Xref_Entity_Letters): Remove reference to
3224 * sem_ch3.adb (Check_Completion): Likewise.
3225 * sem_util.adb (Has_Enabled_Property): Likewise.
3227 2020-07-10 Arnaud Charlet <charlet@adacore.com>
3229 * exp_aggr.adb (Max_Aggregate_Size): Use small limit for
3230 aggregate inside subprograms.
3231 * sprint.adb (Sprint_Node_Actual [N_Object_Declaration]): Do not
3232 print the initialization expression if the No_Initialization
3234 * sem_util.ads, sem_util.adb (Predicate_Enabled): New.
3235 * exp_ch4.adb (Expand_N_Type_Conversion): Code cleanup and apply
3236 predicate check consistently.
3237 * exp_ch6.adb (Expand_Actuals.By_Ref_Predicate_Check): Ditto.
3238 * sem_ch3.adb (Analyze_Object_Declaration): Ditto.
3239 * exp_ch3.adb (Build_Assignment): Revert handling of predicate
3240 check for allocators with qualified expressions, now handled in
3241 Freeze_Expression directly.
3242 * sem_aggr.adb: Fix typos.
3243 * checks.adb: Code refactoring: use Predicate_Enabled.
3244 (Apply_Predicate_Check): Code cleanup.
3245 * freeze.adb (Freeze_Expression): Freeze the subtype mark before
3246 a qualified expression on an allocator.
3247 * exp_util.ads, exp_util.adb (Within_Internal_Subprogram):
3248 Renamed Predicate_Check_In_Scope to clarify usage, refine
3249 handling of predicates within init procs which should be enabled
3250 when the node comes from source.
3251 * sem_ch13.adb (Freeze_Entity_Checks): Update call to
3252 Predicate_Check_In_Scope.
3254 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
3256 * exp_ch4.adb (Expand_Array_Comparison): Reformat.
3257 (Expand_Concatenate): Use standard size values directly and use
3258 Standard_Long_Long_Unsigned instead of RE_Long_Long_Unsigned.
3259 (Expand_Modular_Op): Use Standard_Long_Long_Integer in case the
3260 modulus is larger than Integer.
3261 (Expand_N_Op_Expon): Use standard size value directly.
3262 (Narrow_Large_Operation): Use Uint instead of Nat for sizes and
3263 use a local variable for the size of the type.
3264 (Get_Size_For_Range): Return Uint instead of Nat.
3265 (Is_OK_For_Range): Take Uint instead of Nat.
3267 2020-07-10 Javier Miranda <miranda@adacore.com>
3269 * exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator):
3270 Build the internal anonymous access type using as a reference
3271 the designated type imposed by the context (instead of using the
3272 return type of the called function).
3274 2020-07-10 Yannick Moy <moy@adacore.com>
3276 * sem_res.adb (Resolve_Actuals): Protect call to
3277 Is_Valued_Procedure.
3279 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3281 * sem_ch3.adb (Process_Discriminants): Revert recent change to
3282 location of Set_Ekind; detect effectively volatile discriminants
3285 2020-07-10 Joffrey Huguet <huguet@adacore.com>
3287 * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Add global
3288 contract (Global => null) to all functions.
3290 2020-07-10 Ed Schonberg <schonberg@adacore.com>
3292 * aspects.ads: Add Aspect_Aggregate.
3293 * exp_aggr.adb (Expand_Container_Aggregate): Expand positional
3294 container aggregates into separate initialization and insertion
3296 * sem_aggr.ads (Resolve_Container_Aggregate): New subprogram.
3297 * sem_aggr.adb (Resolve_Container_Aggregate): Parse aspect
3298 aggregate, establish element types and key types if present, and
3299 resolve aggregate components.
3300 * sem_ch13.ads (Parse_Aspect_Aggregate): Public subprogram used
3301 in validation, resolution and expansion of container aggregates
3303 (Parse_Aspect_Aggregate): Retrieve names of primitives specified
3304 in aspect specification.
3305 (Validate_Aspect_Aggregate): Check legality of specified
3306 operations given in aspect specification, before nane
3308 (Resolve_Aspect_Aggregate): At freeze point resolve operations
3309 and verify that given operations have the required profile.
3310 * sem_res.adb (Resolve): Call Resolve_Aspect_Aggregate if aspect
3311 is present for type.
3312 * snames.ads-tmpl: Add names used in aspect Aggregate: Empty,
3313 Add_Named, Add_Unnamed, New_Indexed, Assign_Indexed.
3315 2020-07-10 Arnaud Charlet <charlet@adacore.com>
3317 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-shabig.o.
3318 * libgnat/s-shabig.ads: New file to share definitions.
3319 * libgnat/s-genbig.ads, libgnat/s-genbig.adb: Reorganized to
3320 make it more generic and flexible in terms of memory allocation
3321 and data structure returned.
3322 (To_String): Moved to System.Generic_Bignums to allow sharing
3324 (Big_And, Big_Or, Big_Shift_Left, Big_Shift_Right): New.
3325 * libgnat/s-bignum.adb, libgnat/s-bignum.ads: Adapt to new
3326 System.Generic_Bignums spec.
3327 * libgnat/a-nbnbin.adb: Likewise.
3328 (To_String): Moved to System.Generic_Bignums to allow sharing
3330 * libgnat/a-nbnbre.adb (Normalize): Fix handling of Num = 0
3331 leading to an exception.
3333 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
3335 * freeze.adb (Freeze_Expr_Types): Replace call to Find_Aspect
3336 with call to Find_Value_Of_Aspect and adjust accordingly.
3338 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
3340 * einfo.adb (Write_Field24_Name): Handle E_Loop_Parameter.
3341 * freeze.adb (Freeze_Expr_Types): Freeze the iterator type used as
3342 Default_Iterator of the name of an N_Iterator_Specification node.
3344 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
3346 * checks.adb (Determine_Range): Deal with Min and Max attributes.
3347 * exp_ch6.adb (Expand_Call_Helper): When generating code to pass
3348 the accessibility level to the caller in the case of an actual
3349 which is an if-expression, also remove the nodes created after
3350 the declaration of the dummy temporary.
3351 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use Natural as
3352 the type of the minimum accessibility level object.
3354 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3356 * sem_ch3.adb (Process_Discriminants): Set Ekind of the
3357 processed discriminant entity before passing to
3358 Is_Effectively_Volatile, which was crashing on a failed
3360 * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Prevent
3361 call to No_Caching_Enabled with entities other than variables,
3362 which was crashing on a failed assertion.
3363 (Analyze_Pragma): Style cleanups.
3364 * sem_util.adb (Is_Effectively_Volatile): Enforce comment with
3365 an assertion; prevent call to No_Caching_Enabled with entities
3366 other than variables.
3367 (Is_Effectively_Volatile_Object): Only call
3368 Is_Effectively_Volatile on objects, not on types.
3369 (No_Caching_Enabled): Enforce comment with an assertion.
3371 2020-07-10 Yannick Moy <moy@adacore.com>
3373 * debug.adb: Update comments to free usage of -gnatdF.
3375 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3377 * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Refactored from
3378 Expand_SPARK_N_Attribute_Reference; rewrite into N_Aggregate or
3379 N_Delta_Aggregate depending on what is being rewritten.
3380 (Expand_SPARK_N_Delta_Aggregate): New routine to expand
3382 (Expand_SPARK_N_Attribute_Reference): Call the refactored
3385 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3387 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Fix
3388 expansion of attribute Update.
3390 2020-07-10 Arnaud Charlet <charlet@adacore.com>
3392 * sem.adb (Walk_Library_Items): Fix handling of Ghost units.
3394 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3396 * tracebak.c [generic implementation]: Add pragma GCC diagnostic
3397 to disable warning about __builtin_frame_address.
3399 2020-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
3401 * socket.c [_WIN32] (__gnat_minus_500ms): Parentheses around &&
3402 operations. Remove notes about TN in comment.
3404 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3406 * adaint.h (__gnat_expect_portable_execvp): Fix prototype.
3407 (__gnat_expect_poll): Likewise.
3408 * expect.c [_WIN32]: Include adaint.h file.
3409 (__gnat_waitpid): Remove useless variable.
3410 (__gnat_expect_portable_execvp): Add ATTRIBUTE_UNUSED on parameter.
3411 * raise-gcc.c [SEH] (__gnat_personality_v0): Add ATTRIBUTE_UNUSED.
3412 * socket.c [_WIN32] (__gnat_getservbyport): Add ATTRIBUTE_UNUSED on
3413 a couple of parameters.
3414 (__gnat_gethostbyname): Likewise.
3415 (__gnat_gethostbyaddr): Likewise.
3416 (__gnat_getservbyname): Likewise.
3417 (__gnat_last_socket_in_set): Use variables local to loops.
3418 (__gnat_socket_ioctl): Cast 3rd parameter to proper type if _WIN32.
3419 (__gnat_inet_pton): Cast 2nd parameter to proper type if _WIN32.
3420 * sysdep.c (__gnat_localtime_tzoff): Remove superfluous test.
3421 * terminals.c [_WIN32]: Include io.h file.
3422 (is_gui_app): Remove useless variables and fix unsigned comparison.
3423 (nt_spawnve): Add ATTRIBUTE_UNUSED on first parameter. Initialize a
3424 local variable and remove others that are useless. Add missing cast
3425 (__gnat_setup_child_communication): Remove useless variable and call
3426 Use proper formatting string in call to sprintf.
3427 (__gnat_setup_parent_communication): Cast to proper type.
3428 (find_child_console): Fix prototype and remove useless variable.
3429 (find_process_handle): Likewise.
3430 (_gnat_interrupt_process): Move to after __gnat_interrupt_pid.
3431 (__gnat_reset_tty): Add ATTRIBUTE_UNUSED on parameter, remove return
3432 (__gnat_setup_winsize): Add ATTRIBUTE_UNUSED on all parameters.
3434 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3436 * exp_ch4.adb (Expand_N_Allocator): In the subtype mark case, do
3437 not apply constraint checks if the No_Initialization flag is set.
3439 2020-07-08 Javier Miranda <miranda@adacore.com>
3442 (Build_Class_Wide_Master): Insert the declaration of _Master
3443 before its use; required to avoid assertion failure in the
3446 2020-07-08 Arnaud Charlet <charlet@adacore.com>
3448 * libgnat/i-cexten.ads (long_long, unsigned_long_long): Now
3449 subtypes of Interfaces.C types.
3450 * libgnat/a-calcon.ads, libgnat/a-calcon.adb
3451 (To_Unix_Nano_Time): Use Interfaces.C.long_long instead of
3452 Interfaces.C.Extensions.long_long.
3454 2020-07-08 Vasiliy Fofanov <fofanov@adacore.com>
3456 * debug.adb: Document new switch.
3457 * exp_ch6.adb (Warn_BIP): New function that warns if the switch
3458 is on. Call it from Make_Build_In_Place_* functions. Warn_BIP
3459 is not needed in Make_Build_In_Place_Iface_*, because those call
3460 Make_Build_In_Place_Call_In_Object_Declaration or similar.
3462 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3464 * erroutc.adb (Matches): Fix comments.
3466 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3468 * freeze.adb (Has_Decl_In_List): New predicate to check that an
3469 entity is declared in a list of nodes.
3470 (Freeze_Expression): Use it to deal with Expression_With_Actions,
3471 short-circuit expression, if- and case-expression and ensure that
3472 the freeze node is put onto their Actions list if the entity is
3475 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3477 * freeze.adb (In_Expanded_Body): Return true for the body of a
3478 generated predicate function.
3480 2020-07-08 Gary Dismukes <dismukes@adacore.com>
3482 * sem_attr.adb: Remove hyphens in comments, plus minor code
3484 * sem_ch13.adb: Fix typo (that => than).
3485 * sem_util.adb: Add hyphen in comment ("class-wide").
3487 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3489 * freeze.adb (Freeze_Array_Type): Add comment on implementation
3490 choice for byte-packed array types.
3492 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3494 * sem_attr.adb (Analyze_Attribute): Correct prefix of 'Result
3495 this prefix is a generic function but the enclosing aspect or
3496 pragma is attached to its instance.
3497 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Analyze
3498 generic subprogram formal parameters (including the implicit
3499 result of a generic function) and only then analyse its aspects,
3500 because with Relaxed_Initialization the aspect expression might
3501 refer to those formal parameters.
3502 * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Accept
3503 aspect on generic subprograms; install formal parameters of a
3504 generic subprogram but not formal parameters of the generic unit
3505 itself (the previous code was inspired by aspects Post and
3506 Depends, where both kinds of formals are allowed).
3507 * sem_util.ads (Enter_Name): Fix name of a subprogram referenced
3510 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3512 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Call
3513 Analyze_Aspect_Specifications after setting Ekind of the
3515 * sem_ch13.adb (Analyze_Aspect_Yield): Remove minimal decoration
3516 of generic subprograms.
3518 2020-07-08 Arnaud Charlet <charlet@adacore.com>
3520 * sem_prag.adb (Process_Inline): Check for duplicate
3521 pragma+aspect Inline. Minor code cleanup.
3522 (Check_Duplicate_Pragma): Add warning for duplicate
3523 pragma [No_]Inline under -gnatwr.
3524 * sinfo.ads, sinfo.adb (Next_Rep_Item): Allow N_Null_Statement
3525 which can appear when a pragma is rewritten.
3526 * sem_util.ads, sem_util.adb, bindo-writers.adb: Fix bad
3527 copy/paste now flagged.
3528 * libgnat/s-mmap.ads: Remove redundant pragma Inline.
3530 2020-07-08 Ed Schonberg <schonberg@adacore.com>
3532 * sem_util.adb (Build_Class_Wide_Clone_Body): Update entities to
3533 refer to the right spec.
3535 2020-07-08 Bob Duff <duff@adacore.com>
3537 * sem_ch13.adb (Predicate_Failure): Check that the type has
3538 predicates. Remove the setting of Has_Delayed_Aspects and
3539 Freeze_Node, because (if the code is legal) it should have
3540 already been done by the predicate aspect.
3542 2020-07-08 Gary Dismukes <dismukes@adacore.com>
3544 * par-ch4.adb (P_Iterated_Component_Association): Typo
3547 2020-07-08 Ed Schonberg <schonberg@adacore.com>
3549 * par.adb (P_Iterator_Specification): Make public for use in
3550 other parser subprograms.
3551 * par-ch4.adb (P_Iterated_Component_Association): In Ada_2020,
3552 recognize use of Iterator_Specification in an element iterator.
3553 To simplify disambiguation between the two iterator forms, mark
3554 the component association as carrying an Iterator_Specification
3555 only when the element iterator (using "OF") is used.
3556 * par-ch5.adb (P_Loop_Parameter_Specification): In Ada_2020,
3557 parse iterator filter when present.
3558 (P_Iterator_Specification): Ditto. Remove declaration of
3559 P_Iterator_Specification, now in parent unit.
3560 * exp_ch5.adb (Expand_N_Loop_Statement): Apply Iterator filter
3562 (Expand_Iterator_Loop_Over_Array): Ditto.
3563 (Expand_Iterator_Loop_Over_Container): Ditto.
3564 * sem_aggr.adb (Resolve_Array_Aggregate): Emit error nessage if
3565 an iterated component association includes a iterator
3566 specificcation with an element iterator, i.e. one that uses the
3568 * sem_ch5.adb (Analyze_Iterator_Specification): Analyze Iterator
3569 filter when present.
3570 (Analyze_Loop_Parameter_Specification): Ditto.
3571 * sinfo.adb: Suprogram bodies for new syntactic element
3573 * sinfo.ads: Add Iterator_Filter to relevant nodes. Structure
3574 of Component_Association and Iteroted_Component_Association
3575 nodes is modified to take into account the possible presence of
3576 an iterator specification in the latter.
3578 2020-07-08 Yannick Moy <moy@adacore.com>
3580 * sem_util.ads, sem_util.adb (Is_Attribute_Loop_Entry): New
3581 function for GNATProve.
3583 2020-07-08 Ghjuvan Lacambre <lacambre@adacore.com>
3585 * sem_ch13.adb (Analyze_Record_Representation_Clause,
3586 Check_Record_Representation_Clause): Add expected and actual
3587 size to error message.
3589 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3591 * sem_util.ads, sem_util.adb (Safe_To_Capture_Value): Return
3592 True for in-parameters.
3594 2020-07-08 Justin Squirek <squirek@adacore.com>
3596 * exp_attr.adb (Expand_Attribute): Set
3597 Stores_Attribute_Old_Prefix to generated renamings of 'Old
3598 constants for later use in generating finalization routines.
3599 * exp_ch7.adb (Build_Finalizer): Minor reformatting. Use "or
3602 2020-07-08 Gary Dismukes <dismukes@adacore.com>
3604 * exp_ch6.adb (Expand_Simple_Function_Return): Remove ugly code
3605 that was copying the return expression, resetting Analyzed
3606 flags, etc. for the return expression of static expression
3608 * inline.adb (Inline_Static_Expression_Function_Call): Set the
3609 Parent of the copied expression to that of the call. This avoids
3610 a blowup in Insert_Actions when GNATprove_Mode is set and there
3611 are nested SEF calls. Add ??? comment.
3612 * sem_ch6.adb (Analyze_Expression_Function): In the case of a
3613 static expression function, create a new copy of the expression
3614 and replace the function's expression with the copy; the
3615 original expression is used in the expression function's body
3616 and will be analyzed and rewritten, and we need to save a clean
3617 copy for later use in processing static calls to the function.
3618 This allows removing the kludgy code that was in
3619 Expand_Simple_Function_Return.
3620 * sem_eval.adb (Eval_Qualified_Expression): Return immediately
3621 if any errors have been posted on the qualified expression, to
3622 avoid blowups when GNATprove_Mode is enabled (or with -gnatd.F),
3623 since illegal static expressions are handled differently in that
3624 case and attempting to fold such expressions would fail.
3626 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3628 * repinfo.adb (Compute_Max_Length): Skip hidden discriminants.
3629 (List_Record_Layout): Likewise.
3630 (List_Structural_Record_Layout): Use First_Discriminant instead
3631 of First_Stored_Discriminant and Next_Discriminant instead of
3632 Next_Stored_Discriminant to walk the list of discriminants.
3634 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3636 * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Analyze
3637 optional boolean expressions.
3638 * sem_util.ads, sem_util.adb (Has_Relaxed_Initialization): Adapt
3639 query; update comment.
3641 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3643 * einfo.ads (Current_Value): Fix typo in comment.
3644 * exp_ch2.adb (Expand_Current_Value): Remove unnecessary "Start
3645 of processing ..." comment.
3646 * exp_util.adb (Set_Entity_Current_Value): Fix unbalanced paren
3648 (Get_Current_Value_Condition): Fix layout in comment.
3649 * sem_ch5.adb (Analyze_Cond_Then): Replace commented condition
3652 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3654 * exp_ch5.adb (Expand_N_If_Statement): Detect True/False
3655 prefixed with Standard.
3657 2020-07-08 Bob Duff <duff@adacore.com>
3659 * sem_ch13.adb (Analyze_Aspect_Specifications): Add freeze node
3660 for the Underlying_Full_View if it exists. The freeze node is
3661 what triggers the generation of the predicate function.
3662 * freeze.adb: Minor reformatting.
3664 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3666 * exp_ch4.adb (Narrow_Large_Operation): Use the base type instead
3667 of the first subtype of standard integer types as narrower type.
3669 2020-07-07 Eric Botcazou <ebotcazou@adacore.com>
3671 * freeze.adb (Freeze_Array_Type): Use Ctyp more consistently.
3672 Move code setting the alignment in the non-packed case to...
3673 * layout.adb (Layout_Type): ...here.
3675 2020-07-07 Bob Duff <duff@adacore.com>
3677 * treepr.adb (Print_Node): Add code to test Is_Extension.
3679 2020-07-07 Arnaud Charlet <charlet@adacore.com>
3681 * sem_ch4.adb (Try_Container_Indexing): Add ??? comment. Protect
3682 against malformed tree in case of errors.
3684 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3686 * einfo.adb, sem_ch10.adb, sem_ch12.adb, sem_ch8.adb: Use
3687 Is_Generic_Subprogram.
3689 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3691 * sem_ch8.adb (Analyze_Use_Package): Replace low-level,
3692 error-prone Ekind_In tests with high-level Is_Generic_Subprogram
3695 2020-07-07 Arnaud Charlet <charlet@adacore.com>
3697 * sem_ch6.adb (Check_Formal_Subprogram_Conformance): New
3698 subprogram to handle checking without systematically emitting an
3700 (Check_Conformance): Update call to
3701 Check_Formal_Subprogram_Conformance and fix handling of Conforms
3702 and Errmsg parameters.
3704 2020-07-07 Arnaud Charlet <charlet@adacore.com>
3706 * exp_ch4.adb (Tagged_Membership): Generate a call to
3707 CW_Membership instead of using Build_CW_Membership.
3708 (Expand_N_In): Remove wrong handling of null access types and
3709 corresponding comment.
3710 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Generate a
3711 call to CW_Membership instead of using Build_CW_Membership.
3712 * rtsfind.ads: Add CW_Membership.
3713 * exp_atag.ads, exp_atag.adb (Build_CW_Membership): Removed.
3714 * einfo.ads: Fix typo.
3715 * libgnat/a-tags.ads, libgnat/a-tags.adb (CW_Membership): Moved
3718 2020-07-07 Ed Schonberg <schonberg@adacore.com>
3720 * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Create
3721 proper subprogram specification for body, using names in the
3722 subprogram declaration but distinct entities.
3723 * exp_ch6.adb (Expand_Call): If this is an indirect call
3724 involving a subprogram wrapper, insert pointer parameter in list
3725 of actuals with a parameter association, not as a positional
3728 2020-07-07 Justin Squirek <squirek@adacore.com>
3730 * exp_ch6.adb (Expand_Branch): Verify the original node is a
3731 conditional expression before recursing further.
3732 (Insert_Level_Assign): Transform assertion into an explicit
3735 2020-07-07 Steve Baird <baird@adacore.com>
3737 * sem_attr.adb (Eval_Attribute): Generalize static evaluation of
3738 Size attribute references to also handle
3739 Max_Size_In_Storage_Elements references.
3741 2020-07-07 Javier Miranda <miranda@adacore.com>
3743 * sem_util.adb (Is_Potentially_Unevaluated): Code cleanup.
3745 2020-07-07 Eric Botcazou <ebotcazou@adacore.com>
3747 * checks.ads (Expander Routines): Update the description of the
3748 Do_Range_Check mechanism.
3749 * checks.adb (Selected_Range_Checks): Fix typo.
3750 * exp_ch9.adb: Add with and use clause for Checks.
3751 (Actual_Index_Expression): Generate a range check if requested.
3752 (Entry_Index_Expression): Likewise.
3753 * sem_attr.adb (Resolve_Attribute) <Attribute_Count>: Call
3754 Apply_Scalar_Range_Check instead of Apply_Range_Check.
3755 * sem_ch9.adb (Analyze_Accept_Statement): Likewise.
3756 * sem_res.adb (Resolve_Entry): Likewise, after having set the
3757 actual index type on the prefix of the indexed component.
3758 (Resolve_Indexed_Component): Remove useless conditional construct.
3760 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3762 * contracts.adb (Analyze_Entry_Or_Subprogram_Contract,
3763 Process_Preconditions_For): Freeze expression that has been
3764 relocated to pragma Precondition, not the expression which is
3765 still in the aspect.
3767 2020-07-07 Arnaud Charlet <charlet@adacore.com>
3769 * sem_ch6.adb (Check_Conformance): Remove unnecessary (and
3771 * sem_ch8.adb (Check_Null_Exclusion): Post error at proper
3772 location. Introduce new helper Null_Exclusion_Mismatch and fix
3773 implementation wrt formal subprograms used in generic bodies.
3774 (Analyze_Subprogram_Renaming): Fix missing setting of
3776 (Analyze_Object_Renaming): Replace "in Anonymous_Access_Kind" by
3777 Is_Anonymous_Access_Type.
3778 * sem_util.adb (Has_Null_Exclusion): Fix handling of
3779 N_Parameter_Specification.
3780 * sem_ch12.adb (Instantiate_Object): Replace "in
3781 Anonymous_Access_Kind" by Is_Anonymous_Access_Type.
3783 2020-07-07 Ed Schonberg <schonberg@adacore.com>
3785 * freeze.adb (Freeze_Expr_Types): Freeze the designated type of
3786 the explicit dereference.
3788 2020-07-07 Javier Miranda <miranda@adacore.com>
3790 * sem_util.adb (Is_Potentially_Unevaluated): Protect reading
3793 2020-07-07 Bob Duff <duff@adacore.com>
3795 * libgnat/g-catiio.adb (Value, Parse_ISO_8601): Unsuppress
3796 checks, and don't rely on 'Valid.
3798 2020-07-07 Arnaud Charlet <charlet@adacore.com>
3800 * Makefile.rtl: Remove dead code.
3801 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
3802 Document gnatbind -xdr switch.
3803 * gnat_ugn.texi: Regenerate.
3805 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3807 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
3808 (Validity Checking): Add "p" to the list of switches enabled by
3810 * gnat_ugn.texi: Regenerate.
3812 2020-07-07 Ghjuvan Lacambre <lacambre@adacore.com>
3814 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Add call
3815 to Check_Restriction_No_Specification_Of_Aspect.
3816 * sem_prag.adb (Analyze_Pragma): Likewise.
3817 * restrict.ads (Check_Restriction_No_Specification_Of_Aspect):
3818 Mention possible new node kinds in documentation.
3819 * restrict.adb (Check_Restriction_No_Specification_Of_Aspect):
3820 Retrieve aspect id from different fields if given node is an
3821 N_Pragma or an N_Attribute_Definition_Clause.
3823 2020-07-07 Gary Dismukes <dismukes@adacore.com>
3825 * contracts.adb (Add_Invariant_And_Predicate_Checks): Relax the
3826 condition for doing invariant checks so that in-mode parameters
3827 of procedures are also checked (required by AI05-0289, and
3828 restricted to procedures by AI12-0044). This is done in a
3829 procedure's nested postconditions procedure.
3830 * exp_ch6.adb (Expand_Actuals): Also perform postcall invariant
3831 checks for in parameters of procedures (but not functions).
3832 Moved invariant-checking code to end of Expand_Actuals
3833 (including the nested function Is_Public_Subp).
3835 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3837 * sem_aggr.adb (Resolve_Delta_Array_Aggregate): Make Index_Type
3840 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3842 * exp_aggr.adb (Expand_N_Delta_Aggregate): Use type of the delta
3843 base expression for the anonymous object of the delta aggregate.
3845 2020-07-07 Javier Miranda <miranda@adacore.com>
3847 * sem_util.ads (Interval_Lists): Reordering routine.
3848 * sem_util.adb (Interval_Lists): Reordering routines to keep
3849 them alphabetically ordered.
3851 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3853 * sem_attr.adb (Resolve_Attribute): Do not call
3854 Check_Non_Static_Context.
3856 2020-07-07 Arnaud Charlet <charlet@adacore.com>
3858 * sem_elab.adb (Is_Guaranteed_ABE): Take into account null
3861 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3863 * sem_ch5.adb (Analyze_Assignment): Reuse Is_Assignable.
3865 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3867 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Add scalar
3868 range checks for 'Update on arrays just like for 'Update on
3870 * sem_attr.adb (Analyze_Array_Component_Update): Do not set
3871 range checks for single-dimensional arrays.
3872 (Resolve_Attribute): Do not set range checks for both single-
3873 and multi- dimensional arrays.
3875 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3877 * sem.ads (Sem): Fix description.
3879 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3881 * sem_ch13.adb (Analyze_Relaxed_Parameter): Fix for protected
3884 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
3886 * checks.adb (Apply_Scalar_Range_Check): Use Is_RTE.
3888 2020-07-06 Bob Duff <duff@adacore.com>
3890 * libgnat/g-catiio.ads: Document newly supported format. Add
3891 ISO_Time constant, for convenience.
3892 * libgnat/g-catiio.adb (Image_Helper): New helper function to do
3893 all the formatting work, called by the two exported Image
3894 functions. Add support for "%:::z" here. Add a Time_Zone
3895 parameter used by the "%:::z" processing. This parameter is not
3896 used for the actual time zone computations; local time is always
3897 used for that, for ease of implementation reasons. It would
3898 make sense to use Append throughout this function, but that's a
3899 cleanup for another day.
3900 (Image): Modify these to pass the local time zone, or the
3901 specified time zone, as appropriate.
3903 2020-07-06 Bob Duff <duff@adacore.com>
3905 * libgnat/g-catiio.ads: Change the regular expression that
3906 documents the allowed format to match what ISO-8601 allows.
3907 * libgnat/g-catiio.adb (Scan_Subsecond): Rewrite so it doesn't
3908 assume the subsecond comes last.
3909 (Parse_ISO_8601): Parse an optional subsecond, followed by an
3910 optional time zone, rather than making these alternatives to
3913 2020-07-06 Bob Duff <duff@adacore.com>
3915 * libgnat/g-catiio.adb (Parse_ISO_8601): Minor cleanups:
3916 Give some objects clearer names.
3917 Make some objects more local to where they are used.
3918 Remove some validity checks that can't fail, because some of
3919 the variables tested have been moved so they're not visible here.
3920 Anyway, Wrong_Syntax is about errors in the input, not data
3922 Use Time_Zone_Seen instead of Local_Sign = ' ' to determine
3923 that a time zone indication was seen.
3924 We don't need to distinguish two different kinds of
3925 syntax error (End_Of_Source_Reached and Wrong_Syntax),
3926 so use Wrong_Syntax always.
3927 Remove comment, "Certain scanning scenarios may handle
3928 this exception on their own."; there are no such scenarios.
3930 2020-07-06 Bob Duff <duff@adacore.com>
3932 * libgnat/g-catiio.ads, libgnat/g-catiio.adb (Image): New
3933 function. It might seem like the local-time Image should be
3934 implemented in terms of the Time_Zone Image, but that would be
3935 far harder to implement, so we do it the other way around.
3937 2020-07-06 Thomas Quinot <quinot@adacore.com>
3939 * libgnat/g-sechas.ads, libgnat/g-sechas.adb: Refactor to use
3940 Stream_Element_Array as the internal buffer type.
3941 * libgnat/g-shshco.adb: Adjust to use Stream_Element_Offset
3942 instead of Integer as the index in the internal state buffer.
3944 2020-07-06 Gary Dismukes <dismukes@adacore.com>
3946 * doc/gnat_rm/implementation_defined_pragmas.rst, errout.ads,
3947 erroutc.adb, exp_ch4.adb, exp_ch6.adb, freeze.adb: Comment
3948 rewording/reformatting/typo fixes. Replace "ie." with "that is"
3949 in comment; "can not" -> "cannot", and remove an extraneous
3950 underscore in another comment.
3951 * gnat_rm.texi, gnat_ugn.texi: Regenerate.
3953 2020-07-06 Javier Miranda <miranda@adacore.com>
3955 * sem_util.ads (Interval_Lists.Aggregate_Intervals): New
3957 * sem_util.adb (Has_Null_Others_Choice,
3958 Non_Static_Or_Null_Range, Interval_Lists.Aggregate_Intervals):
3960 (Is_Potentially_Unevaluated): Adding support to detect
3961 potentially unevaluated components of array aggregates.
3963 2020-07-06 Bob Duff <duff@adacore.com>
3965 * libgnat/g-catiio.adb (Parse_ISO_8601): New name for
3966 Parse_ISO_8861_UTC. 8601 is the correct ISO standard number.
3967 Also, "UTC" was confusing. All Time values are represented in
3968 UTC, but the ISO 8601 date strings include a time zone.
3969 If a time zone was specified, call
3970 Ada.Calendar.Formatting.Time_Of instead of
3971 GNAT.Calendar.Time_Of, because the latter adjusts to the current
3972 time zone, whereas we want to use (just) the time zone specified
3973 in the ISO string. This allows us to pass Time_Zone instead to
3974 Time_Of, instead of adjusting by Local_Disp by hand.
3975 If no time zone was specified, call GNAT.Calendar.Time_Of as
3977 Use expanded names to clarify which Time_Of is being called.
3978 Remove redundant comment, and move nonredundant part of the
3979 commment to the spec.
3980 (Value): Minor: use "not in" instead of "or else".
3981 * libgnat/g-catiio.ads: Comment moved here. Correct the ISO
3983 * libgnat/g-calend.adb: Add ??? comments.
3984 * libgnat/a-calend.ads, libgnat/a-calend.adb: Update obsolete
3985 comments regarding the representation of type Time. Move the
3986 information about the epoch (year 2150) to the spec, and avoid
3987 uttering "2150" more than once.
3988 * libgnat/a-catizo.ads (Time_Offset): Add comment.
3990 2020-07-06 Ed Schonberg <schonberg@adacore.com>
3992 * exp_ch5.adb (Find_Component): If the target type is a derived
3993 record type and the required component is a discriminant that is
3994 renamed in the derived type declaration, use the name of the
3995 original discriminant to locate the intended target component.
3997 2020-07-06 Justin Squirek <squirek@adacore.com>
3999 * sem_ch12.adb (Analyze_Associations): Add check for errors on
4000 the generic formal before continuing with instantiation.
4002 2020-07-06 Arnaud Charlet <charlet@adacore.com>
4004 * libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
4005 libgnat/a-nbnbin__gmp.adb: Use more Valid_Big_Integer.
4007 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
4009 * exp_util.ads (Get_Index_Subtype): Fix duplicate "Last".
4011 2020-07-06 Ed Schonberg <schonberg@adacore.com>
4013 * sinfo.ads: Indicate that Field 1 of an N_Delta_Aggregate is
4014 unused. Previously it was erroneously labelled as holding an
4015 Expressions list, in analogy with other aggregate constructs,
4016 but there are no Expressions attached to this node syntactically
4019 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
4021 * sem_attr.adb (Eval_Attribute): Check if constant has an
4022 initialization expression.
4024 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
4026 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
4027 scalar range checks.
4028 * sem_attr.adb (Resolve_Attribute): Do not set scalar range
4029 checks when resolving attribute Update.
4031 2020-07-06 Gary Dismukes <dismukes@adacore.com>
4033 * sem_attr.adb (Analyze_Attribute, Attribute_Constrained): Issue
4034 a warning if the attribute prefix is a current instance
4035 reference within an aspect of a type or subtype.
4036 (Address_Checks): Replace test of Is_Object (Ent) with
4037 Is_Object_Reference (P) so that testing for current instances
4039 (Eval_Attribute): Add test for current instance reference, to
4040 ensure that we still fold array attributes when current
4041 instances are involved, since value prefixes are allowed for
4042 array attributes, and will now be excluded by
4043 Is_Object_Reference.
4044 * sem_util.ads (Is_Current_Instance_Reference_In_Type_Aspect):
4045 New exported query function.
4046 * sem_util.adb (Is_Object_Reference): Return False for the case
4047 where N is a current instance reference within an
4048 aspect_specification of a type or subtype (basically if the
4049 reference occurs within a predicate, invariant, or DIC aspect
4051 (Is_Current_Instance_Reference_In_Type_Aspect): New function
4052 that tests whether a node is a reference to a current instance
4053 formal of a predicate, invariant, or
4054 Default_Initial_Condition (DIC) subprogram.
4056 2020-07-06 Ed Schonberg <schonberg@adacore.com>
4058 * sem_res.adb (Resolve_Declare_Expression): New subprogram, to
4059 install the scope holding local declarations of the expression,
4060 before completing its resolution.
4061 (Resolve): For an Expression_With_Actions that comes from a
4062 source occurrence of a Declare_Expression, call new subprogram.
4064 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
4066 * sem_attr.adb (Analyze_Attribute): Reuse SPARK_Implicit_Load.
4068 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
4070 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Propagate
4071 exception when switch -gnatdk is used and no previous errors are
4073 * sem_eval.adb (Compile_Time_Known_Value, Is_In_Range):
4075 * sem_warn.adb (Operand_Has_Warnings_Suppressed): Likewise.
4077 2020-07-06 Richard Kenner <kenner@adacore.com>
4079 * exp_unst.adb (Needs_Fat_Pointer): Don't check for formal.
4080 (Unnest_Subprogram): Use 'Unchecked_Access instead of 'Access
4081 when populating activation record.
4083 2020-07-06 Eric Botcazou <ebotcazou@adacore.com>
4085 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Rename parameter
4086 from Bit_Packed_Array to Force.
4087 (Expand_Actuals): Do not apply BIP processing if the subprogram
4088 is intrinsic. Adjust calls to Add_Simple_Call_By_Copy_Code and
4089 add one for In parameters whose actual is a CPP constructor call.
4091 2020-07-06 Eric Botcazou <ebotcazou@adacore.com>
4093 * sem_attr.adb (Eval_Attribute): Do not apply range checks in
4094 the case of 'Pos applied to an integer type here.
4096 2020-07-06 Ed Schonberg <schonberg@adacore.com>
4098 * sem_ch3.adb (Analyze_Object_Declaration): If the type is an
4099 Unchecked_Union, and the expression is an aggregate. complete
4100 the analysis and resolution of the aggregate, and treat like a
4101 regular object declaration, instead of as a renaming
4104 2020-07-06 Eric Botcazou <ebotcazou@adacore.com>
4106 * exp_ch9.adb (Is_Potentially_Large_Family): Add documentation.
4107 (Actual_Index_Expression): Use Entry_Index_Type.
4108 (Build_Entry_Count_Expression): Likewise.
4109 (Build_Find_Body_Index): Likewise.
4110 (Collect_Entry_Families): Likewise. Use directly the bounds of
4111 the index type to find out whether the family is large.
4112 (Entry_Index_Expression): Likewise.
4114 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
4116 * sem_res.adb (Resolve_Range): Resolve both low and high bounds
4117 with the range type.
4119 2020-07-06 Arnaud Charlet <charlet@adacore.com>
4121 * aspects.ads (Is_Representation_Aspect):
4122 Default_Component_Value is a representation aspect.
4123 * sem_ch13.adb (Check_Aspect_Too_Late, Rep_Item_Too_Late): Relax
4124 RM 13.1(10) rule wrt primitive operations for Ada 202x.
4126 2020-07-06 Eric Botcazou <ebotcazou@adacore.com>
4128 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Move to library
4129 level and use a new predicate Is_OK_Aggregate to recognize the
4130 aggregates suitable for direct assignment by the back-end.
4131 (Convert_Array_Aggr_In_Allocator): If neither in CodePeer mode nor
4132 generating C code, generate a direct assignment instead of further
4133 expanding if Aggr_Assignment_OK_For_Backend returns true.
4135 2020-07-06 Gary Dismukes <dismukes@adacore.com>
4137 * sem_aux.adb: Add a with clause for Nlists.
4138 (Nearest_Ancestor): Test for the case of concurrent
4139 types (testing for both Is_Concurrent_Type and
4140 Is_Concurrent_Record_Type), and return the first ancestor in the
4141 Interfaces list if present (otherwise will return Empty if no
4143 * sem_ch13.adb (Build_Predicate_Functions): Add a ??? comment
4144 about missing handling for adding predicates when they can be
4145 inherited from multiple progenitors.
4147 2020-07-06 Arnaud Charlet <charlet@adacore.com>
4149 * par-ch6.adb (P_Return_Object_Declaration): Set
4150 Has_Init_Expression flag.
4152 2020-07-02 Eric Botcazou <ebotcazou@adacore.com>
4154 * debug.adb (d.K): Document new usage.
4155 * fe.h (Debug_Flag_Dot_KK): Declare.
4156 * gcc-interface/decl.c (gnat_to_gnu_field): Give an error when the
4157 component overlaps with the parent subtype, except with -gnatd.K.
4159 2020-06-26 Eric Botcazou <ebotcazou@adacore.com>
4161 * exp_ch4.adb (Expand_Set_Membership): Expand the membership test
4162 using left associativity instead of right associativity.
4164 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4166 * gcc-interface/utils2.c (build_binary_op): Remove space.
4168 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4170 * gcc-interface/trans.c (gnat_to_gnu) <N_Allocator>: Minor tweaks.
4171 Call Has_Constrained_Partial_View on base type of designated type.
4173 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4175 * gcc-interface/utils.c (gnat_write_global_declarations): Output
4176 integral global variables first and the imported functions later.
4178 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4180 * gcc-interface/decl.c (elaborate_expression_1): When GNAT encodings
4181 are not used, do not create a variable for debug info purposes if
4182 the expression is itself a user-declared variable.
4184 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4186 * gcc-interface/ada-tree.h (DECL_RENAMED_OBJECT): Delete.
4187 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Always use
4188 the stabilized reference directly for renaming and create a variable
4189 pointing to it separately if requested.
4190 * gcc-interface/misc.c (gnat_print_decl): Adjust for deletion.
4191 * gcc-interface/trans.c (Identifier_to_gnu): Likewise.
4192 (gnat_to_gnu) <N_Object_Renaming_Declaration>:
4193 Do not deal with side-effects here.
4194 <N_Exception_Renaming_Declaration>: Likewise.
4196 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4198 * gcc-interface/decl.c (elaborate_expression): Replace calls to
4199 Is_OK_Static_Expression with Compile_Time_Known_Value.
4201 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4203 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Set
4204 debug type to the base type and only if the subtype is artificial.
4206 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4208 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Do
4209 not test Is_Bit_Packed_Array in the memset path.
4211 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4213 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Do not deal
4215 (Attribute_to_gnu): Likewise.
4216 * gcc-interface/utils.c (create_field_decl): Small formatting fix.
4218 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4220 * gcc-interface/trans.c (adjust_for_implicit_deref): Delete.
4221 (maybe_implicit_deref): Likewise.
4222 (Attribute_to_gnu): Replace calls to maybe_implicit_deref by calls
4223 to maybe_padded_object.
4224 (Call_to_gnu): Likewise.
4225 (gnat_to_gnu) <N_Indexed_Component>: Likewise.
4226 <N_Slice>: Likewise.
4227 <N_Selected_Component>: Likewise.
4228 <N_Free_Statement>: Remove call to adjust_for_implicit_deref and
4229 manually make sure that the designated type is complete.
4230 * gcc-interface/utils2.c (build_simple_component_ref): Add comment.
4232 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4234 * gcc-interface/decl.c (gnat_to_gnu_param): Tidy up.
4235 (gnat_to_gnu_subprog_type): For a variadic C function, do not
4236 build unnamed parameters and do not add final void node.
4237 * gcc-interface/misc.c: Include snames.h.
4238 * gcc-interface/trans.c (Attribute_to_gnu): Tidy up.
4239 (Call_to_gnu): Implement support for unnamed parameters in a
4240 variadic C function.
4241 * gcc-interface/utils.c: Include snames.h.
4242 (copy_type): Tidy up.
4244 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4246 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not apply
4247 range checks to allocators here.
4249 2020-06-19 Justin Squirek <squirek@adacore.com>
4251 * lib.adb (Check_Same_Extended_Unit): Add check to determine if
4252 the body for the subunits exist in the same file as their
4255 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4257 * exp_aggr.adb (In_Place_Assign_OK): In an allocator context,
4258 check the bounds of an array aggregate against those of the
4259 designated type, except if the latter is unconstrained.
4261 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4263 * sem_ch3.adb (Is_Visible_Component): Reason only on the private
4264 status of the original type in an instance body.
4266 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4268 * sem_res.adb (Resolve_Qualified_Expression): Do not override the
4269 type of the node when it is unconstrained if it is for an allocator.
4271 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4273 * sem_res.adb (Resolve_Allocator): Call Resolve_Qualified_Expression
4274 on the qualified expression, if any, instead of doing an incomplete
4275 type resolution manually.
4276 (Resolve_Qualified_Expression): Apply predicate check to operand.
4278 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4280 * sem_ch4.adb (Analyze_Selected_Component): In an instance body,
4281 also invoke Find_Component_In_Instance on the parent subtype of
4282 a derived tagged type immediately visible. Remove obsolete case.
4284 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4286 * exp_attr.adb (Get_Integer_Type): Return the largest supported
4287 unsigned integer type if need be.
4289 2020-06-19 Justin Squirek <squirek@adacore.com>
4291 * sem_warn.adb (Warn_On_Known_Condition): Add general sanity
4292 check that asserts the original source node being checked
4293 contains an entity. If not, it could be the result of special
4294 case expansion for type conversions.
4296 2020-06-19 Ed Schonberg <schonberg@adacore.com>
4298 * sem_ch6.adb (Analyze_Expression_Function): Do not indicate
4299 that the function has a completion if it appears within a Ghost
4302 2020-06-19 Bob Duff <duff@adacore.com>
4304 * libgnat/a-ststbo.adb (Write): Replace pragma Assert with "if
4305 ... raise Constraint_Error".
4307 2020-06-19 Justin Squirek <squirek@adacore.com>
4309 * widechar.adb, widechar.ads (Skip_Wide): Catch validity check
4310 failure when skipping over characters, and update comment to
4311 reflect Skip_Wide's usage in error printing.
4313 2020-06-19 Javier Miranda <miranda@adacore.com>
4315 * exp_ch3.ads (Ensure_Activation_Chain_And_Master): New
4317 * exp_ch3.adb (Ensure_Activation_Chain_And_Master): New
4318 subprogram that factorizes code.
4319 (Expand_N_Object_Declaration): Call new subprogram.
4320 * sem_ch6.adb (Analyze_Function_Return): Returning a
4321 build-in-place unconstrained array type defer the full analysis
4322 of the returned object to avoid generating the corresponding
4323 constrained subtype; otherwise the bounds would be created in
4324 the stack and a dangling reference would be returned pointing to
4327 2020-06-19 Arnaud Charlet <charlet@adacore.com>
4329 * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
4330 libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
4331 libgnat/a-nbnbre.ads: Update spec according to AI12-0366.
4333 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4335 * checks.ads: Remove excessive whitespace in declarations of
4336 functions for check suppression.
4338 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4340 * sem_ch7.adb (Hide_Public_Entities): Split handling of objects
4341 and subprograms, and do not reject the latter upfront in nested
4342 instance specs if there are no referencer subprograms at all.
4343 (Analyze_Package_Body_Helper): Also call Hide_Public_Entities on
4344 nested generic instances.
4346 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4348 * sem_attr.adb (Analyze_Attribute): Reject illegal positional
4349 component associations; fix syntax in comment about named
4350 component associations.
4352 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4354 * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Modify a nested
4355 Get_Component_Type routine to return a component and not just
4356 its type; use this routine to decorate the identifier within the
4359 2020-06-19 Arnaud Charlet <charlet@adacore.com>
4361 * sem_ch4.adb (Find_Equality_Types.Check_Access_Attribute): New.
4362 (Find_Equality_Types): Move universal_access related checks at
4363 the end of the processing and add call to
4364 Check_Access_Attribute.
4366 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4368 * sem_prag.adb (Process_Convention): Revert previous change.
4370 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4372 * checks.ads (Apply_Static_Length_Check): Move up.
4373 (Apply_Range_Check): Add parameter Insert_Node.
4374 * checks.adb (Apply_Selected_Range_Checks): Merge into...
4375 (Apply_Range_Check): ...this. Add parameter Insert_Node,
4376 pass it as Warn_Node to Selected_Range_Checks and use it
4377 as insertion point for the checks.
4378 * sem_ch3.adb (Analyze_Subtype_Declaration): Rewrite block
4379 dealing with the range checks for the subtype indication.
4380 Use local variable and call Apply_Range_Check in both cases.
4382 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4384 * exp_attr.adb (Expand_N_Attribute_Reference): Call Ensure_Valid
4385 on the expression of an object declaration that captures the
4386 value of 'Old prefix.
4388 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4390 * exp_attr.adb (Expand_N_Attribute_Reference): Add comment.
4391 * sem_attr.adb (Analyze_Attribute): Add ??? comment.
4392 * sem_util.ads (Valid_Scalars): This routine is only used for
4393 'Valid_Scalars and not for 'Valid.
4395 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4397 * exp_attr.adb (Expand_N_Attribute_Reference): Do not call
4398 Scalar_Part_Present on the array component's type.
4399 (Build_Array_VS_Func): Remove Comp_Typ parameter, because it can
4400 be easily computed from the Array_Top parameter *and redundant
4401 parameters are confusing and error-prone).
4403 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4405 * exp_attr.adb (Build_Record_VS_Func): Strip privacy and type
4406 derivation from the root type when 'Valid_Scalars is applied to
4409 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4411 * checks.adb (Apply_Parameter_Validity_Checks): Remove testing
4412 of Check_Validity_Of_Parameters for every formal parameter and
4415 2020-06-19 Arnaud Charlet <charlet@adacore.com>
4417 * sem_warn.adb (Warn_On_Overlapping_Actuals): Add missing
4420 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4422 * exp_ch4.adb (Get_Size_For_Range): Only make sure to return a
4423 size lower than that of the original type if possible.
4424 * libgnat/s-rannum.adb (Random_Discrete): Back out optimization
4425 added for 32-bit types.
4427 2020-06-18 Arnaud Charlet <charlet@adacore.com>
4429 * sem_ch6.ads, sem_ch6.adb (Check_Formal_Conformance): New
4431 (Check_Conformance): Move code to Check_Formal_Conformance.
4432 * sem_ch8.adb (Analyze_Subprogram_Renaming): Check for formal
4433 conformance when needed.
4435 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4437 * exp_ch4.adb (Narrow_Large_Operation): New procedure to try
4438 and narrow large arithmetic and comparison operations.
4439 (Expand_N_In): Call it.
4440 (Expand_N_Op_Abs): Likewise.
4441 (Expand_N_Op_Add): Likewise.
4442 (Expand_N_Op_Divide): Likewise.
4443 (Expand_N_Op_Eq): Likewise.
4444 (Expand_N_Op_Ge): Likewise.
4445 (Expand_N_Op_Gt): Likewise.
4446 (Expand_N_Op_Le): Likewise.
4447 (Expand_N_Op_Lt): Likewise.
4448 (Expand_N_Op_Minus): Likewise.
4449 (Expand_N_Op_Mod): Likewise.
4450 (Expand_N_Op_Multiply): Likewise.
4451 (Expand_N_Op_Ne): Likewise.
4452 (Expand_N_Op_Plus): Likewise.
4453 (Expand_N_Op_Rem): Likewise.
4454 (Expand_N_Op_Subtract): Likewise.
4455 (Expand_N_Type_Conversion): Use Convert_To procedure.
4456 * exp_ch9.adb (Is_Pure_Barrier) <N_Identifier>: Skip all
4458 <N_Type_Conversion>: Use explicit criterion.
4460 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4462 * exp_ch4.adb (Expand_Allocator_Expression): Apply constraint
4463 and predicate checks for the qualified expression on entry,
4464 followed by constraint and predicate checks for the allocator
4465 itself, and return early if this results in a static error.
4466 (Expand_N_Allocator): Do not do the same here. Instead apply
4467 constraint and predicate checks for arrays in the subtype
4469 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not apply
4470 range checks to allocators here.
4472 2020-06-18 Javier Miranda <miranda@adacore.com>
4474 * exp_ch6.adb (BIP_Suffix_Kind, Is_Build_In_Place_Entity): Move
4476 * exp_ch6.ads: Here.
4477 * exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Do not rely
4478 on the name of the scope to locate the extra formal BIPalloc
4479 since they are copied when the pointer type associated with
4480 dispatching calls is built; rely on routines
4481 Is_Build_In_Place_Entity and BIP_Suffix_Kind.
4482 * exp_disp.adb (Expand_Dispatching_Call): Set the scope of the
4483 first extra formal of the internally built pointer type.
4484 * sem_ch3.adb (Derive_Subprogram): Do not inherit extra formals
4485 from a limited interface parent since limitedness is not
4486 inherited in such case (AI-419) and this affects the extra
4488 * sprint.adb (Write_Itype): Output extra formals of subprogram
4491 2020-06-18 Ghjuvan Lacambre <lacambre@adacore.com>
4493 * errout.adb (Write_Error_Summary): Display number of warnings
4495 * errutil.ads: Update comment.
4497 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4499 * exp_attr.adb (Analyze_Attribute) <Asm_{In,Out}put>: Alphabetize.
4500 <Component_Size>: Add check for universal integer attribute.
4501 <Aft>, <Bit_Order>, <Definite>, <Max_Alignment_For_Allocation>,
4502 <Scalar_Storage_Order>: Raise Program_Error on them.
4503 * sem_attr.adb (Eval_Attribute) <Component_Size>: Add comment on
4504 the packed array case.
4506 2020-06-18 Steve Baird <baird@adacore.com>
4508 * sem_util.adb (Object_Access_Level): Treat a 'Old attribute
4509 reference like an aggregate in determining its static
4510 accessibility level; after the evaluation of the relevant
4511 post-condition, the implicitly declared constant associated with
4512 an Old attribute reference ceases to exist. Similarly for
4513 Loop_Entry attribute.
4514 * exp_ch6.adb (Expand_Call_Helper): For an attribute reference
4515 that is expanded into a reference to an implicitly declared
4516 constant (e.g., a 'Old or 'Loop_Entry attribute), compute the
4517 dynamic accessibility level of that constant by looking at the
4518 declaration of the constant (as opposed to looking at the
4519 attribute reference).
4521 2020-06-18 Steve Baird <baird@adacore.com>
4523 * exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a
4524 default initial condition check for the declaration of an
4527 2020-06-18 Arnaud Charlet <charlet@adacore.com>
4529 * Makefile.rtl: Add s-statxd.o.
4530 * bindgen.adb (Gen_Adainit): Add support for XDR_Stream.
4531 * bindusg.adb (Display): Add mention of -xdr.
4532 * gnatbind.adb: Process -xdr switch.
4533 * init.c (__gl_xdr_stream): New.
4534 * opt.ads (XDR_Stream): New.
4535 * libgnat/s-stratt__xdr.adb: Rename to...
4536 * libgnat/s-statxd.adb: this and adjust.
4537 * libgnat/s-statxd.ads: New.
4538 * libgnat/s-stratt.ads, libgnat/s-stratt.adb: Choose between
4539 default and XDR implementation at runtime.
4540 * libgnat/s-ststop.ads: Update comments.
4541 * doc/gnat_rm/implementation_advice.rst: Update doc on XDR
4543 * gnat_rm.texi: Regenerate.
4545 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4547 * sem_attr.adb (Analyze_Attribute) <To_Address>: Use the address
4548 size of the target instead of the host when checking the value of
4549 a static expression. Also use standard idiom for exponentiation.
4551 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4553 * sem_prag.adb (Process_Convention): Give a warning on C_Variadic_n
4554 being applied to a subprogram with exactly n parameters.
4556 2020-06-18 Arnaud Charlet <charlet@adacore.com>
4558 * libgnarl/s-osinte__linux.ads, libgnat/g-io.adb,
4559 libgnat/g-socket.adb, libgnat/g-socthi.adb,
4560 libgnat/g-socthi.ads, libgnat/g-socthi__vxworks.adb,
4561 libgnat/g-socthi__vxworks.ads, libgnat/g-sothco.ads,
4562 libgnat/s-io.adb, libgnat/a-except.adb: Fix function profile
4563 mismatch with imported C functions.
4565 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4567 * exp_ch6.adb (Expand_Call_Helper): Remove superfluous calls
4568 to Relocate_Node and merge calls to Analyze and Resolve in a
4569 couple of places. Do not attempt to generate a range check
4570 for an actual parameter against the formal's type of a derived
4571 subprogram after generating a conversion to the formal's type
4572 of the parent subprogram.
4574 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4576 * checks.adb (Compute_Range_For_Arithmetic_Op): New procedure to
4577 compute a range for an arithmetical operation extracted from...
4578 (Minimize_Eliminate_Overflows): ...here. Call it.
4579 (Determine_Range_Cache_O): New cache for Original_Node nodes.
4580 (Determine_Range): Call Compute_Range_For_Arithmetic_Op for all
4581 arithmetic expressions. Use Attribute_Id in lieu of Attribute_Name
4582 for attributes. Add handling for Range_Length alongside Length.
4583 Add specific handling for Alignment, Bit, First_Bit, Last_Bit,
4584 Max_Size_In_Storage_Elements, Position, Bit_Position,
4585 Component_Size, Object_Size, Size, Value_Size, Descriptor_Size.
4586 (Enable_Overflow_Check): Omit the check for Abs and Minus if the
4587 operand cannot be the largest negative number.
4588 (Selected_Length_Checks): Use Pos for Number_Dimensions.
4589 * exp_attr.adb (Expand_N_Attribute_Reference): Move compile-time
4590 handling of Bit_Position, Descriptor_Size, First_Bit, Last_Bit
4592 * sem_attr.adb (Eval_Attribute): ...here. Move up Alignment for
4593 objects and use Compile_Time_Known_Attribute in this case too.
4595 2020-06-18 Ghjuvan Lacambre <lacambre@adacore.com>
4597 * erroutc.ads: Declare new Is_Compile_Time_Msg boolean,
4598 add new Compile_Time_Pragma field to Error_Msg_Object type.
4599 (Count_Compile_Time_Pragma_Warnings): New function.
4600 * erroutc.adb (Count_Compile_Time_Pragma_Warnings): New
4602 (Compilation_Errors): Take Compile_Time warnings into account
4603 when tallying Errors/Warnings.
4604 * errout.ads (Error_Msg): New procedure.
4605 * errout.adb (Error_Msg): New procedure.
4606 (Error_Msg_Internal): Set new Compile_Time_Pragma field in
4608 * errutil.adb (Error_Msg): Set new Compile_Time_Pragma field in
4610 * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Pass
4611 True to new Error_Msg procedure.
4612 * doc/gnat_rm/implementation_defined_pragmas.rst: Update doc for
4613 the Compile_Time_Warning pragma.
4614 * gnat_rm.texi: Regenerate.
4615 * opt.ads: Update comment.
4617 2020-06-18 Arnaud Charlet <charlet@adacore.com>
4619 * sem_ch4.adb (Check_Compatible_Profiles): Add explicit
4622 2020-06-18 Piotr Trojanek <trojanek@adacore.com>
4624 * checks.adb (Generate_Index_Checks): Handle
4625 N_Subtype_Indication returned from Scalar_Range.
4627 2020-06-18 Piotr Trojanek <trojanek@adacore.com>
4629 * checks.adb, sem_ch3.adb: Minor refactorings.
4630 * sem_eval.adb (Eval_Qualified_Expression): Fix reference to RM
4631 rule in comment; only set a local variable Hex in the branch
4634 2020-06-18 Piotr Trojanek <trojanek@adacore.com>
4636 * sem_eval.adb (Check_Non_Static_Context): Use Is_RTE.
4638 2020-06-18 Arnaud Charlet <charlet@adacore.com>
4640 * sem_ch4.adb (Find_Equality_Types.Check_Access_Object_Types):
4641 New function, used to implement RM 4.5.2 (9.6/2).
4642 (Find_Equality_Types.Check_Compatible_Profiles): New function,
4643 used to implement RM 4.5.2(9.7/2).
4644 (Find_Equality_Types.Reference_Anonymous_Access_Type): New
4646 (Find_Equality_Types.Try_One_Interp): Fix handling of anonymous
4647 access types which was accepting both too much and too little.
4648 Remove accumulated special and incomplete cases for
4649 instantiations, replaced by Has_Compatible_Type.
4650 (Analyze_Overloaded_Selected_Component): Use
4651 Is_Anonymous_Access_Type instead of Ekind_In.
4652 * sem_res.adb: Code cleanup and bug fix: use
4653 Is_Anonymous_Access_Type instead of Ekind_In. Relax checking of
4654 anonymous access parameter when universal_access "=" is
4656 * sem_type.adb: Likewise.
4657 (Find_Unique_Type): Move code from here...
4658 (Specific_Type): ...to here. Also add missing handling of access
4659 to class wide types.
4660 * einfo.ads, einfo.adb (Is_Access_Object_Type): New.
4662 2020-06-18 Bob Duff <duff@adacore.com>
4664 * libgnat/a-strsto.ads, libgnat/a-ststbo.adb,
4665 libgnat/a-ststbo.ads, libgnat/a-ststun.adb,
4666 libgnat/a-ststun.ads: New files, containing packages
4667 Ada.Streams.Storage, Ada.Streams.Storage.Bounded, and
4668 Ada.Streams.Storage.Unbounded.
4669 * impunit.adb, Makefile.rtl: Add new file names.
4671 2020-06-18 Javier Miranda <miranda@adacore.com>
4673 * sem_ch13.adb (Has_Good_Profile): Enforce strictness in the
4674 check. Required to detect wrong profiles for Input and Output.
4675 (Analyze_Stream_TSS_Definition): Minor enhancement in the text
4676 of the error for class-wide attributes.
4678 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4680 * exp_attr.adb (Get_Integer_Type): Pick an unsigned type based
4681 on the Esize of the base type of the input type.
4683 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4685 * exp_ch4.adb (Expand_Array_Equality): For the optimization of
4686 the 2-element case, build new expression lists for the indices.
4688 2020-06-18 Richard Kenner <kenner@adacore.com>
4690 * sem_util.adb (Enclosing_Subprogram): No longer need
4691 Convention_Protected.
4693 2020-06-18 Claire Dross <dross@adacore.com>
4695 * sem_util.adb (Is_OK_Volatile_Context): Return False on
4696 definitions of constants declared in declare expressions.
4698 2020-06-18 Piotr Trojanek <trojanek@adacore.com>
4700 * doc/gnat_rm/implementation_defined_aspects.rst
4701 (Relaxed_Initialization): New implementation-defined aspect.
4702 * doc/gnat_rm/implementation_defined_attributes.rst
4703 (Initialized): New implementation-defined attribute.
4704 * gnat_rm.texi: Regenerate.
4706 2020-06-18 Javier Miranda <miranda@adacore.com>
4708 * exp_disp.adb (Expand_Dispatching_Call): Add missing decoration
4709 of attribute Extra_Accessibility_Of_Result.
4710 * freeze.adb (Check_Extra_Formals): No check required if
4711 expansion is disabled; Adding check on
4712 Extra_Accessibilty_Of_Result.
4713 (Freeze_Subprogram): Fix decoration of
4714 Extra_Accessibility_Of_Result.
4715 * sem_ch3.adb (Derive_Subprogram): Fix decoration of
4716 Extra_Accessibility_Of_Result
4718 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4720 * exp_ch4.adb (Optimize_Length_Comparison): Accept 32-bit values
4721 in the full unsigned range.
4723 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4725 * checks.adb (Apply_Universal_Integer_Attribute_Checks): Do not do
4726 anything when the type of the node is already Universal_Integer.
4728 2020-06-17 Arnaud Charlet <charlet@adacore.com>
4730 * sem_ch10.adb (Expand_With_Clause): Add missing handling of
4731 N_Generic_Subprogram_Declaration, N_Subprogram_Declaration,
4734 2020-06-17 Ed Schonberg <schonberg@adacore.com>
4736 * sem_ch13.adb: (Check_Inherited_Indexing): Check that a type
4737 derived from an indexable container type cannot specify an
4738 indexing aspect if the same aspect is not specified for the
4739 parent type (RM 4.1.6 (6/5), AI12-160). Add a check that a
4740 specified indexing aspect for a derived type is confirming.
4742 2020-06-17 Gary Dismukes <dismukes@adacore.com>
4744 * exp_ch9.adb (Build_Protected_Subp_Specification): Add ???
4745 comment about the flag Has_Nested_Subprogram not being set here.
4746 (Expand_N_Protected_Body): If the original body for a protected
4747 subprogram has the flag Has_Nested_Subprogram set, then set that
4748 flag on the new unprotected subprogram body that's created for
4749 it, and reset the Scope fields of its top level declarations,
4750 which have been effectively taken from the original protected
4751 subprogram body. Add ??? comment about unclear testing of
4754 2020-06-17 Javier Miranda <miranda@adacore.com>
4756 * aspects.ads (type Aspect_Id): Add Aspect_Yield as a Boolean
4757 aspect, and update the Is_Representation_Aspect, Aspect_Names,
4758 and Aspect_Delay arrays.
4759 * einfo.ads, einfo.adb (Has_Yield_Aspect, Yield_Aspect): New
4761 * exp_ch6.adb (Add_Return, Expand_Non_Function_Return,
4762 Expand_Simple_Function_Return): Add calls to Yield.
4763 * exp_ch9.adb (Build_Accept_Body, Expand_N_Accept_Statement):
4765 * rtsfind.ads (RE_Yield): Adding support to generate calls to
4766 the runtime service Ada.Dispatching.Yield
4767 * sem_ch13.adb (Analyze_Aspect_Yield): New subprogram.
4768 * sem_ch3.adb (Derive_Subprogram): Inherit attribute
4770 * sem_ch8.adb (Analyze_Subprogram_Renaming): Check consistency
4771 of Has_Yield in the actual subprogram of a generic
4773 * sem_disp.adb (Check_Dispatching_Operation): Check that if the
4774 Yield aspect is specified for a dispatching subprogram that
4775 inherits the aspect, the specified value shall be confirming.
4776 * sem_prag.adb (Analyze_Pragma [Pragma_Implemented]): Check that
4777 the implementation kind By_Protected_Procedure cannot be applied
4778 to a procedure that has aspect Yield.
4780 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4782 * exp_ch4.adb (Expand_N_Op_Expon): Replace all occurrences of
4783 the original right operand with the relocated version.
4785 2020-06-17 Javier Miranda <miranda@adacore.com>
4787 * exp_ch6.adb (Has_BIP_Extra_Formal): New subprogram.
4788 (Needs_BIP_Task_Actuals): Add support for the subprogram type
4789 internally generated for dispatching calls.
4790 * exp_disp.adb (Expand_Dispatching_Call): Adding code to
4791 explicitly duplicate the extra formals of the target subprogram.
4792 * freeze.adb (Check_Extra_Formals): New subprogram.
4793 (Freeze_Subprogram): Fix decoration of Extra_Formals.
4794 * sem_ch3.adb (Derive_Subprogram): Fix decoration of
4797 2020-06-17 Bob Duff <duff@adacore.com>
4799 * par.adb (P_Basic_Declarative_Items): Update comment about
4801 * par-ch3.adb (P_Declarative_Items): Pass in Declare_Expression
4802 flag, and if True, skip the call to Style.Check_Indentation.
4803 * par-ch4.adb (P_Declare_Expression): Fix incorrect comment.
4805 2020-06-17 Arnaud Charlet <charlet@adacore.com>
4807 * sem_res.adb (Valid_Conversion): Change error message to make
4808 it more user-friendly.
4810 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4812 * checks.ads (Apply_Length_Check_On_Assignment): Declare.
4813 * checks.adb (Apply_Length_Check_On_Assignment): New procedure
4814 to apply a length check to an expression in an assignment.
4815 * exp_ch5.adb (Expand_Assign_Array): Call it instead of calling
4816 Apply_Length_Check to generate a length check.
4817 * sem_ch5.adb (Analyze_Assignment): Likewise.
4819 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
4821 * einfo.adb (Is_Relaxed_Initialization_State): Add reference to
4823 * sem_attr.adb (Analyze_Attribute_Old_Result): Likewise.
4824 * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Reject
4825 aspect on completions of private types and deferred constants.
4826 * sem_util.ads, sem_util.adb (Has_Relaxed_Initialization):
4827 Adjust comments; support queries for constants.
4829 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4831 * cstand.adb (Stloc): Change to a renaming.
4833 (Build_Unsigned_Integer_Type): Remove Nam parameter, use local
4834 constants and do not call Make_Name.
4835 (Make_Dummy_Index): Use local constants.
4836 (Create_Standard): Pass the name of entities as parameter in
4837 calls to New_Standard_Entity and remove calls to Make_Name.
4838 Adjust calls to Build_Unsigned_Integer_Type.
4839 (Identifier_For): Use local constant.
4840 (Make_Component): Pass the name of the component as parameter
4841 in call to New_Standard_Entity and remove call to Make_Name.
4842 (Make_Formal): Likewise. Rename Formal_Name parameter into
4843 Nam and use local constant.
4844 (Make_Name): Delete.
4845 (New_Operator): Use local constant.
4846 (New_Standard_Entity): Rename S parameter into Nam and build
4847 the name here. Remove call to Make_Name.
4848 (Register_Float_Type): Pass the name of the type as parameter
4849 in call to New_Standard_Entity and remove call to Make_Name.
4851 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4853 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
4854 Remove condition added for scalar types.
4856 2020-06-17 Gary Dismukes <dismukes@adacore.com>
4858 * exp_ch3.ads (Build_Access_Subprogram_Wrapper_Body): Adjust
4859 colon columns; reformat comment.
4861 (Build_Access_Subprogram_Wrapper_Body): Likewise.
4862 * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Reformat spec
4863 comment and reformat comment in body.
4864 (Analyze_Full_Type_Declaration): Reformat comment.
4865 (Replace_Type_Name): Fixed three typos, plus reformatting of
4867 * sem_prag.adb (Analyze_Pre_Post_Condition): Fix typos.
4868 * sem_warn.adb (Warn_On_Overlapping_Actuals): Edit comments:
4869 remove hyphen, add missing word.
4871 2020-06-17 Bob Duff <duff@adacore.com>
4873 * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
4874 libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb,
4875 libgnat/a-cborma.adb, libgnat/a-cborse.adb,
4876 libgnat/a-cdlili.adb, libgnat/a-chtgbk.adb,
4877 libgnat/a-chtgke.adb, libgnat/a-cidlli.adb,
4878 libgnat/a-cihama.adb, libgnat/a-cihase.adb,
4879 libgnat/a-cimutr.adb, libgnat/a-ciorma.adb,
4880 libgnat/a-ciorse.adb, libgnat/a-cobove.adb,
4881 libgnat/a-cohama.adb, libgnat/a-cohase.adb,
4882 libgnat/a-coinve.adb, libgnat/a-comutr.adb,
4883 libgnat/a-convec.adb, libgnat/a-coorma.adb,
4884 libgnat/a-coorse.adb, libgnat/a-crbtgk.adb,
4885 libgnat/a-crbtgo.adb, libgnat/a-rbtgso.adb: Move tampering
4888 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4890 * exp_attr.adb (Get_Integer_Type): Use standard types without
4892 * sem_res.adb (Resolve_Unchecked_Type_Conversion): Remove a
4893 redundant intermediate conversion to Universal_Integer.
4895 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
4897 * sem_util.ads, sem_util.adb (Get_Iterable_Type_Primitive): Fix
4898 comment and enforce it with an assertion in the body.
4900 2020-06-17 Ed Schonberg <schonberg@adacore.com>
4902 * sem_ch3.adb (Analyze_Full_Type_Declaration): For an
4903 access_to_subprogram declaration that has aspect specifications,
4904 call Build_Access_ Subprogram_Wrapper at once, so that pre- and
4905 postcondition aspects are analyzed in the context of a
4906 subprogram declaration.
4907 (Build_Access_Subprogram_Wrapper): Examine aspect specifications
4908 of an Access_To_Subprogram declaration. If pre- or
4909 postconditions are declared for it, create declaration for
4910 subprogram wrapper and add the corresponding aspect
4911 specifications to it. Replace occurrences of the type name by
4912 that of the generated subprogram, so that attributes 'Old and
4913 'Result can appear in a postcondition.
4914 * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Moved
4915 here from sem_prag.adb.
4916 * exp_ch3.ads (Build_Access_Subprogram_Wrapper_Body): Visible
4918 * sem_prag.adb (Build_Access_Subprogram_Wrapper / _Body): Moved
4919 to sem_ch3.adb and exp_ch3.adb.
4921 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
4923 * atree.adb (Preserve_Comes_From_Source): Rewrite using
4924 Set_Comes_From_Source and Comes_From_Source, which enforce that
4925 the parameters are valid.
4926 * exp_ch4.adb, exp_ch5.adb, sem_ch12.adb, sem_ch6.adb,
4927 sem_res.adb: Rewrite using Preserve_Comes_From_Source.
4929 2020-06-17 Arnaud Charlet <charlet@adacore.com>
4931 * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Remove obsolete
4934 2020-06-17 Gary Dismukes <dismukes@adacore.com>
4936 * aspects.ads (type Aspect_Id): Add Aspect_Static as a Boolean
4937 aspect, and update the Is_Representation_Aspect, Aspect_Names,
4938 and Aspect_Delay arrays.
4939 * exp_ch6.adb (Expand_Simple_Function_Return): In the case of a
4940 return for a static expression function, capture a copy of the
4941 expression of the return statement before it's expanded and
4942 reset its Analyzed flags. Then, just before leaving this
4943 procedure, if the expression was rewritten, set the
4944 Original_Node of the rewritten expression to the new copy and
4945 also set the Expression of the associated static expression
4946 function to designate that copy. This ensures that later copies
4947 of the expression made via New_Copy_Tree will fully copy all
4948 nodes of the expression tree.
4949 * inline.ads (Inline_Static_Expression_Function_Call): New
4950 procedure to evaluate and produce the result of a static call to
4951 a static expression function.
4952 * inline.adb: Add with and use for Sem_Res.
4953 (Establish_Actual_Mapping_For_Inlined_Call): New procedure
4954 extracted from code in Expand_Inlined_Call that traverses the
4955 actuals and formals of an inlined call and in some cases creates
4956 temporaries for holding the actuals, plus establishes an
4957 association between formals and actuals (via the Renamed_Object
4958 fields of the formals).
4959 (Formal_Is_Used_Once): Function removed from Expand_Inlined_Call
4960 and now nested in the above procedure.
4961 (Expand_Inlined_Call): Code for doing the formal/actual
4962 traversal is moved to Create_Actual_Temporaries and replaced
4963 with a call to that new procedure.
4964 (Inline_Static_Expression_Function_Call): New procedure to
4965 evaluate a static call to a static expression function,
4966 substituting actuals for their corresponding formals and
4967 producing a fully folded and static result expression. The
4968 function has subsidiary functions Replace_Formal and Reset_Sloc
4969 that take care of doing the mapping of formals to actuals and
4970 resetting the Slocs of subnodes of the mapped expression to that
4971 of the call so errors will be flagged on the call rather than
4973 * sem_ch6.adb (Analyze_Expression_Function): In the case of a
4974 static expression function, perform an additional preanalysis of
4975 the function's expression to ensure that it's a potentially
4976 static expression (according to the requirements of
4977 6.8(3.2/5-3.4/5)), and issue an error if it's not. The global
4978 flag Checking_Potentially_Static_Expression is set and unset
4979 around this checking.
4980 * sem_ch13.adb (Analyze_Aspect_Static): New procedure to enforce
4981 selected requirements of the new aspect Static on expression
4982 functions, including checking that the language version is
4983 Ada_2020 and that the entity to which it applies is an
4984 expression function whose formal parameters are of a static
4985 subtype and have mode 'in', its result subtype is a static
4986 subtype, and it has no pre- or postcondition aspects. A ???
4987 comment is added to indicate the need for adding checking that
4988 type invariants don't apply to the result type if the function
4989 is a boundary entity.
4990 (Analyze_One_Aspect): Call Analyze_Aspect_Static for aspect
4992 * sem_elab.adb (Build_Call_Marker): Return without creating a
4993 call marker when the subprogram is a static expression function,
4994 since no ABE checking is needed for such functions.
4995 * sem_eval.ads (Checking_Potentially_Static_Expression): New
4996 function to return whether the checking for potentially static
4997 expressions is enabled.
4998 (Set_Checking_Potentially_Static_Expression): New procedure to
4999 enable or disable checking of potentially static expressions.
5000 * sem_eval.adb (Checking_For_Potentially_Static_Expression): New
5001 global flag for determining whether preanalysis of potentially
5002 static expression is being done, which affects the behavior of
5003 certain static evaluation routines.
5004 (Checking_Potentially_Static_Expression): New function to return
5005 whether the checking for potentially static expressions is
5007 (Eval_Call): When evaluating a call within a static expression
5008 function with checking of potentially static expression
5009 functions enabled, substitutes a static value in place of the
5010 call to allow folding of the expression.
5011 (Eval_Entity_Name): When evaluating a formal parameter of a
5012 static expression function with checking of potentially static
5013 expression functions enabled, substitutes a static value in
5014 place of the reference to the formal to allow folding of the
5016 (Set_Checking_Potentially_Static_Expression): New procedure to
5017 enable or disable checking of potentially static expressions.
5018 * sem_res.adb (Resolve_Call): Test for a recursive call
5019 occurring within a static expression function and issue an error
5020 for such a call. Prevent the establishment of a transient scope
5021 in the case this is a call to a (string-returning) static
5022 expression function. When calling a static expression function,
5023 if no error has been posted on the function, call
5024 Inline_Static_Expression_Function_Call to convert the call into
5025 its equivalent static value.
5026 * sem_util.ads (Is_Static_Expression_Function): New function
5027 returning whether the subprogram entity passed to it is a static
5028 expression function.
5029 (Is_Static_Expression_Function_Call): New function to determine
5030 whether the call node passed to it is a static call to a static
5031 expression function.
5032 * sem_util.adb (Compile_Time_Constraint_Error): Suppress
5033 compile-time Constraint_Error reporting when checking for a
5034 potentially static expression.
5035 (Is_Static_Expression_Function): New function returning whether
5036 the subprogram entity passed to it is a static expression
5037 function by testing for the presence of aspect Static.
5038 (Has_All_Static_Actuals): New function in
5039 Is_Static_Expression_Function_Call that traverses the actual
5040 parameters of a function call and returns True only when all of
5041 the actuals are given by static expressions. In the case of a
5042 string-returning function, we call Resolve on each actual to
5043 ensure that their Is_Static_Expression flag properly reflects
5044 whether they're static, to allow suppressing creation of a
5045 transient scope within Resolve_Call. A prominent ??? comment is
5046 added to explain this rather unconventional call to Resolve.
5047 (Is_Static_Expression_Function_Call): New function that
5048 determines whether a node passed to it is a call to a static
5049 expression function all of whose actual parameters are given by
5052 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
5054 * exp_ch4.adb (Optimize_Length_Comparison): New local variable to
5055 record whether this may be a dynamic superflat case.
5056 (Is_Optimizable): Accept 0 as lower bound and set it in this case,
5057 but return false if the operand is not a length too.
5058 (Rewrite_For_Equal_Lengths): New procedure.
5059 Optimize the comparison of two lengths in the superflat case when
5060 the arrays have the same bounds.
5062 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
5064 * doc/gnat_rm/implementation_defined_attributes.rst (Bit): Sharpen
5065 the comparison with System.Storage_Unit.
5066 (Descriptor_Size): Clear confusion about alignment and padding.
5067 * gnat_rm.texi: Regenerate.
5069 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
5071 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
5072 Do not replace the bound for an array type if it is public.
5074 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
5076 * exp_ch4.adb (Optimize_Length_Comparison): Make sure the base
5077 types are the same when comparing Y'Last and X'Last directly.
5079 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
5081 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
5082 Replace it with a direct reference to an entity which is not a
5083 discriminant for constrained array types. Add same condition
5085 <Attribute_Last>: Merge with above implementation.
5086 * exp_ch4.adb (Optimize_Length_Comparison): Be prepared for a
5087 second entity whose length is compared. Rename Prepare_64 to
5088 Convert_To_Long_Long_Integer. If the second entity is present,
5089 compute the difference of the 'First attributes and compare the
5090 sum of 'Last of the second entity with this difference against
5091 'Last of the first entity. Add a special case when the 'First
5092 attributes are equal. Suppress overflow checks in all cases.
5094 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
5096 * doc/gnat_rm/implementation_defined_pragmas.rst, lib-writ.ads,
5097 par-prag.adb, sem_ch12.adb, sem_ch8.adb, sem_prag.adb: Fix
5098 casing of GNATprove.
5099 * gnat_rm.texi: Regenerate.
5101 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
5103 * checks.adb (Generate_Range_Check): Simplify redundant
5105 * sem_ch3.adb (Check_Initialization, Process_Discriminants):
5107 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Likewise.
5109 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
5111 * exp_fixd.adb (Build_Conversion): Also preserve the
5112 Conversion_OK flag of an inner conversion.
5114 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
5116 * sem_ch5.adb (Analyze_Iterator_Specification): Enable expansion
5117 that creates a renaming that removes side effects from the
5118 iterated object in the GNATprove mode; then analyze reference to
5119 this renaming (it is required for GNATprove and harmless for
5122 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5124 * sinfo.ads (Conversion_OK): Document use for 'Pos and 'Val.
5125 * exp_attr.adb (Get_Integer_Type): New function returning a
5126 small integer type appropriate for an enumeration type.
5127 (Expand_N_Attribute_Reference) <Attribute_Enum_Rep>: Call it.
5128 <Attribute_Pos>: For an enumeration type with a standard
5129 representation, expand to a conversion with Conversion_OK.
5130 <Attribute_Val>: Likewise.
5131 * exp_ch4.adb (Expand_N_Type_Conversion): Do not expand when
5132 the target is an enumeration type and Conversion_OK is set.
5134 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5136 * sem_ch4.adb (Common_Type): Go to Underlying_Full_View, if any.
5138 2020-06-16 Richard Kenner <kenner@adacore.com>
5140 * exp_unst.adb (Subp_Index): Change way we detect internal
5141 protected subprograms.
5143 2020-06-16 Richard Kenner <kenner@adacore.com>
5145 * comperr.adb (Compiler_Abort): Clarify message displayed to
5148 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5150 * checks.adb, doc/gnat_ugn/the_gnat_compilation_model.rst,
5151 einfo.ads, exp_ch5.adb, exp_ch7.adb, lib-xref.ads,
5152 libgnat/g-spitbo.ads, make.adb, sem_aux.adb, sem_ch3.adb,
5153 sem_ch4.adb, sem_ch5.adb, urealp.adb: Fix wrong casing.
5154 * gnat_ugn.texi: Regenerate.
5156 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5158 * einfo.adb, exp_spark.adb, exp_util.adb, sem_eval.adb: Replace
5159 "Ekind ... in Object_Kind" with "Is_Object (...)".
5161 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5163 * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix typo in
5166 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5168 * exp_util.adb (Evaluate_Name): Force evaluation of aggregates;
5169 recursively evaluate expression of a qualified expression; fix
5170 location of the comment for an attribute referenced and an
5173 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5175 * freeze.adb (Freeze_Expression): Use consistent style and
5176 formatting in a couple of cases.
5178 2020-06-16 Steve Baird <baird@adacore.com>
5180 * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Uncomment the
5181 commented-out Integer_Literal aspect specification for type
5184 2020-06-16 Javier Miranda <miranda@adacore.com>
5186 * exp_ch6.adb (BIP_Suffix_Kind, Check_BIP_Actuals,
5187 Is_Build_In_Place_Entity): New subprograms.
5188 (Make_Build_In_Place_Call_In_Allocator,
5189 Make_Build_In_Place_Call_In_Anonymous_Context,
5190 Make_Build_In_Place_Call_In_Assignment,
5191 Make_Build_In_Place_Call_In_Object_Declaration): Add assertions.
5192 (Needs_BIP_Task_Actuals): Add missing support for thunks.
5193 (Expand_Actuals): Ensure that the BIP call has available an
5194 activation chain and the _master variable.
5195 * exp_ch9.adb (Find_Enclosing_Context): Initialize the list of
5196 declarations of empty blocks when the _master variable must be
5197 declared and the list was not available.
5199 2020-06-16 Bob Duff <duff@adacore.com>
5201 * par-ch4.adb (P_Case_Expression): Move to be local.
5202 (P_Declare_Expression): New parsing routine.
5203 (P_Unparen_Cond_Expr_Etc): New name for
5204 P_Unparen_Cond_Case_Quant_Expression which was missing one case
5205 in its name (iterated component association), and we're adding a
5206 new case (declare expression), so lets use "Etc" instead of
5207 trying to pack all those things into the name. Add call to
5208 P_Declare_Expression, and check for missing parens.
5209 (P_Expression_If_OK, P_Expression_Or_Range_Attribute_If_OK): Add
5211 * par.adb (P_Basic_Declarative_Items): Add parameter
5212 Declare_Expression so we can tailor the error message about
5214 (P_Case_Expression): Move to body.
5215 * par-ch3.adb (P_Basic_Declarative_Items): Tailor the error
5216 message about incorrect bodies.
5217 * par-ch7.adb (P_Package): Pass Declare_Expression => False to
5218 P_Basic_Declarative_Items.
5219 * sem.ads (In_Declare_Expr): Counter used to determine whether
5220 we are analyzing a declare_expression. Needed to give errors
5221 about things that are not allowed in declare_expression, such as
5222 the 'Access attribute.
5223 * sem.adb (Do_Analyze): Save/restore In_Declare_Expr.
5224 * sem_ch4.adb (Analyze_Expression_With_Actions): Give this node
5225 its own scope. That seems better in general, but it is
5226 necessary for declare_expressions. For example, an identifier
5227 declared in a declare_expression should not clash with the same
5228 identifier in an outer scope. If this is a declare_expression,
5229 indicated by Comes_From_Source, then check legality rules, and
5230 incr/decr In_Declare_Expr.
5231 * sem_aggr.adb (Resolve_Aggregate): Allow an applicable index
5232 constraint for a declare_expression, so if its expression is an
5233 array aggregate, it can have "others => ...".
5234 * sem_attr.adb (Analyze_Access_Attribute): Disallow these
5235 attributes in declare_expressions. Add comment to make it clear
5236 that Unrestricted_Access is included.
5237 * sinfo.ads, sinfo.adb, atree.ads, atree.adb: Remove the
5238 now-incorrect comment in sinfo.ads that says
5239 N_Expression_With_Actions has no proper scope. Add 17-parameter
5240 versions of Nkind_In. Remove the 16-parameter versions of
5243 2020-06-16 Arnaud Charlet <charlet@adacore.com>
5245 * sem_aux.ads, sem_aux.adb (Is_Record_Or_Limited_Type): New
5247 * exp_ch4.adb, sem_ch4.adb (Analyze_Membership_Op,
5248 Expand_Set_Membership.Make_Cond): Choose between primitive and
5249 predefined equality for membership tests.
5251 2020-06-16 Ed Schonberg <schonberg@adacore.com>
5253 * sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify code and
5254 implement AI12-0216 which clarifies the conditions under which
5255 overlapping actuals in a call are illegal. If proper warnings
5256 are enabled, GNAT also emits warnings in legal cases of
5257 overlopping actuals.
5259 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5261 * freeze.adb (Freeze_Expression): Stop climbing the parent chain
5262 at a N_{Case,If}_Expression node for a type or an entity that
5263 does not come from source.
5265 2020-06-16 Steve Baird <baird@adacore.com>
5267 * snames.ads-tmpl: Define names of the three new aspects.
5268 * aspects.ads: Define the three new aspects.
5269 * sem_util.ads, sem_util.adb, sem_dim.adb: Move the function
5270 String_From_Numeric_Literal from being declared in the body of
5271 package Sem_Dim to being declared in the visible part of package
5273 * sem_ch13.ads, sem_ch13.adb: Declare new visible procedure
5274 Validate_Literal_Aspect. This is where most of the legality
5275 checking occurs for an aspect specification for one of the three
5276 new aspects, as well as resolution of the subprogram named in
5277 the aspect specification. Follow example of other aspects (e.g.,
5278 Validate_Literal_Aspect is called in much the same way as
5279 Validate_Iterable_Aspect in Analyze_Aspects_At_Freeze_Point; a
5280 small amount of legality checking is performed in
5281 Analyze_One_Aspect in much the same way as for Default_Value or
5282 Default_Component_Value aspects). Most of the work is done in
5283 Validate_Literal_Aspect.
5284 * contracts.adb (Add_Contract_Item): Call
5285 Validate_Literal_Aspect in much the same way that
5286 Validate_Iterable_Aspect was already being called.
5287 * sem_res.adb (Resolve): Rewrite a literal as a call if it is a
5288 user-defined literal. This is where the dynamic semantics of
5289 the 3 new aspects are implemented.
5290 * sem_ch6.adb (Fully_Conformant_Expressions): Two numeric
5291 literals that have different text but the same value (e.g.,
5292 12345 and 12_345) do not conform if they are user-defined
5293 literals. Introduce a new function
5294 User_Defined_Numeric_Literal_Mismatch to avoid duplication in
5296 * sem_type.adb (Has_Compatible_Type): A numeric literal can be
5297 compatible with a non-numeric type (and a string literal can be
5298 compatible with a non-string type) if it can be interpreted as a
5299 user-defined literal.
5301 2020-06-16 Arnaud Charlet <charlet@adacore.com>
5303 * sem_aggr.adb (Resolve_Extension_Aggregate): Fix implementation
5304 of AI05-0115 by checking the correct type.
5306 2020-06-16 Arnaud Charlet <charlet@adacore.com>
5308 * sem_ch6.adb (Analyze_Subprogram_Specification): Generate error
5309 message for functions returning interfaces.
5311 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5313 * sem_ch13.adb (Membership_Entry): Relax assertion to also
5314 recognize qualified identifiers.
5316 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5318 * exp_util.adb (Evaluate_Name): Force evaluation of operators.
5320 2020-06-16 Arnaud Charlet <charlet@adacore.com>
5322 * sem_ch4.adb (Analyze_Membership_Op): Reset entity of equality
5323 nodes for membership tests with singletons.
5324 (Analyze_User_Defined_Binary_Op): Always perform the analysis
5325 since nodes coming from the expander also may refer to non
5326 standard operators as part of membership expansion.
5327 * exp_ch4.adb (Expand_Set_Membership.Make_Cond): Reset entity of
5329 * sem_type.ads: Fix typo in comment.
5331 2020-06-16 Ghjuvan Lacambre <lacambre@adacore.com>
5333 * sem_attr.adb (Analyze_Attribute): Add
5334 Check_Not_Incomplete_Type call.
5336 2020-06-16 Gary Dismukes <dismukes@adacore.com>
5338 * sem_ch6.adb: Add closing paren in a comment.
5339 * sem_util.adb: Correct comment typo (aggreate => aggregate).
5341 2020-06-16 Javier Miranda <miranda@adacore.com>
5343 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
5346 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5348 * freeze.adb (In_Expanded_Body): Remove unreachable code.
5349 (Freeze_Expression): Rename a couple of local variables.
5350 In the case of an expanded body, also freeze locally the
5351 entities declared in a nested block.
5353 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5355 * sem_ch4.adb (Transform_Object_Operation): Document that it
5356 may be partially destructive for the parent of the node.
5357 (Try_Object_Operation): Undo the changes made above on failure.
5359 2020-06-16 Javier Miranda <miranda@adacore.com>
5361 * restrict.adb (Global_No_Tasking): Adding
5362 Targparm.Restrictions_On_Target Fixes regressions with zfp.
5364 2020-06-16 Ed Schonberg <schonberg@adacore.com>
5366 * freeze.adb: (Freeze_Expression, In_Expanded_Body): Treat the
5367 generated body of an expression function like other bodies
5368 generated during expansion (e.g. stream subprograms) so that
5369 those bodies are not treated as freezing points. Handle properly
5370 other global references in such completions.
5372 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5374 * sem_ch8.adb (Analyze_Object_Renaming): Remove trivially
5375 useless initialization of Is_Object_Reference.
5376 * sem_util.adb (Is_Object_Reference): Simplify detection of
5377 binary and unary operators; literally implement rules about
5378 aggregates and qualified expressions; recognize string literals
5379 as object references.
5381 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5383 * sem_ch12.adb (Validate_Derived_Type_Instance): Reword error
5384 message for 12.5.1(8) subclause and add secondary message if
5385 the incompatibility comes from the predicates.
5386 * sem_ch3.adb (Check_Constraining_Discriminant): New procedure
5387 to give the error required by the 3.7(15) subclause. Mention
5388 "statically" in the error message and add secondary message
5389 if the incompatibility comes from the predicates.
5390 (Build_Derived_Concurrent_Type): Call it when a new discriminant
5391 constrains an old one.
5392 (Build_Derived_Record_Type): Likewise.
5393 * sem_eval.ads (Predicates_Compatible): Declare.
5394 * sem_eval.adb (Predicates_Compatible): New function to implement
5395 the compatibility of predicates specified by the 4.9.1 clause.
5396 (Subtypes_Statically_Compatible): Call it.
5398 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
5400 * sem_eval.ads (Predicates_Match): Fix description.
5401 * sem_eval.adb (Predicates_Match): Rewrite.
5403 2020-06-15 Ed Falis <falis@adacore.com>
5405 * Makefile.rtl: Change name of hie/g-io__vxworks-ppc-cert.adb.
5407 2020-06-15 Arnaud Charlet <charlet@adacore.com>
5409 * sem_ch8.adb (Premature_Usage): Add support for subtype
5410 references and replace set of if-then-else by a case statement.
5412 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5414 * sem_prag.adb (Analyze_Depends_In_Decl_Part,
5415 Analyze_Global_In_Decl_Part): Bring back task discriminants for
5416 analysis of the Global/Depends contracts; add comments.
5418 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
5420 * einfo.ads (Return_Applies_To): Document special usage for E_Block.
5421 * einfo.adb (Write_Field8_Name): Write it for E_Block too.
5422 * exp_ch4.adb (Expand_N_Type_Conversion): Remove implementation of
5423 the check prescribed by AI05-0073.
5424 * exp_ch6.adb (Apply_CW_Accessibility_Check): New procedure to apply
5425 the check prescribed by AI95-344 extracted from...
5426 (Expand_N_Extended_Return_Statement): Apply the check prescribed by
5427 AI95-344 to the expression, if present. Suppress only access checks
5428 when analyzing the rewritten result.
5429 (Expand_Simple_Function_Return): ...here. Rename local variable.
5430 Call Apply_CW_Accessibility_Check to apply the check prescribed by
5431 AI95-344, but do not do it for the simple return statement generated
5432 by the expansion of an extended return statement. Apply the check
5433 prescribed by AI05-0073 to all functions returning anonymous access
5434 type designating a specific tagged type, but not if the expression
5435 was null or tag checks are suppressed for the type, and use Not In
5436 operator rather than comparing the tags explicitly.
5437 * sem.adb (Analyze): Handle all Suppress values.
5438 * sem_ch6.adb (Analyze_Function_Return): Do not explicitly apply
5439 predicate checks in the case of an extended return statement.
5440 Do not apply an implicit conversion to the anonymous access result
5441 type in the case of the simple return statement generated by the
5442 expansion of an extended return statement.
5443 (New_Overloaded_Entity): Small comment tweak.
5444 * treepr.adb (Print_Node): Fix typo in flag string.
5446 2020-06-15 Bob Duff <duff@adacore.com>
5448 * exp_put_image.ads, exp_put_image.adb
5449 (Image_Should_Call_Put_Image): New function to determine whether
5450 the call to Put_Image should be generated.
5451 (Build_Image_Call): New procedure to generate the call to
5453 * exp_imgv.adb (Expand_Image_Attribute): Use underlying types to
5454 bypass privacy (only in Ada 2020). If
5455 Image_Should_Call_Put_Image is True (which happens only in Ada
5456 2020), then call Build_Image_Call.
5457 * rtsfind.ads, rtsfind.adb: Add the necessary declarations in
5458 Ada.Strings.Text_Output.Buffers.
5459 * sem_attr.adb (Check_Image_Type): Enable the Ada 2020 case.
5460 * libgnat/a-stoufo.ads, libgnat/a-stoufo.adb: Use the less
5461 restrictive type that allows newline characters.
5463 2020-06-15 Gary Dismukes <dismukes@adacore.com>
5465 * exp_ch9.ads (Build_Master_Declaration): Add commas.
5466 * exp_ch9.adb (Build_Master_Entity): Spelling fix ("build" =>
5468 (Build_Task_Activation_Call): Fix word order.
5470 2020-06-15 Arnaud Charlet <charlet@adacore.com>
5472 * libgnat/a-nbnbin.ads (Big_Positive, Big_Natural): Fix
5475 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5477 * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix
5478 dealing with scopes on subprogram bodies that act as specs.
5479 * sem_util.adb (Has_Relaxed_Initialization): Fix trivial
5482 2020-06-15 Javier Miranda <miranda@adacore.com>
5484 * restrict.ads (Set_Global_No_Tasking, Global_No_Tasking): New
5486 * restrict.adb (Set_Global_No_Tasking, Global_No_Tasking): New
5488 * sem_ch3.adb (Access_Definition): Do not skip building masters
5489 since they may be required for BIP calls.
5490 (Analyze_Subtype_Declaration): Propagate attribute
5491 Is_Limited_Record in class-wide subtypes and subtypes with
5492 cloned subtype attribute; propagate attribute
5493 Is_Limited_Interface.
5494 * sem_ch6.adb (Check_Anonymous_Return): Do not skip building
5495 masters since they may be required for BIP calls. Use
5496 Build_Master_Declaration to declare the _master variable.
5497 (Create_Extra_Formals): Add decoration of Has_Master_Entity when
5498 the _master formal is added.
5499 * exp_ch3.adb (Init_Formals): Adding formal to decorate it with
5500 attribute Has_Master_Entity when the _master formal is added.
5501 (Build_Master): Do not skip building masters since they may be
5502 required for BIP calls.
5503 (Expand_N_Object_Declaration): Ensure activation chain and
5504 master entity for objects initialized with BIP function calls.
5505 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
5506 Adding support to detect and save restriction No_Tasking when
5507 set in the run-time package System or in a global configuration
5509 * sem_util.adb (Current_Entity_In_Scope): Overload this
5510 subprogram to allow searching for an entity by its Name.
5511 * sem_util.ads (Current_Entity_In_Scope): Update comment.
5512 * exp_ch4.adb (Expand_N_Allocator): Do not skip building masters
5513 since they may be required for BIP calls.
5514 * exp_ch6.ads (Might_Have_Tasks): New subprogram.
5515 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add
5516 support for BIP calls returning objects that may have tasks.
5517 (Make_Build_In_Place_Call_In_Allocator): Build the activation
5518 chain if the result might have tasks.
5519 (Make_Build_In_Place_Iface_Call_In_Allocator): Build the class
5520 wide master for the result type.
5521 (Might_Have_Tasks): New subprogram.
5522 (Needs_BIP_Task_Actuals): Returns False when restriction
5523 No_Tasking is globally set.
5524 * exp_ch9.ads (Build_Master_Declaration): New subprogram.
5525 * exp_ch9.adb (Build_Activation_Chain_Entity): No action
5526 performed when restriction No_Tasking is globally set.
5527 (Build_Class_Wide_Master): No action performed when restriction
5528 No_Tasking is globally set; use Build_Master_Declaration to
5529 declare the _master variable.
5530 (Build_Master_Declaration): New subprogram.
5531 (Build_Master_Entity): No action performed when restriction
5532 No_Tasking is globally set; added support to handle transient
5533 scopes and _finalizer routines.
5534 (Build_Master_Renaming): No action performed when restriction
5535 No_Tasking is globally set.
5536 (Build_Task_Activation_Call): Skip generating the call when
5537 the chain is an ignored ghost entity.
5538 (Find_Master_Scope): Generalize the code that detects transient
5539 scopes with master entity.
5540 * einfo.ads (Has_Nested_Subprogram): Minor comment reformatting.
5542 2020-06-15 Arnaud Charlet <charlet@adacore.com>
5544 * sem_attr.adb (Eval_Attribute): Protect against previous
5546 * sem_ch13.adb (Analyze_Aspect_Default_Value): Remove redundant
5547 error checking, handling in Analyze_Aspect_Specifications.
5548 (Analyze_Aspect_Specifications): Refine error messages on
5549 Default_[Component_]Value.
5550 (Check_Aspect_Too_Late): New procedure.
5551 (Rep_Item_Too_Late.Is_Derived_Type_With_Constraint): Remove,
5553 * aspects.ads (Is_Representation_Aspect): Default_Value is a
5554 representation aspect.
5556 2020-06-15 Arnaud Charlet <charlet@adacore.com>
5558 * libgnat/a-wichha.ads, libgnat/a-wichha.adb,
5559 libgnat/a-wichun.ads, libgnat/a-wichun.adb (Is_Basic, To_Basic):
5561 * libgnat/s-utf_32.ads, libgnat/s-utf_32.adb (Is_UTF_32_Basic,
5562 To_UTF_32_Basic, Decomposition_Search): New subprograms.
5563 (Unicode_Decomposition): New table.
5565 2020-06-15 Gary Dismukes <dismukes@adacore.com>
5567 * exp_ch6.adb (Add_Call_By_Copy_Code): In the case of a view
5568 conversion passed to a scalar out-mode parameter where the
5569 formal has Default_Value set, declare the copy temp with the
5570 base type of the formal's subtype and initialize the copy temp
5571 with the actual's value.
5573 2020-06-15 Justin Squirek <squirek@adacore.com>
5575 * exp_ch4.adb (Expand_N_Case_Expression): Set default value for
5576 Target to silence potential warnings.
5577 (Expand_N_If_Expression): Add calculation to check when the if
5578 expression is used directly in the context of an actual of an
5579 anonymous access type and add a special path to force expansion
5580 of the if expression in this case.
5581 * exp_ch6.adb (Expand_Branch): Generate an assignment to the
5582 level temporary for a given branch.
5583 (Expand_Call_Helper): Add expansion to allow for creating a
5584 temporary to store associated accessiblity levels on each branch
5585 of the conditional expression. Also perform expansion of
5586 function calls into expressions with actions, and fixup
5587 references to N with Call_Node.
5588 (Insert_Level_Assign): Move through nested conditional
5589 expressions to each branch.
5590 * sem_util.ads, sem_util.adb (Is_Anonymous_Access_Actual): Added
5591 to detect when to force expansion of if expressions.
5593 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5595 * sem_prag.adb (Analyze_Depends_In_Decl_Part,
5596 Analyze_Global_In_Decl_Part): Do not install task discriminants
5597 for analysis of the Global/Depends contracts.
5599 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5601 * contracts.adb (Analyze_Object_Contract): Do not expect
5602 Global/Depends on single protected units.
5604 2020-06-15 Justin Squirek <squirek@adacore.com>
5606 * sem_res.adb (Valid_Conversion): Add missing condition to
5607 trigger proper static accessiblity failiures when the target
5608 type is an anonymous access.
5610 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5612 * exp_ch6.adb (Expand_Call_Helper): Replace repeated Ekind with
5615 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5617 * exp_ch6.adb, sem_util.adb: Remove excessive parents,
5618 especially since they don't make the code any easier to read.
5620 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5622 * aspects.ads (Aspect_Id): Add Aspect_Relaxed_Initialization.
5623 (Implementation_Defined_Aspect): Add new aspect.
5624 (Aspect_Argument): Add new aspect with Optional_Expression
5626 (Is_Representation_Aspect): Add new aspect as a
5627 non-representation one.
5628 (Aspect_Names): Add name for the new aspect.
5629 (Aspect_Delay): Add new aspect as a non-delayed one.
5630 * sem_ch3.adb: Minor reformatting.
5631 * einfo.ads, einfo.adb (Is_Relaxed_Initialization_State): New
5632 query; reuses existing code for querying abstract state options.
5633 * exp_attr.adb (Expand_N_Attribute_Reference): For now ignore
5634 attribute 'Initialized.
5635 * sem_attr.adb (Analyze_Attribute_Old_Result): Allow attribute
5636 'Result to be used in the aspect Relaxed_Initialization
5638 (Analyze_Attribute): Analyze attribute 'Initialized; based on
5639 existing code for attribute 'Valid_Scalars.
5640 (Eval_Attribute): Do not expect attribute 'Initialized, just
5641 like attribute 'Valid_Scalars is not expected.
5642 * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): New
5644 (Analyze_Aspect_Specifications): Analyze new aspect in a
5646 (Check_Aspect_At_Freeze_Point): Do not expect new aspect.
5647 * sem_prag.adb (Analyze_Abstract_State): Support option
5648 Relaxed_Initialization on abstract states.
5649 * sem_util.ads, sem_util.adb (Has_Relaxed_Initialization): New
5650 query for the GNATprove backend.
5651 * snames.ads-tmpl (Snames): Add Name_Ids for the new aspect and
5652 attribute; add an Attribute_Id for the new attribute.
5654 2020-06-15 Bob Duff <duff@adacore.com>
5656 * exp_put_image.adb, libgnat/s-putima.adb, libgnat/s-putima.ads,
5657 rtsfind.ads: Enable Put_Image if Is_Access_Subprogram_Type (Typ).
5658 Remove comment saying it's disabled in that case. Rename
5659 Put_Image_Access_Prot to be Put_Image_Access_Prot_Subp to
5660 clarify that we're talking about access-to-subprogram, not
5661 access-to-protected-object.
5663 2020-06-15 Bob Duff <duff@adacore.com>
5665 * sem_attr.adb (Check_Image_Type): New procedure for checking
5666 the type, depending on language version. Disable the Ada 2020
5667 support until the corresponding expander work is done.
5668 (Analyze_Image_Attribute): Call Check_Image_Type. Rearrange the
5669 code to be simplier and more logical. When P_Type is modified,
5670 modify P_Base_Type accordingly.
5671 * sem_util.adb (Is_Object_Image): Do not return False if the
5672 prefix is a type. X'Image should be considered an image of an
5673 object iff X is an object (albeit illegal pre-2020 if
5676 2020-06-15 Bob Duff <duff@adacore.com>
5678 * libgnat/s-putima.ads, libgnat/s-putima.adb
5679 (Put_Image_Access_Subp, Put_Image_Access_Prot): New procedures
5680 for printing access-to-subprogram objects. Remove an explicit
5681 " ", because Put_Image includes the annoying leading blank.
5682 * rtsfind.ads: Add new procedures in s-putima.
5683 * exp_put_image.adb: Call new procedures as appropriate.
5685 2020-06-15 Bob Duff <duff@adacore.com>
5687 * exp_imgv.adb (Expand_Image_Attribute): Allow private types.
5688 Put_Image generates Image for numeric types, and private types
5689 whose full type is numeric. This requires the Conversion_OK flag
5690 for integer and floating-point types. For fixed point, we need
5691 the extra conversion.
5692 * exp_put_image.adb (Build_Elementary_Put_Image_Call): Remove
5693 special handling of real types.
5694 (Enable_Put_Image): Enable for reals.
5696 2020-06-15 Bob Duff <duff@adacore.com>
5698 * exp_attr.adb (Put_Image): Use underlying type for strings.
5699 Remove unchecked union processing.
5700 * exp_put_image.adb (Tagged_Put_Image_Enabled): Use -gnatd_z to
5701 enable default Put_Image for tagged types. This allows testing
5703 (Build_String_Put_Image_Call): Set Conversion_OK flag.
5704 (Make_Component_List_Attributes): Remove unchecked union
5706 (Enable_Put_Image): Disable for unchecked unions. Enable for
5707 nonscalar types (which were mistakenly disabled in earlier
5709 * debug.adb: Document -gnatd_z switch.
5710 * libgnat/s-putima.adb (Put_Image_String, Put_Image_Wide_String,
5711 Put_Image_Wide_Wide_String): Double double-quote characters.
5712 Forget about special handling of control characters for now --
5713 that's rare enough to not be a priority, and it's not clear what
5714 the right thing to do is anyway.
5715 * namet.adb: Minor: Improve debugger-friendliness.
5716 * sinfo.ads: Minor: Add "???" comment.
5718 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5720 * sem_util.ads, sem_util.adb (Is_Renaming_Declaration): Remove.
5722 2020-06-15 Ed Schonberg <schonberg@adacore.com>
5724 * freeze.adb (Freeze_Expression): When traversing the tree
5725 looking for the proper insertion point for the freeze node of an
5726 entity that is declared in an outer scope, set the candidate
5727 subprogram body node properly. Previous code has an off-by-one
5730 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
5732 * exp_attr.adb (Expand_N_Attribute_Reference) <Has_Same_Storage>:
5733 Do not do superfluous work. Add the condition (X'Size /= 0) on
5734 both paths and turn binary AND into short-circuit AND THEN.
5736 2020-06-15 Steve Baird <baird@adacore.com>
5738 * sem_attr.adb (Analyze_Attribute): In the Loop_Entry case,
5739 replace a call to Statically_Denotes_Object with a call to
5740 Statically_Names_Object and clean up the preceding comment.
5742 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
5744 * sem_res.adb (Resolve_Set_Membership): Remove local variable.
5745 In the non-overloaded case, call Intersect_Types on the left
5746 operand and the first alternative to get the resolution type.
5747 But test the subtype of the left operand to give the warning.
5749 2020-06-12 Steve Baird <baird@adacore.com>
5751 * sem_res.adb (Valid_Conversion): The simpler cases of
5752 violations of the aforementioned 8.6 rule are already handled
5753 correctly. These include cases where the operand of the type
5754 conversion is an access parameter or a stand-alone object of an
5755 anonymous access type. Add code to detect violations where the
5756 operand of the type conversion is an access discriminant whose
5757 accessibility level is tied to one of the other simpler cases.
5758 This is implemented in a new function,
5759 Valid_Conversion.Is_Discrim_Of_Bad_Access_Conversion_Argument,
5760 which is called in place of the previous test.
5762 2020-06-12 Bob Duff <duff@adacore.com>
5764 * exp_attr.adb (Put_Image): Remove assertion. This assertion is
5765 False in mixed-Ada-version programs.
5766 * exp_put_image.adb (Tagged_Put_Image_Enabled): New flag to make
5767 it easy to experiment with Put_Image on tagged types. False in
5769 (Enable_Put_Image): Enable in pre-2020. Workarounds: Disable
5770 for tagged types if Tagged_Put_Image_Enabled is False. Disable
5771 for access-to-subprogram types. Disable if errors have been
5772 detected, or Sink is unavailable.
5773 (Preload_Sink): Move all conditionals here, from Sem_Ch10, so
5774 they can be nearby related code in Enable_Put_Image. Load Sink
5775 only if we have seen a tagged type. This removes the dilemma
5776 about calling Preload_Sink when compiling the compiler, which
5777 caused unwanted dependences.
5778 * exp_put_image.ads (Preload_Sink): New formal Compilation_Unit,
5779 needed to move all conditionals here, from Sem_Ch10.
5780 * libgnat/a-stouut.adb (Put_UTF_8): Make this suitable for
5781 inlining, so we don't get warnings about inlining in some tests.
5782 And so it can be inlined!
5783 * opt.ads (Tagged_Seen): New flag (see Preload_Sink).
5784 * scng.adb (Scan): Set new Tagged_Seen flag.
5785 * sem_ch10.adb (Analyze_Compilation_Unit): Move conditionals and
5786 comments regarding Preload_Sink into Preload_Sink.
5788 2020-06-12 Arnaud Charlet <charlet@adacore.com>
5790 * sem_res.adb (Resolve_Actuals): Check for AI12-0074.
5792 2020-06-12 Olivier Hainque <hainque@adacore.com>
5794 * libgnat/s-secsta.ads (Memory_Alignment): New constant, memory
5795 alignment for chunks and allocated blocks. Initialize to
5796 Standard'Maximum_Alignment * 2.
5797 (Chunk_Memory): Use it.
5798 * libgnat/s-secsta.adb (Round_Up): Likewise.
5800 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5802 * par-prag.adb: Fix ordering.
5803 * snames.ads-tmpl (Name_Test_Case, Pragma_Test_Case): Likewise.
5804 * sem_prag.adb (Sig_Flags): Likewise.
5806 2020-06-12 Arnaud Charlet <charlet@adacore.com>
5808 * sem_res.adb (Resolve_Entity_Name): Fix handling of expressions
5809 containing array attributes wrt Ada 83 detection.
5811 2020-06-12 Steve Baird <baird@adacore.com>
5813 * sem_util.ads, sem_util.adb: Define 3 new Boolean-valued
5814 functions - Statically_Denotes_Entity,
5815 Statically_Denotes_Object, and Statically_Names_Object. The
5816 first two were taken from sem_attr.adb. The term "statically
5817 names" is defined in the Ada RM and the new function
5818 Statically_Names_Object is intended to reflect that definition,
5819 or more precisely, as described in a comment in the code, to
5820 reflect the expected future definition of that term.
5821 * sem_attr.adb: Delete functions Statically_Denotes_Object and
5822 Statically_Denotes_Entity; these two functions have been moved
5823 to package Sem_Util. Replace call to Statically_Denotes_Object
5824 with a call to Statically_Names_Object as per AI12-0217 (a
5825 binding interpretation, so no Ada_Version check).
5826 * exp_ch9.adb (Expand_Entry_Barrier.Is_Simple_Barrier): Change
5827 name of function (it was previously Is_Simple_Barrier_Name)
5828 because the function should return True in the case of a static
5829 expression; implement this requirement. Change function to
5830 include a call to Statically_Names_Object so that, for Ada_2020
5831 and later, it will return True for appropriate subcomponent
5833 (Expand_Entry_Barrier.Is_Pure_Barrier): Handle
5834 N_Indexed_Component and N_Selected_Component cases by calling
5835 Statically_Names_Object.
5836 (Expand_Entry_Barrier): Reorganize to treat Simple_Barriers and
5837 Pure_Barriers more uniformly. Prevent cascaded errors.
5839 2020-06-12 Ed Schonberg <schonberg@adacore.com>
5841 * sem_ch12.adb (Find_Matching_Actual): Add guard on search loops
5842 to detect a compilation error when using a compiler built
5844 (Instantiate_Formal_Subprogram): Create a new subprogram name
5845 for the actual only if formal has contract aspects and expansion
5848 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
5850 * exp_aggr.adb: Add with and use clauses for Sem_Mech.
5851 (Get_Base_Object): New function to get the base object of a node.
5852 (In_Place_Assign_OK): Add Target_Object parameter. Deal with a
5853 qualified expression on entry. Remove short-circuit for array
5854 aggregates with a single "others" choice. Do not look into the
5855 components of the aggregate if the parent is an allocator.
5856 (Check_Component): Add T_OK parameter and rewrite.
5857 (Safe_Component): Invoke Check_Component with T_OK set to False.
5858 (Convert_To_Assignments): Try to use an in-place assignment for
5859 any target; for that, call Get_Base_Object on the target and pass
5860 the result to In_Place_Assign_OK.
5861 (Expand_Array_Aggregate): Use Parent_Kind and Parent_Node more
5862 consistently. For an assignment, call Get_Base_Object on the
5863 target and pass the result to In_Place_Assign_OK.
5865 2020-06-12 Dmitriy Anisimkov <anisimko@adacore.com>
5867 * socket.c (__gnat_minus_500ms): Use GetVersionEx to detect
5868 Windows Server version.
5869 * libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): Remade to
5871 * libgnat/g-socket.adb (Set_Socket_Option): Use
5872 Minus_500ms_Windows_Timeout constant instead of function call.
5874 2020-06-12 Arnaud Charlet <charlet@adacore.com>
5876 * libgnat/a-coinho.ads, libgnat/a-coinho.adb,
5877 libgnat/a-coinho__shared.ads, libgnat/a-coinho__shared.adb
5878 (Swap): New procedure.
5880 2020-06-12 Arnaud Charlet <charlet@adacore.com>
5882 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do nothing for
5883 a subprogram declared in a protected body.
5884 * exp_ch9.ads, exp_ch9.adb
5885 (Build_Private_Protected_Declaration): Moved to sem_ch6.adb.
5886 (Expand_N_Protected_Body): Do nothing for a subprogram declared
5887 in a protected body.
5888 * sem_ch6.adb (Build_Internal_Protected_Declaration): Moved from
5889 exp_ch9.adb and renamed and fixed to ensure in particular that
5890 such subprograms have convention Intrinsic and have no protected
5892 (Analyze_Subprogram_Body_Helper): Call
5893 Build_Internal_Protected_Declaration.
5894 (Move_Pragmas): Moved up and merged with the more general
5895 version from Build_Private_Protected_Declaration. We only want
5896 to copy selected pragmas, most pragmas are not suitable for a
5899 2020-06-12 Ed Schonberg <schonberg@adacore.com>
5901 * sem_ch6.adb (Check_Overriding_Indicatior): Reject an
5902 overriding indicator on a subprogram declared within a protected
5905 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5907 * contracts.adb, einfo.adb, sem_ch4.adb, sem_ch6.adb,
5908 sem_res.adb, sem_util.adb: Replace Ekind_In with Is_Entry.
5910 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5912 * sem_res.adb (Resolve_Entry_Call): Add call to
5913 Warn_On_Overlapping_Actuals.
5915 2020-06-12 Arnaud Charlet <charlet@adacore.com>
5917 * aspects.ads (Is_Representation_Aspect): New array.
5918 * sem_ch13.adb (Analyze_Aspect_Specifications): Check
5919 13.1(9.2/5) for representation aspects.
5921 2020-06-12 Bob Duff <duff@adacore.com>
5923 * exp_put_image.ads, exp_put_image.adb (Preload_Sink): Procedure
5924 for preloading type Sink. This has the side effect of loading
5925 various dependents, including Ada.Strings.UTF_Encoding.
5926 (Enable_Put_Image): Disable Put_Image in pre-2020 versions of
5927 Ada. This limitation can probably be lifted later. Enable for
5928 tagged types except in predefined units. Disable for CPP types;
5929 Put_Image is legal, just prints the type name.
5930 * sem_attr.adb (Check_Put_Image_Attribute): Don't complain about
5931 Put_Image of CPP types; instead call the "unknown" version of
5933 * sem_ch10.adb (Analyze_Compilation_Unit): Call Preload_Sink.
5935 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5937 * sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify.
5939 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5941 * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove suppression
5944 2020-06-12 Arnaud Charlet <charlet@adacore.com>
5946 * exp_strm.adb (Build_Elementary_Input_Call): Add support for 24
5947 bits elementary types.
5948 * rtsfind.ads: Add 24 bits integer streaming routines.
5949 * sem_ch13.adb (Analyze_Attribute_Definition_Clause
5950 [Attribute_Stream_Size]): Add support for 24 bits elementary
5952 * libgnat/s-stratt.ads, libgnat/s-stratt.adb,
5953 libgnat/s-stratt__xdr.adb: Add support for signed and unsigned
5956 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5958 * sem_ch3.adb (Get_Discr_Value): Cleanup.
5960 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
5962 * rtsfind.ads (RTU_Id): Add System_Address_To_Access_Conversions.
5963 * sem_elab.adb (Elaboration_Phase_Active): Alphabetize.
5964 (Finalize_All_Data_Structures): Likewise.
5965 (Error_Preelaborated_Call): New procedure.
5966 (Build_Call_Marker): Set Is_Preelaborable_Call flag in marker.
5967 (Build_Access_Marker): Likewise.
5968 (Build_Subprogram_Invocation): Likewise.
5969 (Build_Task_Activation): Likewise.
5970 (Check_Preelaborated_Call): Return when the call is preelaborable.
5971 Call Error_Preelaborated_Call to give the error otherwise.
5972 (Check_Elab_Call): Likewise.
5973 * sem_util.adb (Is_Preelaborable_Function): New predicate.
5974 (Is_Non_Preelaborable_Construct.Visit): Recurse on the
5975 Explicit_Actual_Parameter field of N_Parameter_Association.
5976 (Is_Non_Preelaborable_Construct.Visit_Subexpression): In Ada 2020,
5977 for a call to a preelaborable function, visit the parameter list;
5978 otherwise, raise Non_Preelaborable exception.
5979 (Is_Preelaborable_Construct): Likewise, but recursively check the
5980 parameters instead and return false upon failure, otherwise true.
5981 * sinfo.ads (Is_Preelaborable_Call): New flag in call marker nodes.
5982 (Is_Preelaborable_Call): New inline function.
5983 (Set_Is_Preelaborable_Call): New inline procedure.
5984 * sinfo.adb (Is_Preelaborable_Call): New inline function.
5985 (Set_Is_Preelaborable_Call): New inline procedure.
5987 2020-06-12 Bob Duff <duff@adacore.com>
5989 * stringt.ads: Remove "use System;".
5991 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
5993 * sem_ch4.adb (Try_Container_Indexing): Replace call to
5994 First_Discriminant by Get_Reference_Discriminant to get the
5995 reference discriminant.
5996 * sem_ch13.adb (Check_Indexing_Functions): Likewise.
5997 * sem_ch5.adb (Preanalyze_Range): Call Get_Reference_Discriminant
5998 to get the reference discriminant.
5999 * sem_util.adb (Is_OK_Variable_For_Out_Formal): Treat all
6000 Ada 2012 implicit dereferences in only one place.
6001 (Is_Variable): Minor tweak.
6003 2020-06-12 Ed Schonberg <schonberg@adacore.com>
6005 * sem_ch12.adb (Has_Contracts): New predicate to check whether a
6006 formal subprogram carries an aspect specification for a pre- or
6008 (Build_Subprogram_Wrappers): If actual is overloaded, create a
6009 new name to be used in call inside wrapper body. This names
6010 carries the interpretations of the actual, and is resolved when
6011 the body is analyzed.
6012 (Build_Subprogram_Body_Wrapper): Use this generated name in
6014 (Build_Subprogram_Decl_Wrapper): Build profile of wrapper from
6015 the profile of formal, and reset type entities for subsequent
6018 2020-06-12 Bob Duff <duff@adacore.com>
6020 * debug.adb: Remove usage of -gnatd_z.
6021 * exp_attr.adb, exp_put_image.ads, exp_put_image.adb: Clean up
6022 the enable/disable code. If Put_Image is disabled for a type,
6023 systematically call the "unknown" version. Improve comments.
6024 Consolidate workarounds. Remove usage of -gnatd_z.
6026 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
6028 * sem_elab.adb: Fix typos in comments.
6030 2020-06-12 Justin Squirek <squirek@adacore.com>
6032 * sem_util.adb (Object_Access_Level): Add processing of implicit
6035 2020-06-12 Bob Duff <duff@adacore.com>
6037 * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
6038 libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
6039 libgnat/a-nbnbre.ads: Update Put_Image, and uncomment the aspect
6040 specification. Add pragmas Ada_2020.
6041 * libgnat/a-stouut.ads, libgnat/a-stteou.ads: Add Preelaborate,
6042 because the Big_Numbers packages have Preelaborate, and now
6043 depend on these Text_Output packages.
6045 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
6047 * einfo.ads (No_Return): Document it for all subprograms.
6048 * einfo.adb (Set_No_Return): Adjust assertion accordingly.
6049 * sem_ch3.adb (Check_Abstract_Overriding): Implement the
6050 check prescribed by RM 6.5.1(6/2) here instead of...
6051 (Derive_Subprogram): Adjust comment accordingly.
6052 * sem_disp.adb (Override_Dispatching_Operation): ...here.
6053 Remove superfluous return statement.
6054 * sem_ch6.adb (Check_No_Return_Expression): New procedure.
6055 (Analyze_Function_Return): Call it to implement the check
6056 prescribed by AI12-0269 for simple return statements of
6057 No_Return functions, and also checks extended statements.
6058 (Analyze_Return_Statement): Only give an error on a return
6059 statement in No_Return procedures. Use idiomatic form.
6060 * sem_ch8.adb (Analyze_Subprogram_Renaming): Adjust error
6061 message for No_Return renaming subprogram.
6062 * sem_prag.adb (Analyze_Pragma) <Pragma_No_Return>: Accept
6063 it on functions and generic functions in Ada 2020.
6065 2020-06-11 Eric Botcazou <ebotcazou@adacore.com>
6067 * sem_res.adb (Resolve_Implicit_Dereference): In an instance,
6068 reset the type of the prefix if it is private before building
6071 2020-06-11 Eric Botcazou <ebotcazou@adacore.com>
6073 * exp_util.adb (Safe_Unchecked_Type_Conversion): Add missing
6074 Is_Type guard before calling Has_Discriminants on Etype.
6076 2020-06-11 Bob Duff <duff@adacore.com>
6078 * libgnat/a-nbnbin__gmp.adb: There's no Optional_Big_Integer
6079 anymore. Invalid_Big_Integer is not used.
6080 Greatest_Common_Divisor returns Big_Positive.
6082 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6084 * sem_aggr.adb (Get_Value): Refine type of the Compon parameter.
6086 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6088 * sem_aggr.adb (Resolve_Record_Aggregate): Refine type of
6091 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6093 * checks.adb, exp_ch7.adb, exp_ch9.adb, exp_smem.adb, lib.adb,
6094 nlists.adb, sem.adb, sem_aggr.adb, sem_ch3.adb, sem_ch6.adb,
6095 sem_ch8.adb, sem_dim.adb, sem_res.adb, sem_util.adb,
6096 sem_warn.adb: Replace uses of Next function with procedure.
6098 2020-06-11 Eric Botcazou <ebotcazou@adacore.com>
6100 * exp_pakd.ads: Add paragraph about scalar storage order.
6101 * exp_pakd.adb (Install_PAT): Do not set the scalar storage
6102 order of the PAT here but...
6103 (Set_PB_Type): ...here instead and...
6104 (Create_Packed_Array_Impl_Type): ...here as well.
6105 * rtsfind.ads (RE_Id): Add RE_Rev_Packed_Bytes{1,2,4}.
6106 (RE_Unit_Table): Likewise.
6107 * libgnat/s-unstyp.ads (Rev_Packed_Bytes1): New derived type.
6108 (Rev_Packed_Bytes2): Likewise.
6109 (Rev_Packed_Bytes4): Likewise.
6111 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6113 * sem_ch4.adb, sem_ch6.adb, sem_res.adb, sem_util.ads: Fix
6114 references to SPARK RM 7.1.3 rule numbers.
6116 2020-06-11 Ed Schonberg <schonberg@adacore.com>
6118 * sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify code,
6119 remove inner predicate Is_Covered_Formal, preserve warning for
6120 two overlapping composite types when only one is writable, and
6121 for two overlapping and writable elementary types.
6123 2020-06-11 Steve Baird <baird@adacore.com>
6125 * contracts.adb (Add_Contract_Item): Support specifying
6126 volatility refinement aspects for types.
6127 (Analyze_Contracts): Add call to Analyze_Type_Contract in the
6128 case of a contract for a type.
6129 (Freeze_Contracts): Add call to Analyze_Type_Contract in the
6130 case of a contract for a type.
6131 (Check_Type_Or_Object_External_Properties): A new procedure
6132 which performs the work that needs to be done for both object
6133 declarations and types.
6134 (Analyze_Object_Contract): Add a call to
6135 Check_Type_Or_Object_External_Properties and remove the code in
6136 this procedure which did much of the work that is now performed
6138 (Analyze_Type_Contract): Implement this new routine as nothing
6139 more than a call to Check_Type_Or_Object_External_Properties.
6140 * contracts.ads: Update comment for Add_Contract_To_Item because
6141 types can have contracts. Follow (questionable) precedent and
6142 declare new routine Analyze_Type_Contract as visible (following
6143 example of Analyze_Object_Contract), despite the fact that it is
6144 never called from outside of the package where it is declared.
6145 * einfo.adb (Contract, Set_Contract): Id argument can be a type;
6147 (Write_Field34_Name): Field name is "contract" for a type.
6148 * einfo.ads: Update comment describing Contract attribute.
6149 * sem_ch3.adb (Build_Derived_Numeric_Type): Is_Volatile should
6150 return same answer for all subtypes of a given type. Thus, when
6151 building the base type for something like type Volatile_1_To_10
6152 is range 1 .. 10 with Volatile; that basetype should be marked
6154 (Access_Type_Declaration): Add SPARK-specific legality check
6155 that the designated type of an access type shall be compatible
6156 with respect to volatility with the access type.
6157 * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Add
6158 SPARK-specific legality check that an actual type parameter in
6159 an instantiation shall be compatible with respect to volatility
6160 with the corresponding formal type.
6161 * sem_ch13.adb (Analyze_Aspect_Specifications): Perform checks
6162 for aspect specs for the 4 volatility refinement aspects that
6163 were already being performed for all language-defined aspects.
6164 * sem_prag.adb (Analyze_External_Property_In_Decl_Part,
6165 Analyze_Pragma): External properties (other than No_Caching) may
6166 be specified for a type, including a generic formal type.
6167 * sem_util.ads: Declare new subprograms - Async_Readers_Enabled,
6168 Async_Writers_Enabled, Effective_Reads, Effective_Writes, and
6169 Check_Volatility_Compatibility.
6170 * sem_util.adb (Async_Readers_Enabled, Async_Writers_Enabled,
6171 Effective_Reads, Effective_Writes): Initial implementation of
6172 new functions for querying aspect values.
6173 (Check_Volatility_Compatibility): New procedure intended for use
6174 in checking all SPARK legality rules of the form "<> shall be
6175 compatible with respect to volatility with <>".
6176 (Has_Enabled_Property): Update comment because Item_Id can be a
6177 type. Change name of nested Variable_Has_Enabled_Property
6178 function to Type_Or_Variable_Has_Enabled_Property; add a
6179 parameter to that function because recursion may be needed,
6180 e.g., in the case of a derived typ). Cope with the case where
6181 the argument to Has_Enabled_Property is a type.
6183 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6185 * sem_aggr.adb (Add_Association): Add assertion about the formal
6187 (Propagate_Discriminants): Always add an explicit component
6188 association, so that an "others => <>" association is never
6191 2020-06-11 Bob Duff <duff@adacore.com>
6193 * exp_put_image.adb (Build_Elementary_Put_Image_Call): If the
6194 underlying type is real, call Put_Image_Unknown.
6195 (Build_Unknown_Put_Image_Call): Pass the type name to
6197 * libgnat/s-putima.ads, libgnat/s-putima.adb
6198 (Put_Image_Unknown): Add Type_Name parameter. Remove
6199 overly-detailed documentation of what it does; better to leave
6202 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6204 * sem_ch3.adb (Build_Constrained_Array_Type,
6205 Build_Constrained_Discriminated_Type): Skip unnecessary loop
6208 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6210 * sem_aggr.adb (Build_Constrained_Itype): Move to Sem_Util.
6211 * sem_ch3.adb (Build_Subtype, Inherit_Predicate_Flags): Move...
6212 * sem_util.adb (Build_Subtype): Here. Add parameters for
6213 references to objects previously declared in enclosing scopes.
6214 (Inherit_Predicate_Flags): And here, because it is called by
6216 * sem_util.ads (Build_Overriding_Spec): Reorder alphabetically.
6217 (Build_Subtype): Moved from Sem_Ch3; comments updated.
6218 (Build_Constrained_Itype): Moved from Sem_Aggr; comments
6221 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6223 * sem_aggr.adb (Case_Table_Type): Change index type from Nat to
6226 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6228 * sem_aggr.adb (Build_Constrained_Itype): Previously a declare
6229 block, now a separate procedure; the only change is that now
6230 New_Assoc_List might include components and an others clause,
6231 which we ignore (while we deal with discriminants exactly as we
6232 did before); extend a ??? comment about how this routine is
6233 different from the Build_Subtype
6234 (Resolve_Record_Aggregate): Create a constrained itype not just
6235 for the outermost record aggregate, but for its inner record
6238 2020-06-11 Eric Botcazou <ebotcazou@adacore.com>
6240 * checks.adb (Build_Discriminant_Checks): Build an explicit
6241 dereference when the type is an access type.
6242 * exp_atag.adb (Build_CW_Membership): Add explicit dereferences.
6243 (Build_Get_Access_Level): Likewise.
6244 (Build_Get_Alignment): Likewise.
6245 (Build_Inherit_Prims): Likewise.
6246 (Build_Get_Transportable): Likewise.
6247 (Build_Set_Size_Function): Likewise.
6248 * exp_ch3.adb (Build_Offset_To_Top_Function): Likewise.
6249 * exp_ch4.adb (Expand_Allocator_Expression): Likewise.
6250 (Expand_N_Indexed_Component ): Remove code dealing with implicit
6252 (Expand_N_Selected_Component): Likewise.
6253 (Expand_N_Slice): Likewise.
6254 * exp_ch9.adb (Add_Formal_Renamings): Add explicit dereference.
6255 (Expand_Accept_Declarations): Likewise.
6256 (Build_Simple_Entry_Call): Remove code dealing with implicit
6258 (Expand_N_Requeue_Statement): Likewise.
6259 * exp_disp.adb (Expand_Dispatching_Call): Build an explicit
6260 dereference when the controlling type is an access type.
6261 * exp_spark.adb (Expand_SPARK_N_Selected_Component): Delete.
6262 (Expand_SPARK_N_Slice_Or_Indexed_Component): Likewise.
6263 (Expand_SPARK): Do not call them.
6264 * sem_ch4.adb (Process_Implicit_Dereference_Prefix): Delete.
6265 (Process_Indexed_Component): Call Implicitly_Designated_Type
6266 to get the designated type for an implicit dereference.
6267 (Analyze_Overloaded_Selected_Component): Do not insert an
6268 explicit dereference here.
6269 (Analyze_Selected_Component): Likewise.
6270 (Analyze_Slice): Call Implicitly_Designated_Type to get the
6271 designated type for an implicit dereference.
6272 * sem_ch8.adb (Has_Components): New predicate extracted from...
6273 (Is_Appropriate_For_Record): ...this. Delete.
6274 (Is_Appropriate_For_Entry_Prefix): Likewise.
6275 (Analyze_Renamed_Entry): Deal with implicit dereferences.
6276 (Find_Selected_Component): Do not insert an explicit dereference
6277 here. Call Implicitly_Designated_Type to get the designated type
6278 for an implicit dereference. Call Has_Components, Is_Task_Type
6279 and Is_Protected_Type directly. Adjust test for error.
6280 * sem_res.adb (Resolve_Implicit_Dereference): New procedure.
6281 (Resolve_Call): Call Resolve_Indexed_Component last.
6282 (Resolve_Entry): Call Resolve_Implicit_Dereference on the prefix.
6283 (Resolve_Indexed_Component): Call Implicitly_Designated_Type to
6284 get the designated type for an implicit dereference and
6285 Resolve_Implicit_Dereference on the prefix at the end.
6286 (Resolve_Selected_Component): Likewise.
6287 (Resolve_Slice): Likewise. Do not apply access checks here.
6288 * sem_util.ads (Implicitly_Designated_Type): Declare.
6289 * sem_util.adb (Copy_And_Maybe_Dereference): Simplify.
6290 (Implicitly_Designated_Type): New function.
6291 (Object_Access_Level): Fix typo.
6292 * sem_warn.adb (Check_Unset_Reference): Test Comes_From_Source
6293 on the original node.
6295 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6297 * exp_disp.adb: Minor reformatting.
6298 * exp_aggr.adb (Is_Static_Dispatch_Table_Aggregate): Recognize
6299 aggregates of the Ada.Tags.Object_Specific_Data type as static.
6300 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Deconstruct
6301 and do not call it from Build_Constrained_Itype.
6303 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6305 * exp_disp.adb (Make_Secondary_DT): Internally generated OSD
6306 tables are now constant.
6308 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6310 * exp_aggr.adb (Backend_Processing_Possible): Remove useless
6313 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6315 * opt.ads (Building_Static_Dispatch_Tables): Fix punctuation in
6318 2020-06-11 Arnaud Charlet <charlet@adacore.com>
6320 * libgnat/s-stposu.ads (Root_Storage_Pool_With_Subpools,
6321 Root_Subpool): Mark with Preelaborable_Initialization.
6323 2020-06-11 Javier Miranda <miranda@adacore.com>
6325 * exp_ch9.adb (Expand_N_Conditional_Entry_Call): Replace call to
6326 New_Copy_List by calls to the new routine
6327 New_Copy_Separate_List.
6328 * sem_util.ads (New_Copy_Separate_List, New_Copy_Separate_Tree):
6330 * sem_util.adb (New_Copy_Separate_List, New_Copy_Separate_Tree):
6332 (New_Copy_Tree): Extend the machinery that detects syntactic
6333 nodes to handle lists of indentifiers with field More_Ids;
6334 otherwise such nodes are erroneously handled as semantic nodes.
6335 Copy aspect specifications attached to nodes.
6336 * sem_ch12.adb (Copy_Generic_Node): Protect reading attribute
6339 2020-06-11 Bob Duff <duff@adacore.com>
6341 * sem_ch13.adb (Analyze_Aspect_Specifications): Do not set the
6342 Has_Predicates flag when the Predicate_Failure aspect is seen.
6343 It is legal (but pointless) to use this aspect without a
6344 predicate. If we set the flag, we generate a half-baked
6345 Predicate procedure, and if that procedure is nested, it causes
6348 2020-06-11 Bob Duff <duff@adacore.com>
6350 * exp_put_image.adb (Build_Record_Put_Image_Procedure): Remove
6351 special processing of protected types, because those are handled
6352 by Build_Protected_Put_Image_Call.
6353 (Enable_Put_Image): Use the switch -gnatd_z to control enabling
6354 of Put_Image. Disable Put_Image for types in Remote_Types
6356 * debug.adb: Document -gnatd_z switch.
6357 * exp_imgv.adb, libgnat/a-stteou.ads, opt.ads: Minor cleanups.
6359 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6361 * sem_warn.adb (Warn_On_Overlapping_Actuals): Add label to the
6362 outer loop and use it in the exit statement.
6364 2020-06-11 Ghjuvan Lacambre <lacambre@adacore.com>
6366 * exp_ch3.adb (Build_Assignment): Generate predicate check if
6367 subtype mark has predicate.
6369 2020-06-11 Justin Squirek <squirek@adacore.com>
6371 * sem_util.adb (Expand_N_Attribute_Reference): Use original
6372 nodes where required to avoid looking at the expanded tree.
6374 2020-06-11 Arnaud Charlet <charlet@adacore.com>
6376 * libgnat/a-catizo.ads, libgnat/a-nbnbin.ads,
6377 libgnat/a-nbnbre.ads, libgnat/a-nubinu.ads,
6378 libgnat/s-aoinar.ads, libgnat/s-aomoar.ads,
6379 libgnat/s-aotase.ads, libgnat/s-stopoo.ads: Remove aspects that
6380 we will not implement.
6382 2020-06-11 Arnaud Charlet <charlet@adacore.com>
6384 * libgnat/s-aoinar.adb (Atomic_Fetch_And_Add,
6385 Atomic_Fetch_And_Subtract): Add fallback using
6386 compare-and-exchange, in case the integer type does not map to a
6389 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6391 * libgnat/s-aomoar.ads, libgnat/s-aomoar.adb: New files.
6392 * libgnat/s-atopar.ads: Move...
6393 * libgnat/s-aoinar.ads: Here.
6394 * libgnat/s-atopar.adb: Move...
6395 * libgnat/s-aoinar.adb: Here.
6396 * impunit.adb: Update list of runtime files.
6397 * Makefile.rtl (GNATRTL_NONTASKING_OBJS=): Adjust.
6399 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6401 * snames.ads-tmpl (Name_Characters_Assertion_Check,
6402 Name_Containers_Assertion_Check,
6403 Name_Interfaces_Assertion_Check, Name_IO_Assertion_Check,
6404 Name_Numerics_Assertion_Check, Name_Strings_Assertion_Check,
6405 Name_System_Assertion_Check): New constants.
6406 * types.ads (Characters_Assertion_Check,
6407 Containers_Assertion_Check, Interfaces_Assertion_Check,
6408 IO_Assertion_Check, Numerics_Assertion_Check,
6409 Strings_Assertion_Check, System_Assertion_Check): New constants.
6410 (All_Checks): Update accordingly.
6412 2020-06-10 Ghjuvan Lacambre <lacambre@adacore.com>
6414 * exp_ch3.adb (Build_Equivalent_Record_Aggregate): Return Empty
6415 if Etype of record component has predicates.
6417 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6419 * exp_ch3.adb (Build_Init_Statements): Implement the notion of
6420 "require late initialization".
6422 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
6424 * sem_util.adb (Copy_And_Maybe_Dereference): Temporarily copy
6425 the parent node of the original tree when dereferencing.
6427 2020-06-10 Ed Schonberg <schonberg@adacore.com>
6429 * sem_warn.adb (Warn_On_Overlapping_Actuals): Add a warning when
6430 two actuals in a call overlap, both are composite types that may
6431 be passed by reference, and only one of them is writable.
6433 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
6435 * exp_ch4.adb (Expand_N_In): Use an expression with actions to
6436 insert the PE raise statement for the Unchecked_Union case.
6438 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
6440 * sem_ch4.adb (Analyze_Call): Use idiomatic condition.
6441 * sem_res.adb (Resolve_Call): Remove obsolete code.
6443 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
6445 * sem_util.adb (Copy_And_Maybe_Dereference): New function.
6446 (Build_Access_Record_Constraint): Use it to copy the prefix.
6447 (Build_Actual_Array_Constraint): Likewise.
6448 (Build_Actual_Record_Constraint): Likewise.
6450 2020-06-10 Bob Duff <duff@adacore.com>
6452 * sem_prag.adb (Invariant): Remove the pragma removing code. It
6453 doesn't work to remove the pragma, because various flags are set
6454 during Build_Invariant_Procedure_Declaration and
6455 Build_Invariant_Procedure_Body that need to be set to avoid the
6457 * exp_util.adb (Make_Invariant_Call): Avoid calling the
6458 invariant-checking procedure if the body is empty. This is an
6461 2020-06-10 Vasiliy Fofanov <fofanov@adacore.com>
6463 * doc/gnat_ugn/gnat_utility_programs.rst: Fix gnatmetric
6464 switches description.
6466 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6468 * repinfo-input.ads, repinfo-input.adb, repinfo.adb,
6469 repinfo.ads: Update header.
6471 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
6473 * exp_aggr.adb (In_Place_Assign_OK): Do not necessarily return
6474 false for a type with discriminants.
6475 (Convert_To_Assignments): Use Parent_Node and Parent_Kind more
6476 consistently. In the in-place assignment case, first apply a
6477 discriminant check if need be, and be prepared for a rewritten
6478 aggregate as a result.
6480 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6482 * atree.adb, contracts.adb, debug.adb, freeze.adb,
6483 repinfo-input.adb, repinfo.adb, sem_attr.adb, sem_ch10.adb,
6484 sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb,
6485 sem_ch8.adb, sem_ch9.adb, sem_disp.adb, sem_eval.adb,
6486 sem_prag.adb: Remove more references to ASIS.
6488 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6490 * libgnat/s-secsta.adb (Round_Up): Fix typo in exception
6493 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
6495 * par-ch4.adb (P_Membership_Test): Fix typo in a grammar rule.
6497 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
6499 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove
6500 expansion of First and Last attributes.
6502 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
6504 * exp_attr.adb (Expand_N_Attribute_Reference): Remove folding
6505 for Enum_Rep attribute.
6506 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove
6507 duplicated code for folding Enum_Rep attribute.
6508 * sem_attr.adb (Eval_Attribute): Relax condition for folding
6509 Enum_Rep attribute; previously dead code is now executed when
6510 the attribute prefix is an enumeration literal; refine type in
6511 processing of Enum_Val.
6513 2020-06-10 Javier Miranda <miranda@adacore.com>
6515 * sem_ch3.adb (Analyze_Declarations): Adjust the machinery that
6516 takes care of late body overriding of initialize, adjust,
6517 finalize. Remove ASIS mode code.
6519 2020-06-10 Ed Schonberg <schonberg@adacore.com>
6521 * einfo.ads (Access_Subprogram_Wrapper): New attribute of
6522 Subprogram_Type entities. Denotes subprogram constructed for
6523 Access_To_Subprogram types that include pre- and postconditions.
6524 * einfo.adb: Subprogram bodies for Access_Subprogram_Wrapper.
6525 * exp_ch6.adb (Expand_Call): An indirect call through an
6526 Access_To_subprogram that includes contracts is rewritten as a
6527 call to the corresponding Access_ ubprogram_Wrapper. Handle
6528 derived types that inherit contract from parent.
6529 * sem_prag.adb (Build_Access_Subprogram_Wrapper): Build
6530 subprogram declaration for subprogram that incorporates the
6531 contracts of an Access_To_Subprogram type declaration. Build
6532 corresponding body and attach it to freeze actions for type.
6533 * sem_util.ads, sem_util.adb (Is_Access_Subprogram_Wrapper):
6534 Utility that uses signature of the subprogram to determine
6535 whether it is a generated wrapper for an Access_To_Subprogram
6538 2020-06-10 Ghjuvan Lacambre <lacambre@adacore.com>
6540 * par-ch6.adb (P_Subprogram): Make sure the specification
6541 belongs to a procedure.
6543 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
6545 * sem_ch13.adb (All_Membership_Choices_Static): Assert an AST
6546 property documented in sinfo.ads and simplify an excessive
6549 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
6551 * exp_attr.adb (Expand_N_Attribute_Reference): Fix a copy-paste
6553 * sem_res.adb (Flag_Effectively_Volatile_Objects): Fix a type in
6554 the SPARK RM rule number.
6555 * exp_ch4.adb, sem_util.adb: Fix style in single line comments.
6557 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
6559 * sem_aux.ads, sem_aux.adb (Get_Low_Bound): Remove.
6561 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6563 * scn.adb (Determine_License): Remove.
6565 2020-06-10 Justin Squirek <squirek@adacore.com>
6567 * exp_ch3.adb (Expand_N_Object_Declaration): Add condition to
6568 handle processing of objects initialized by a call to a function
6569 return an anonymous access type.
6570 * exp_ch6.adb, exp_ch6.ads
6571 (Has_Unconstrained_Access_Discriminants): Moved to sem_util.adb
6572 (Needs_Result_Accessibility_Level): Moved to sem_util.adb
6573 * sem_util.adb, sem_util.ads
6574 (Has_Unconstrained_Access_Discriminants): Moved from exp_ch6.adb
6575 (Needs_Result_Accessibility_Level): Moved from exp_ch6.adb
6576 * sem_res.adb (Valid_Conversion): Add condition for the special
6577 case where the operand of a conversion is the result of an
6578 anonymous access type
6580 2020-06-10 Ghjuvan Lacambre <lacambre@adacore.com>
6582 * par-ch6.adb (P_Subprogram): Reject duplicate subprogram
6585 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
6587 * exp_ch6.adb (Insert_Post_Call_Actions): Deal with the context
6588 of an if-expression and with a call written in prefixed notation.
6590 2020-06-10 Gary Dismukes <dismukes@adacore.com>
6592 * einfo.ads: Minor reformatting of a comment.
6593 * exp_aggr.adb: Minor reformatting and a grammar correction.
6594 * exp_attr.adb: Minor reformatting and a typo fix in some
6596 * sem_ch12.adb: Fix three typos in comments.
6598 2020-06-09 Javier Miranda <miranda@adacore.com>
6600 * sem_ch6.adb (New_Overloaded_Entity): Add missing call to check
6601 subtype conformance of overriding dispatching primitive.
6602 * sem_eval.adb (Subtypes_Statically_Match): Handle derivations
6603 of private subtypes.
6604 * libgnat/g-exptty.adb, libgnat/g-exptty.ads
6605 (Set_Up_Communications): Fix the profile since null-exclusion is
6606 missing in the access type formals.
6607 * sem_disp.ads (Check_Operation_From_Private_View): Adding
6610 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
6612 * einfo.ads (XEINFO section): Update format description.
6613 (Is_Subprogram_Or_Entry): Move pragma to regular section.
6614 (Is_Subprogram_Or_Generic_Subprogram): Likewise.
6615 * xeinfo.adb (Get_B4): Rename to...
6617 (Translate_Expr): New procedure extracted from...
6618 (XEinfo): ...here. Try to apply Get_B0 first and then
6619 call Translate_Expr to translate supported constructs.
6621 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
6623 * exp_ch6.adb (Freeze_Subprogram): Deal with convention C_Family.
6624 * freeze.adb (Freeze_Profile): Likewise. Add missing guard.
6625 * sem_mech.adb (Set_Mechanisms): Likewise.
6626 * lib-xref.adb (Output_Import_Export_Info): Ditto for C_Variadic.
6627 * repinfo.adb (List_Subprogram_Info): Likewise.
6628 * sem_prag.adb (Set_Convention_From_Pragma): Move main checks for
6630 (Process_Convention): ...here. Add checks for C_Variadic.
6631 * snames.ads-tmpl: Add Name_C_Variadic_0 .. Name_C_Variadic_16.
6632 Use consistent format for subtype declarations.
6633 (Convention_Id): Add Convention_C_Variadic_0 .. C_Variadic_16
6634 and move Convention_CPP up.
6635 (Convention_C_Family): New subtype of Convention_Id.
6636 (Convention_C_Variadic): Likewise.
6637 (Foreign_Convention): Use explicit upper bound.
6638 Add pragma Inline for Is_Configuration_Pragma_Name,
6639 Is_Function_Attribute_Name, Is_Internal_Attribute_Name
6640 and Is_Procedure_Attribute_Name.
6641 * snames.adb-tmpl (Get_Convention_Id): Deal with Name_Variadic_n.
6642 (Get_Convention_Name): Deal with Convention_Variadic_n.
6643 * types.h (Convention_Id): New typedef.
6644 * xsnamest.adb (Name2): New variable.
6645 (Is_Conv): New pattern.
6646 (Get_Subt1): Likewise.
6647 (Get_Subt2): Likewise.
6648 Output subtypes of Convention_Id into the C header file.
6650 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6652 * exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch9.adb,
6653 exp_disp.adb, exp_util.adb: Add comments related to errors that
6654 should be moved to semantic analysis. Also replace "?" with "??"
6655 in warning messages.
6657 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6659 * libgnat/a-strunb__shared.ads, libgnat/a-strunb__shared.adb
6660 (Reference, Unreference): No-op for Empty_Shared_String.
6661 Remove unneeded calls to Reference.
6663 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6665 * exp_ch5.adb (Expand_N_Assignment): Remove kludge for
6667 * sem_ch12.adb (Validate_Derived_Type_Instance): Implement
6668 AI05-0087 retroactively since it's a binding interpretation.
6670 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
6672 * einfo.ads (Has_Foreign_Convention): Fix description.
6673 (Component_Alignment): Move around.
6674 (Has_DIC): Likewise.
6675 (Has_Interrupt_Handler): Likewise.
6676 (Has_Invariants): Likewise.
6677 (Is_Atomic_Or_VFA): Likewise.
6678 (Next_Index): Likewise.
6679 (Scope_Depth): Likewise.
6680 (Init_Component_Size): Likewise.
6681 (Init_Component_Location): Likewise.
6682 (Init_Size): Likewise.
6683 (Inline Pragmas for functions): Add Corresponding_Function,
6684 Corresponding_Procedure, Entry_Max_Queue_Lengths_Array,
6685 Finalize_Storage_Only, Has_DIC, Has_Invariants,
6686 Initialization_Statements, Is_Anonymous_Access_Type,
6687 Next_Stored_Discriminant, Address_Clause, Alignment_Clause,
6688 Float_Rep, Has_Foreign_Convention, Has_Non_Limited_View,
6689 Is_Constant_Object, Is_Discriminal, Is_Finalizer, Is_Null_State,
6690 Is_Prival, Is_Protected_Component, Is_Protected_Record_Type,
6691 Is_Subprogram_Or_Entry, Is_Task_Record_Type, Size_Clause,
6692 Stream_Size_Clause, Type_High_Bound, Type_Low_Bound, Known_*,
6694 (Inline Pragmas for procedures): Add Set_Corresponding_Function,
6695 Set_Corresponding_Procedure, Set_Finalize_Storage_Only,
6696 Set_Float_Rep, Set_Initialization_Statements,
6697 Init_Normalized_First_Bit, Init_Normalized_Position,
6698 Init_Normalized_Position_Max.
6699 * einfo.adb (Was_Hidden): Move around.
6700 (Is_Packed_Array): Likewise.
6701 (Model_Emin_Value): Likewise.
6702 (Model_Epsilon_Value): Likewise.
6703 (Model_Mantissa_Value): Likewise.
6704 (Model_Small_Value): Likewise.
6706 2020-06-09 Ed Schonberg <schonberg@adacore.com>
6708 * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
6709 exact match between formal and actual for aspects Atomic and
6710 Volatile only for formal derived types.
6712 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6714 * exp_util.adb (Side_Effect_Free): Improve handling of
6717 2020-06-09 Ghjuvan Lacambre <lacambre@adacore.com>
6719 * sem_res.adb (Resolve_Qualified_Expression): Use Subtype_Mark
6722 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6724 * exp_aggr.adb (Max_Aggregate_Size): New function to factorize
6726 (Convert_To_Positional, Aggr_Size_OK): Use Max_Aggregate_Size.
6728 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6730 * sem_util.ads, sem_util.adb (Set_Debug_Info_Defining_Id): New.
6731 * exp_ch3.adb, exp_ch8.adb: Call Set_Debug_Info_Defining_Id when
6734 2020-06-09 Justin Squirek <squirek@adacore.com>
6736 * einfo.ads (Returns_By_Ref): Modify documentation to reflect
6737 that Returns_By_Ref can be applied to E_Subprogram_Type
6740 2020-06-09 Justin Squirek <squirek@adacore.com>
6742 * exp_attr.adb (Expand_N_Attribute_Reference): Modify expansion
6743 of 'Overlaps_Storage to take into account zero sized arrays.
6745 2020-06-09 Bob Duff <duff@adacore.com>
6747 * bindo-graphs.adb, bindo-graphs.ads: For each invocation graph,
6748 record the corresponding library graph.
6749 * bindo-writers.adb (Write_Invocation_Graph_Vertex): Print the
6750 lib item name. Remove library graph parameters.
6751 * bindo-augmentors.adb, bindo-augmentors.ads,
6752 bindo-builders.adb, bindo-diagnostics.adb,
6753 bindo-diagnostics.ads, bindo-elaborators.adb: Remove library
6756 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
6758 * checks.adb (Apply_Predicate_Check): Extend trick used for
6759 aggregates to qualified aggregates and object declarations
6760 * einfo.ads (Has_Own_DIC): Mention the underlying full view.
6761 (Has_Own_Invariants): Likewise.
6762 (Has_Predicates): Likewise.
6763 * exp_util.adb (Build_DIC_Procedure_Declaration): Do not deal
6764 with base types explicitly but with underlying full views.
6765 (Build_Invariant_Procedure_Declaration): Likewise.
6766 * sem_ch13.adb (Build_Predicate_Functions): Do not deal with
6767 the full view manually but call Propagate_Predicate_Attributes
6768 to propagate attributes to views.
6769 (Build_Predicate_Function_Declaration): Likewise.
6770 * sem_ch3.adb (Build_Assertion_Bodies_For_Type): Build bodies
6771 for private full views with an underlying full view.
6772 (Build_Derived_Private_Type): Small comment tweak.
6773 (Complete_Private_Subtype): Call Propagate_Predicate_Attributes.
6774 (Process_Full_View): Do not deal with base types explicitly for
6775 DIC and Invariant attributes. Deal with underlying full views
6776 for them. Call Propagate_Predicate_Attributes and deal with
6777 underlying full views for them.
6778 * sem_ch7.adb (Preserve_Full_Attributes): Do not cross propagate
6779 DIC and Invariant attributes between full type and its base type.
6780 Propagate Predicate attributes from the full to the private view.
6781 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Likewise.
6782 (Analyze_Task_Type_Declaration): Likewise.
6783 * sem_util.ads (Get_Views): Remove Full_Base parameter and add
6784 UFull_Typ parameter.
6785 (Propagate_Predicate_Attributes): New procedure.
6786 * sem_util.adb (Get_Views): Remove Full_Base parameter and add
6787 UFull_Typ parameter. Retrieve the Corresponding_Record_Type
6788 from the underlying full view, if any.
6789 (Propagate_DIC_Attributes): Remove useless tests.
6790 (Propagate_Invariant_Attributes): Likewise.
6791 (Propagate_Predicate_Attributes): New procedure.
6793 2020-06-09 Justin Squirek <squirek@adacore.com>
6795 * exp_ch5.adb (Expand_Predicated_Loop): Perserve the original
6796 loop identifier within the expansion.
6798 2020-06-09 Bob Duff <duff@adacore.com>
6800 * bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder enumerals
6801 to reflect the order of adding edges. Clarify comments.
6802 * bindo-graphs.adb (Add_Edge_Kind_Check): Correct the
6803 assertions. Reorder the "when"s to match the order of adding
6804 edges, and therefore the order of enumerals in type
6805 Library_Graph_Edge_Kind. Change names to "Old_" and "New_" to
6806 clarify what's what. Combine Invocation_Edge into the "<="
6807 test. Fix the "raise Program_Error" message, which was
6810 2020-06-09 Bob Duff <duff@adacore.com>
6812 * bindo-graphs.adb (Add_Edge_Kind_Check): Add the Image of the
6813 old and new Kinds to the raise Program_Error message.
6815 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
6817 * sem_ch3.adb (Is_Visible_Component): Do not special-case
6818 bodies of instances.
6820 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6822 * exp_ch4.adb (Expand_N_In): Fix handling of null exclusion.
6824 2020-06-09 Ed Schonberg <schonberg@adacore.com>
6826 * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
6827 exact match between formal and actual for aspects Atomic,
6828 Atomic_Component, Volatile, and Volatile_Components.
6830 2020-06-09 Bob Duff <duff@adacore.com>
6832 * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
6833 the --no-separate-return switch of gnatpp.
6835 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6837 * sem_warn.adb (Warn_On_Constant_Valid_Condition): Add proper
6840 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6842 * sem_type.adb (Covers): Fix implementation of AI05-0149.
6843 * sem_res.adb: Fix typo.
6845 2020-06-09 Ed Schonberg <schonberg@adacore.com>
6847 * exp_ch9.adb (Build_Master_Renaming): Make name in renaming
6848 declaration unique by adding a numeric suffix, to prevent
6849 accidental name conflict when several instantiations of a
6850 package containing an access_to_incomplete type that designate
6851 tasks appear in the same scope.
6853 2020-06-09 Piotr Trojanek <trojanek@adacore.com>
6855 * libgnarl/a-synbar.ads, libgnarl/a-synbar.adb,
6856 libgnarl/a-synbar__posix.ads, libgnarl/a-synbar__posix.adb
6857 (Ada.Synchronous_Barriers): Annotate with SPARK_Mode => Off.
6859 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6861 * sem_eval.adb (Eval_Relational_Op, Eval_String_Literal,
6862 Eval_Type_Conversion): Relax rules on relational operators and
6863 type conversions of static string types.
6865 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6867 * sem_util.ads, sem_util.adb (Is_Partially_Initialized_Type):
6868 Take Default_Value and Default_Component_Value into account.
6869 * sem_ch3.adb (Analyze_Object_Declaration): Update comment.
6871 2020-06-09 Bob Duff <duff@adacore.com>
6873 * bindo-graphs.adb (Add_Edge_Kind_Check): Disable failing part
6876 2020-06-08 Steve Baird <baird@adacore.com>
6878 * sem_prag.adb (Analyze_Pragma.Set_Ravenscar_Profile): Add
6879 appropriate call to Set_Restriction_No_Dependence if Ada_Version
6880 >= Ada2012 and Profile is either Ravenscar or a GNAT-defined
6881 Ravenscar variant (i.e., not Jorvik).
6883 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6885 * sem_ch5.adb: Fix typo.
6886 * sem_ch8.adb (Analyze_Renamed_Primitive_Operation): Check that
6887 the prefix of a prefixed view must be renamable as an object.
6889 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6891 * sem_cat.ads: Fix typo.
6892 * sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type): Add
6893 handling of N_Attribute_Definition_Clause.
6894 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Call
6895 Validate_Remote_Access_To_Class_Wide_Type for Storage_Size and
6897 * sem_attr.adb, exp_ch4.adb: Update comments.
6899 2020-06-08 Justin Squirek <squirek@adacore.com>
6901 * sem_ch4.adb (Analyze_One_Call): Add extra condition to the
6902 predicate for deciding when a given controlled call is visible.
6904 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
6906 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Port
6907 changes in frontend expander.
6909 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
6911 * sem_ch13.adb (All_Membership_Choices_Static): Fix style.
6913 2020-06-08 Steve Baird <baird@adacore.com>
6915 * libgnat/s-rident.ads: Add Jorvik to the Profile_Name
6916 enumeration type. Add an element for Jorvik to the array
6917 aggregate that is the initial value of the constant
6919 * targparm.adb (Get_Target_Parameters): Handle "pragma Profile
6920 (Jorvik);" similarly to "pragma Profile (Ravenscar);".
6921 * snames.ads-tmpl: Declare Name_Jorvik Name_Id. Unlike
6922 Ravenscar, Jorvik is not a pragma name and has no corresponding
6923 element in the Pragma_Id enumeration type; this means that its
6924 declaration must not occur between those of First_Pragma_Name
6925 and Last_Pragma_Name.
6926 * sem_prag.adb (Analyze_Pragma): Add call to
6927 Set_Ravenscar_Profile for Jorvik, similar to the existing calls
6928 for Ravenscar and the GNAT Ravenscar variants.
6930 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6932 * sem_ch8.adb (Analyze_Object_Renaming): Update Get_Object_Name
6933 to go through N_Qualified_Expression and N_Type_Conversion. Fix
6934 another case of wrong usage of E_Anonymous_Access_Type instead
6935 of Anonymous_Access_Kind.
6936 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Work
6937 on the original node.
6938 (Is_Aliased_View): Take into account N_Qualified_Expression.
6940 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6942 * sem_eval.adb (Eval_Type_Conversion): Fix handling of
6943 enumeration to integer conversions.
6944 * exp_attr.adb (Expand_N_Attribute_Reference
6945 [Attribute_Enum_Rep]): Remove special casing for first-level
6946 renaming, best left to the general folding mechanism via
6947 Eval_Type_Conversion.
6949 2020-06-08 Eric Botcazou <ebotcazou@adacore.com>
6951 * atree.adb (New_Copy): Do not clear Has_Dynamic_Range_Check.
6952 * checks.ads (Append_Range_Checks): Remove Flag_Node parameter.
6953 (Insert_Range_Checks): Likewise and remove default value of
6954 Static_Loc parameter.
6955 * checks.adb (Append_Range_Checks): Remove Flag_Node parameter.
6956 Do not test and set Has_Dynamic_Range_Check.
6957 (Insert_Range_Checks): Likewise and remove default value of
6958 Static_Loc parameter.
6959 * csinfo.adb (CSinfo): Remove 'L' from [NEUB]_Fields pattern and
6960 do not handle Has_Dynamic_Range_Check.
6961 * exp_ch5.adb (Expand_N_Assignment_Statement): Remove argument
6962 in call to Insert_Range_Checks.
6963 * sem_ch3.adb (Analyze_Subtype_Declaration): Do not fiddle
6964 with Has_Dynamic_Range_Check.
6965 (Process_Range_Expr_In_Decl): Remove argument in calls to
6966 Insert_Range_Checks and Append_Range_Checks.
6967 * sinfo.ads (Has_Dynamic_Range_Check): Delete.
6968 (Set_Has_Dynamic_Range_Check): Likewise.
6969 * sinfo.adb (Has_Dynamic_Range_Check): Delete.
6970 (Set_Has_Dynamic_Range_Check): Likewise.
6971 * treepr.adb (Print_Node): Do not print Has_Dynamic_Range_Check.
6973 2020-06-08 Steve Baird <baird@adacore.com>
6975 * sem_ch13.ads: Export new function
6976 All_Membership_Choices_Static.
6977 * sem_ch13.adb: Implement new function
6978 All_Membership_Choices_Static. This involves moving the
6979 functions Is_Static_Choice and All_Membership_Choices_Static,
6980 which were previously declared within the function
6981 Is_Predicate_Static, out to library level so that they can be
6982 called by the new function. The already-exisiting code in
6983 Is_Predicate_Static which became the body of
6984 All_Membership_Choices_Static is replaced with a call to the new
6985 function in order to avoid duplication.
6986 * exp_ch9.adb (Is_Pure_Barrier): Several changes needed to
6987 implement rules of AI12-0290 and RM D.7's definition of
6988 "pure-barrier-eligible". These changes include adding a call to
6989 the new function Sem_13.All_Membership_Choices_Static, as per
6990 the "see 4.9" in RM D.7(1.6/5).
6992 2020-06-08 Richard Kenner <kenner@adacore.com>
6994 * exp_unst.adb (Visit_Node): When visiting array attribute
6995 nodes, in addition to checking the type of Get_Referenced_Object
6996 of the prefix, also check the actual type of the prefix.
6998 2020-06-08 Gary Dismukes <dismukes@adacore.com>
7000 * checks.adb (Apply_Predicate_Check): Refine test for being in a
7001 subprogram body to account for no Corresponding_Body case,
7002 avoiding blowups arising due to other changes here.
7003 * exp_ch4.adb (Expand_N_Qualified_Expression): Apply predicate
7004 checks, if any, after constraint checks are applied.
7005 * sem_eval.ads (Check_Expression_Against_Static_Predicate): Add
7006 Check_Failure_Is_Error formal for conditionalizing warning vs.
7008 * sem_eval.adb (Check_Expression_Against_Static_Predicate):
7009 Issue an error message rather than a warning when the new
7010 Check_Failure_Is_Error formal is True. In the nonstatic or
7011 Dynamic_Predicate case where the predicate is known to fail,
7012 emit the check to ensure that folded cases get checks applied.
7013 * sem_res.adb (Resolve_Qualified_Expression): Call
7014 Check_Expression_Against_Static_Predicate, passing True for
7015 Check_Failure_Is_Error, to ensure we reject static predicate
7016 violations. Remove code that was conditionally calling
7017 Apply_Predicate_Check, which is no longer needed, and that check
7018 procedure shouldn't be called from a resolution routine in any
7019 case. Also remove associated comment about preventing infinite
7020 recursion and consistency with Resolve_Type_Conversion, since
7021 that handling was already similarly removed from
7022 Resolve_Type_Convesion at some point.
7023 (Resolve_Type_Conversion): Add passing of True for
7024 Check_Failure_Is_Error parameter on call to
7025 Check_Expression_Against_Static_Predicate, to ensure that static
7026 conversion cases that violate a predicate are rejected as
7029 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
7031 * snames.ads-tmpl (Name_SPARK): Restore after being deleted.
7033 2020-06-08 Arnaud Charlet <charlet@adacore.com>
7035 * exp_aggr.adb, exp_ch6.adb, par-ch11.adb, par-ch6.adb,
7036 par-ch7.adb, par-prag.adb, restrict.adb, restrict.ads,
7037 scans.ads, scng.adb, sem_aggr.adb, sem_attr.adb, sem_ch11.adb,
7038 sem_ch12.adb, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
7039 sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
7040 sem_res.adb, sem_util.adb, sem_util.ads, snames.ads-tmpl,
7041 gnatbind.adb, libgnat/s-rident.ads,
7042 doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
7043 Remove processing of SPARK_05 restriction.
7044 * gnat_rm.texi: Regenerate.
7045 * opt.ads: Remove processing of old checksum which is now
7046 handled by gprbuild directly.
7048 2020-06-08 Arnaud Charlet <charlet@adacore.com>
7050 * sem_ch12.adb (Instantiate_Object): Relax rules related to null
7051 exclusions and generic objects. Handle all anonymous types
7052 consistently and not just E_Anonymous_Access_Type.
7053 * sem_ch8.adb (Analyze_Object_Renaming): Change wording so that
7054 it applies to both renamings and instantiations to avoid
7057 2020-06-08 Arnaud Charlet <charlet@adacore.com>
7059 * libgnat/a-textio.ads (File_Mode): Fix typo in comment.
7061 2020-06-08 Eric Botcazou <ebotcazou@adacore.com>
7063 * sem_res.adb (Resolve_Indexed_Component): Do not give a warning
7064 for a nonatomic component of an atomic array which is subject to
7065 an address clause in Ada 2020 mode.
7066 (Resolve_Selected_Component): Likewise for an atomic record.
7068 2020-06-08 Philippe Gil <gil@adacore.com>
7070 * doc/gnat_ugn/the_gnat_compilation_model.rst: in "Handling
7071 Files with Multiple Units" part documents gnatname use for
7072 unmodified files handling and gnatchop use for files
7074 * gnat_ugn.texi: Regenerate.
7076 2020-06-08 Arnaud Charlet <charlet@adacore.com>
7078 * doc/gnat_rm/implementation_defined_attributes.rst:
7079 Enum_Rep/Enum_Val are standard Ada 202x attributes.
7080 * gnat_rm.texi: Regenerate.
7082 2020-06-08 Javier Miranda <miranda@adacore.com>
7084 * exp_aggr.adb (Safe_Component): Remove code that considers as
7085 unsafe components that are aggregates; such removal allows the
7086 frontend to proceed and evaluate if they are safe by means of
7087 invoking Safe_Aggregate.
7089 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
7091 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
7092 standard expansion to attributes First and Last.
7094 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
7096 * exp_attr.adb, exp_util.ads, exp_util.adb (Get_Index_Subtype):
7097 Move from the body of Exp_Attr to Exp_Util and expose from the
7099 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Replace
7100 duplicated code with a call to Get_Index_Subtype.
7102 2020-06-08 Arnaud Charlet <charlet@adacore.com>
7104 * sem_ch8.adb (Analyze_Object_Renaming): Simplify code by moving
7105 many special cases to Is_Object_Reference and removing others by
7106 only checking renamings coming from sources.
7107 * sem_util.adb (Is_Object_Reference): Update for AI12-0226 and
7108 add more regular handling of 'Priority. Remove special cases no
7109 longer needed now that we are only checking renamings coming
7112 2020-06-08 Claire Dross <dross@adacore.com>
7114 * libgnat/a-cofove.adb (Insert_Space): The computation of Index
7115 generates a spurious compiler warning about a value not being in
7116 range for a statically dead branch. Silence it using pragma
7119 2020-06-08 Bob Duff <duff@adacore.com>
7121 * bindo-graphs.adb (function Add_Edge): Rename
7122 Add_Edge_With_Return to Add_Edge; we can tell it returns because
7123 it's a function, and overloading seems appropriate in this case.
7124 If Activates_Task=True, and we're not going to add a new edge
7125 because an existing Pred-->Succ edge already exists, then set
7126 Activates_Task to True on the preexisting edge. This ensures
7128 info: use pragma Restrictions (No_Entry_Calls_In_Elaboration_Code)
7129 appears when appropriate, no matter in what order the edges
7130 happened to be processed.
7131 (procedure Add_Edge): Remove redundant assertions.
7132 (Activates_Task): Other kinds of edges can have
7133 Activates_Task=True. For example, if we had a With_Edge and
7134 then an Invocation_Edge with Activates_Task=True, then the
7135 With_Edge has Activates_Task set to True.
7136 (Add_Edge_Kind_Check): New procedure to prevent other bugs of
7137 this nature. For example, if we were to sometimes call Add_Edge
7138 for a Spec_Before_Body_Edge followed by Add_Edge for a
7139 With_Edge, and sometimes in the other order, that would cause a
7140 similar bug to what we're fixing here.
7141 (Set_Is_Recorded_Edge): Val parameter is not used. Get rid of
7143 (Set_Activates_Task): New procedure to set the Activates_Task flag.
7144 * bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder the
7145 enumeration literals to facilitate Add_Edge_Kind_Check.
7146 * ali.adb (Known_ALI_Lines): The comment about "still available"
7147 was wrong. Fix that by erasing the comment, and encoding the
7148 relevant information in real code. Take advantage of Ada's full
7149 coverage rules by removing "others =>". Also DRY.
7151 2020-06-08 Ed Schonberg <schonberg@adacore.com>
7153 * par-ch12.adb (P_Formal_Derived_Type_Definition): Handle
7154 properly formal derived types that include aspect
7155 specifications, so that the "with" keyword appears twice in the
7156 formal type declaration.
7157 * sem_ch13.adb (Has_Generic_Parent): Return true if the type
7158 itself is a generic formal.
7160 2020-06-08 Dmitriy Anisimkov <anisimko@adacore.com>
7162 * socket.c (__gnat_minus_500ms): Remove
7163 IsWindowsVersionOrGreater from condition.
7165 2020-06-08 Claire Dross <dross@adacore.com>
7167 * libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads,
7168 libgnat/a-cfhase.ads, libgnat/a-cforma.ads, libgnat/a-cforse.ads
7169 (Delete): Add Depends contract.
7171 2020-06-08 Arnaud Charlet <charlet@adacore.com>
7173 * snames.ads-tmpl (Name_Program_Error_Check,
7174 Name_Tasking_Check): New constants.
7175 * types.ads (Program_Error_Check, Tasking_Check): New constants.
7176 (All_Checks): Update accordingly.
7178 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7180 * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Use ??.
7182 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7184 * cstand.adb (Create_Standard): Update comments.
7186 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7188 * scng.adb (Scan): Fix typo to take into account all future
7190 * sem_attr.ads (Attribute_Impl_Def): Add Attribute_Reduce for
7192 * sem_attr.adb (Analyze_Attribute): Only allow 'Reduce under
7194 * snames.ads-tmpl (Name_Reduce): Update comment.
7196 2020-06-05 Thomas Quinot <quinot@adacore.com>
7198 * exp_disp.adb (Expand_Interface_Thunk): Add comment about
7199 gnatcov reliance on specific name used for thunks.
7201 2020-06-05 Ed Schonberg <schonberg@adacore.com>
7203 * sem_ch3.adb (Analyze_Subtype_Declaration): For scalar types,
7204 and for subtype declarations without a constraint, subtype
7205 inherits Atomic flag from base type.
7207 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
7209 * doc/gnat_rm/implementation_defined_attributes.rst (Enum_Rep):
7211 * gnat_rm.texi: Regenerate.
7213 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
7215 * atree.adb (New_Copy): Clear Has_Dynamic_Range_Check on
7216 subexpression nodes.
7217 * checks.adb (Append_Range_Checks): Assert that the node
7218 doesn't have the Has_Dynamic_Range_Check flag set.
7219 (Insert_Range_Checks): Likewise.
7220 * exp_ch3.adb (Expand_N_Subtype_Indication): Do not apply
7221 range checks for a full type or object declaration.
7222 * sem_ch3.ads: Move with and use clauses for Nlists to...
7223 (Process_Range_Expr_In_Decl): Change default to No_List for
7224 the Check_List parameter.
7225 * sem_ch3.adb: ...here.
7226 (Process_Range_Expr_In_Decl): Likewise. When the insertion
7227 node is a declaration, only insert on the list if is present
7228 when the declaration involves discriminants, and only insert
7229 on the node when there is no list otherwise.
7231 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
7233 * sem_aggr.adb (Resolve_Record_Aggregate): Create the
7234 N_Aggregate node with its Expressions field set to No_List and
7235 not to an empty list.
7237 2020-06-05 Dmitriy Anisimkov <anisimko@adacore.com>
7239 * libgnat/s-os_lib.adb (Is_Dirsep): Moved from Build_Path to
7240 package level to reuse.
7241 (Normalize_Pathname.Final_Value): Reduce 2 'if' statements to
7243 (Normalize_Pathname.Fill_Directory): New procedure instead of
7244 function Get_Directory. Remove slash to backslash conversion and
7245 drive letter uppercasing on Windows.
7247 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7249 * sem.adb (Assert_Done): Relax check for main unit, as it was
7250 overzealous in the case of the main unit itself.
7252 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
7254 * exp_ch3.adb, sem_ch8.adb, sem_util.adb: Use Is_Incomplete_Type
7255 to make the code easier to read.
7257 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
7259 * einfo.adb: Minor reformatting.
7260 * sem_util.adb (Has_Full_Default_Initialization,
7261 Is_Partially_Initialized_Type, Caller_Known_Size_Record,
7262 Large_Max_Size_Mutable): Iterate with
7263 First_Component/Next_Component; rename Ent to Comp.
7265 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
7267 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use
7268 Expr_Rep_Value instead of Expr_Value to obtain the equivalent
7270 * sem_eval.ads (Expr_Value): Document more supported cases.
7271 * sem_eval.adb (Expr_Rep_Value): Copy missing cases from
7274 2020-06-05 Bob Duff <duff@adacore.com>
7276 * rtsfind.adb, rtsfind.ads: Move subtypes of RTU_Id into package
7277 body, because they are not needed by clients. Change "Child_" to
7278 "Descendant", because grandchildren and great grandchildren are
7279 involved. Replace all the repetitive comments with a single
7280 concise one. Change the parent subtypes to be more consistent;
7281 use the most specific parent.
7283 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
7285 * rtsfind.ads, rtsfind.adb (Is_Text_IO_Special_Package): Moved
7286 from the GNATprove backend to the frontend.
7288 2020-06-05 Yannick Moy <moy@adacore.com>
7290 * sem_util.ads: Add comment about function only used in
7293 2020-06-05 Ed Schonberg <schonberg@adacore.com>
7295 * sem_ch9.adb, (Analyze_Task_Body): After analying the task
7296 body, indicate that all local variables have no delayed aspects.
7297 This prevents improper later calls to
7298 Check_Aspect_At_End_Of_Declarations, that would happen when the
7299 constructed task_procedure body (generated during expansion) is
7300 analyzed. The legality of aspect specifications that may appear
7301 on local declarations has already been established, and it is in
7302 general not possible to recheck them properly during expansion,
7303 when visibility may not be fully established.
7305 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
7307 * libgnat/a-cofuve.ads (First): Add Global contract.
7309 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7311 * sem_prag.adb (Set_Convention_From_Pragma): Set the convention
7312 of anonymous access array components.
7314 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7316 * libgnat/a-calfor.ads, libgnat/a-catizo.ads,
7317 libgnat/a-catizo.adb (Local_Time_Offset, Local_Image): New.
7318 (UTC_Time_Offset): Now a renaming of Local_Time_Offset.
7320 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
7322 * sem_ch3.adb (Available_Full_View): New function returning
7323 either the full or the underlying full view.
7324 (Build_Full_Derivation): Add guard for the full view.
7325 (Copy_And_Build): Retrieve the underlying full view, if any,
7326 also if deriving a completion.
7327 (Build_Derived_Private_Type): Use Available_Full_View throughout
7328 to decide whether a full derivation must be done.
7330 2020-06-05 Bob Duff <duff@adacore.com>
7332 * exp_attr.adb, exp_ch11.adb, exp_imgv.adb, exp_tss.ads,
7333 par-ch4.adb, sem_attr.adb, sem_util.ads: Misc cleanup.
7335 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7337 * libgnat/a-nudira.ads, libgnat/a-nudira.adb (Random): New
7340 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7342 * sem_attr.ads (Attribute_Impl_Def): Remove Enum_Rep/Val.
7343 * sem_attr.adb (Attribute_20): New, move Enum_Rep/Val here.
7344 (Analyze_Attribute): Take Attribute_20 into account.
7346 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7348 * restrict.ads (Unit_Array): Add a-direct.
7350 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7352 * libgnat/s-stopoo.ads: Mark package Pure and leave room for
7353 Nonblocking once this aspect is supported.
7355 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
7357 * exp_attr.adb (Expand_N_Attribute_Reference) <Valid_Scalars>:
7358 Set the No_Truncation flag on the unchecked conversion built for
7361 2020-06-05 Bob Duff <duff@adacore.com>
7363 * einfo.adb, einfo.ads, exp_util.adb: Remove Invariants_Ignored
7365 * sem_prag.adb (Invariant): Instead of setting a flag to be
7366 checked elsewhere, remove the pragma as soon as it is analyzed
7367 and checked for legality.
7369 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
7371 * checks.ads (Apply_Length_Check): Rename Ck_Node parameter to
7373 (Apply_Range_Check): Likewise.
7374 (Get_Range_Checks): Likewise.
7375 * checks.adb (Apply_Float_Conversion_Check): Likewise.
7376 (Apply_Selected_Length_Checks): Likewise.
7377 (Apply_Selected_Range_Checks): Likewise.
7378 (Guard_Access): Likewise.
7379 (Selected_Length_Checks): Likewise. Also avoid shadowing in
7381 (Selected_Range_Checks): Likewise.
7383 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7385 * par-ch3.adb, par-ch4.adb, scng.adb, sem_aggr.adb,
7386 sem_ch10.adb, sem_ch12.adb, sem_prag.adb: Update wording: change
7387 Ada_2020 to Ada 2020 in comments and mention -gnat2020 instead
7390 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7392 * libgnat/i-c.ads (long_long, unsigned_long_long): New
7395 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7397 * Makefile.rtl: add a-tasini object
7398 * impunit.adb (Non_Imp_File_Names_95): Add s-tasini.
7399 * libgnarl/a-tasini.ads, libgnarl/a-tasini.adb: New files.
7400 * libgnarl/s-taskin.ads (Global_Initialization_Handler): New.
7401 * libgnarl/s-tassta.adb (Task_Wrapper): Call
7402 Global_Initialization_Handler if non null.
7404 2020-06-04 Ed Schonberg <schonberg@adacore.com>
7406 * sem_ch12.adb (Build_Suprogram_Body_Wrapper,
7407 Build_Subprogram_Decl_Wrapper): New suprograms, to create the
7408 wrappers needed to implement contracts on formsl subprograms at
7409 the point of instantiation.
7410 (Build_Subprogram_Wrappers): New subprogram within
7411 Analyze_Associations, calls the above when the formal subprogram
7412 has contracts, and expansion is enabled.
7413 (Instantiate_Formal_Subprogram): If the actual is not an entity,
7414 such as a function attribute, or a synchronized operation,
7415 create a function with an internal name and call it within the
7417 (Analyze_Generic_Formal_Part): Analyze contracts at the end of
7418 the list of formal declarations.
7419 * sem_prag.adb (Analyze_Pre_Post_Condtion): In Ada_2020 the
7420 aspect and corresponding pragma can appear on a formal
7421 subprogram declaration.
7422 (Find_Related_Declaration_Or_Body): Ditto.
7424 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7426 * exp_ch7.adb (Make_Final_Call): Set the type of the object, if
7427 it is unanalyzed, before calling Convert_View on it.
7429 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7431 * adabkend.adb, back_end.ads, opt.ads, sem_ch6.adb: Get rid of
7432 Disable_FE_Inline_Always.
7434 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7436 * exp_ch7.adb (Make_Final_Call): Add missing guard.
7437 * sem_ch3.adb (Copy_And_Build): Adjust recursive call for
7439 (Build_Derived_Private_Type): Deal with underlying full views.
7441 2020-06-04 Bob Duff <duff@adacore.com>
7443 * libgnat/a-stobbu.adb, libgnat/a-stobbu.ads,
7444 libgnat/a-stobfi.adb, libgnat/a-stobfi.ads,
7445 libgnat/a-stoubu.adb, libgnat/a-stoubu.ads,
7446 libgnat/a-stoufi.adb, libgnat/a-stoufi.ads,
7447 libgnat/a-stoufo.adb, libgnat/a-stoufo.ads,
7448 libgnat/a-stouut.adb, libgnat/a-stouut.ads,
7449 libgnat/a-stteou.ads, libgnat/s-putaim.adb,
7450 libgnat/s-putaim.ads, libgnat/s-putima.adb, libgnat/s-putima.ads
7451 (Ada.Strings.Text_Output and children, System.Put_Images): New
7452 runtime support for Put_Image.
7453 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add
7455 * exp_put_image.adb, exp_put_image.ads: New compiler package
7456 that generates calls to runtime routines that implement
7458 * Makefile.rtl: Add object files for Ada.Strings.Text_Output and
7459 children and System.Put_Images.
7460 * aspects.adb: Simplify initialization of Canonical_Aspect.
7461 * aspects.ads: Improve documentation. Add Aspect_Put_Image.
7462 * exp_attr.adb: Add support for Put_Image, by calling routines
7464 * sem_util.adb (Is_Predefined_Dispatching_Operation): Return
7465 True for new TSS_Put_Image operation.
7466 * exp_ch3.adb: For tagged types, build a dispatching
7467 TSS_Put_Image operation by calling routines in Exp_Put_Image.
7468 * exp_disp.adb, exp_disp.ads: Make TSS_Put_Image be number 10,
7469 adjusting other operations' numbers after 10. We choose 10
7470 because that's the last number shared by all runtimes.
7471 * exp_strm.adb: Use named notation as appropriate.
7472 * exp_cg.adb, exp_tss.ads: Add TSS_Put_Image.
7473 * libgnat/a-tags.ads: Modify Max_Predef_Prims for the new
7475 * impunit.adb: Add new runtime packages.
7476 * rtsfind.adb, rtsfind.ads: Add support for
7477 Ada.Strings.Text_Output, Ada.Strings.Text_Output.Utils, and
7479 * sem_attr.adb: Error checking for Put_Image calls.
7480 * sem_ch12.adb (Valid_Default_Attribute): Support for passing
7481 Put_Image as a generic formal parameter.
7482 * sem_ch13.adb: Analysis of Put_Image aspect. Turn it into a
7483 Put_Image attribute definition clause.
7484 * sem_ch8.adb (Analyze_Subprogram_Renaming): Support for
7485 renaming of the Put_Image attribute.
7486 * snames.adb-tmpl: Fix comments.
7487 * snames.ads-tmpl (Name_Put_Image): New Name_Id.
7488 (Attribute_Put_Image): New Attribute_Id.
7489 * tbuild.adb, tbuild.ads (Make_Increment): New utility.
7491 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7493 * exp_attr.adb (xpand_N_Attribute_Reference) <Input>: Call
7494 Find_Inherited_TSS to look up the Stream_Read TSS.
7495 <Output>: Likewise for the Stream_Write TSS.
7496 * exp_ch7.adb (Make_Final_Call): Call Underlying_Type on
7497 private types to account for underlying full views.
7498 * exp_strm.ads (Build_Record_Or_Elementary_Input_Function):
7499 Remove Use_Underlying parameter.
7500 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
7501 Likewise and adjust accordingly.
7502 * exp_tss.adb (Find_Inherited_TSS): Deal with full views.
7503 Call Find_Inherited_TSS recursively on the parent type if
7504 the base type is a derived type.
7505 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Take
7506 into account underlying full views for derived types.
7507 * sem_ch3.adb (Copy_And_Build): Look up the underlying full
7508 view only for a completion. Be prepared for private types.
7509 (Build_Derived_Private_Type): Build an underlying full view
7510 for a completion in the general case too.
7512 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7514 * back_end.adb, opt.ads, par-prag.adb, sem_ch5.adb,
7515 sem_prag.adb, sinfo.adb, sinfo.ads, snames.ads-tmpl,
7516 doc/gnat_rm/implementation_defined_pragmas.rst: Remove
7517 experimental support for OpenACC.
7518 * gcc-interface/misc.c, gcc-interface/trans.c,
7519 gcc-interface/lang.opt: Ditto.
7520 * gnat_rm.texi: Regenerate.
7522 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7524 * checks.adb (Generate_Discriminant_Check): Remove obsolete
7527 2020-06-04 Gary Dismukes <dismukes@adacore.com>
7529 * par-ch3.adb (P_Identifier_Declarations): Add parsing of object
7530 renamings that have neither a subtype_mark nor an
7531 access_definition. Issue an error if the version is earlier than
7532 Ada_2020, and suggest using -gnatX.
7533 * sem_ch8.adb (Analyze_Object_Renaming): Handle
7534 object_renaming_declarations that don't have an explicit
7535 subtype. Errors are issued when the name is inappropriate or
7536 ambiguous, and otherwise the Etype of the renaming entity is set
7537 from the Etype of the renamed object.
7538 * sem_util.adb (Has_Null_Exclusion): Allow for the case of no
7539 subtype given in an N_Object_Renaming_Declaration.
7540 * sprint.adb (Sprint_Node_Actual): Handle printing of
7541 N_Object_Renaming_Declarations that are specified without an
7544 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7546 * sinfo.ads (N_Delta_Aggregate): Document Etype field.
7547 (N_Case_Expression): Likewise.
7548 (Is_Syntactic_Field) <N_Quantified_Expression>: Adjust.
7549 <N_Case_Expression>: Likewise.
7551 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7553 * adaint.c: Avoid redefining IS_DIR_SEPARATOR macro.
7555 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7557 * sem.adb (Walk_Library_Items): Defer processing of main spec
7558 after all other specs and before processing bodies.
7560 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7562 * bindgen.adb (Gen_Adafinal): Adafinal is convention Ada, not C.
7564 2020-06-04 Ed Schonberg <schonberg@adacore.com>
7566 * sinput.adb (Sloc_Range): Ignore node in the tree if it appears
7567 in a unit different from that of the node whose Sloc range we
7568 are computing. This is necessary when computing the source range
7569 of a subprogram body whose declaration includes a pre- or
7570 postcondition, because declaration and body may appear in
7571 different units, and the expanded code for the body includes
7572 copies of the contract code.
7574 2020-06-04 Alexandre Oliva <oliva@adacore.com>
7576 * switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
7577 dumpbase-ext. Mark auxbase and auxbase-strip for removal.
7579 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7581 * sem_attr.adb (Resolve_Attribute) <Access>: Do not generate
7582 the secondary message about a missing pragma if the convention
7583 of the prefix is Intrinsic.
7584 * sem_ch12.adb (Instantiate_Formal_Subprogram): Only set the
7585 Convention and the Is_Inlined flag on a null procedure.
7587 2020-06-04 Justin Squirek <squirek@adacore.com>
7589 * sem_ch6.adb (Check_Return_Obj_Accessibility): Change to
7590 Check_Return_Construct_Accessibility to better reflect its
7591 purpose. Add loop to properly obtain the object declaration
7592 from an expanded extended return statement and add calls to get
7593 the original node for associated values. Also, avoid checks when
7594 the return statement being examined comes from an internally
7597 2020-06-04 Dmitriy Anisimkov <anisimko@adacore.com>
7599 * adaint.c (__gnat_is_absolute_path): Check for directory
7600 separator after drive and colon.
7601 (IS_DIR_SEPARATOR): Define new inline substitution.
7603 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7605 * checks.ads: Update documentation about range checks and fix
7608 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7610 * sem_ch3.adb (Array_Type_Declaration): Apply special handling
7611 of private index types to generic packages and restrict it to
7612 index types defined in the current scope.
7614 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7616 * libgnat/a-exextr.adb (Global_Unhandled_Action): New global
7618 (Notify_Exception): Take into account Global_Unhandled_Action
7619 and fix latent race condition.
7620 (Exception_Action): Mark Favor_Top_Level so that variables can
7622 (Global_Action): Mark atomic to remove the need for a lock.
7623 * libgnat/g-excact.ads, libgnat/g-excact.adb
7624 (Register_Global_Unhandled_Action): New procedure.
7625 (Register_Global_Action): Remove lock.
7626 * libgnat/s-stalib.ads (Raise_Action): Mark Favor_Top_Level to
7627 be compatible with Exception_Action.
7628 * sem_warn.adb (Warn_On_Unreferenced_Entity): Fix logic wrt
7629 Volatile entities and entities with an address clause: the code
7630 did not match the comment/intent.
7632 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7634 * comperr.adb (Compiler_Abort): Update URL and bug report
7637 2020-06-04 Steve Baird <baird@adacore.com>
7639 * libgnat/s-imgrea.ads: Declare a named number
7640 Max_Real_Image_Length with value 5200. Provide a comment
7641 explaining why this value was chosen.
7642 * libgnat/s-imgrea.adb (Set_Image_Real): Increase the upper
7643 bound of the local String variable Digs to
7644 Max_Real_Image_Length.
7645 * libgnat/a-tiflau.adb (Put): Increase the upper bound of the
7646 local String variable Buf to Max_Real_Image_Length.
7647 (Puts): Increase the upper bound of the local String variable
7648 Buf to Max_Real_Image_Length.
7650 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7652 * libgnarl/a-dynpri.adb, libgnarl/a-taside.adb,
7653 libgnarl/a-taster.adb, libgnarl/s-interr.adb,
7654 libgnarl/s-interr__sigaction.adb, libgnarl/s-taasde.adb,
7655 libgnarl/s-taenca.adb, libgnarl/s-taenca.ads,
7656 libgnarl/s-taprop.ads, libgnarl/s-taprop__hpux-dce.adb,
7657 libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
7658 libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
7659 libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
7660 libgnarl/s-tarest.adb, libgnarl/s-tasini.adb,
7661 libgnarl/s-tasque.adb, libgnarl/s-tasque.ads,
7662 libgnarl/s-tasren.adb, libgnarl/s-tasren.ads,
7663 libgnarl/s-tassta.adb, libgnarl/s-tasuti.adb,
7664 libgnarl/s-tasuti.ads, libgnarl/s-tpoben.adb,
7665 libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb,
7666 libgnarl/s-tposen.adb, libgnat/s-parame.ads,
7667 libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads,
7668 libgnat/s-parame__vxworks.ads: Remove references to Single_Lock
7671 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7673 * libgnat/s-atopar.adb, libgnat/s-atopex.adb: Use Object_Size
7674 instead of Size, otherwise many derived types will be rejected
7675 (e.g. a type with a 14 bits 'Size and a 16 bits 'Object_Size).
7677 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7679 * sem_ch12.adb (Copy_Generic_Node): Add special handling for a
7680 conversion between access types.
7682 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7684 * sem_ch12.adb (Check_Generic_Actuals): Also restore the proper
7685 views of the actuals of the parent instances if the formals are
7686 used as actuals of the children.
7687 (Instantiate_Type): Add comment.
7689 2020-06-04 Gary Dismukes <dismukes@adacore.com>
7691 * sem_ch12.adb: Minor editorial fixes.
7693 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7695 * sem_ch12.adb (Denotes_Previous_Actual): Delete.
7696 (Check_Generic_Actuals): Do not special case array types whose
7697 component type denotes a previous actual. Do not special case
7698 access types whose base type is private.
7699 (Check_Private_View): Remove code dealing with secondary types.
7700 Do not switch the views of an array because of its component.
7701 (Copy_Generic_Node): Add special handling for a comparison
7702 operator on array types.
7703 (Instantiate_Type): Do not special case access types whose
7704 designated type is private.
7705 (Set_Global_Type): Do not special case array types whose
7706 component type is private.
7708 2020-06-03 Justin Squirek <squirek@adacore.com>
7710 * sem_ch10.adb (Process_Body_Clauses): Add loop to interate
7711 through all prefixes in a use_type clause so that all packages
7712 in the expanded name get examined for effectiveness.
7714 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7716 * sem_ch12.adb (Check_Private_View): Clean up implementation of
7717 second main case, when the generic sees the private declaration.
7719 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7721 * libgnat/a-nbnbin.ads: Minor reformatting.
7722 * libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb (Is_Valid): Add
7723 convention Intrinsic. Add detection of uninitialized big reals.
7725 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7727 * sem_util.ads, sem_util.adb (Side_Effect_Free_Statements,
7728 Side_Effect_Free_Loop): New functions.
7729 (Has_Non_Null_Statements): Consider N_Call_Marker as a null
7731 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Call
7732 Set_Is_Null_Loop even inside a generic instantiation.
7733 (Analyze_Loop_Statement): Mark for removal loops with no side
7736 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7738 * opt.ads (Allow_Integer_Address): Fix typo in comment.
7739 * stand.ads (Standard_Address): New entity.
7740 * cstand.adb (Create_Standard): Create it.
7741 * sem_ch4.adb (Operator_Check): Convert the operands of an
7742 operation with addresses and integers to Standard_Address
7743 if pragma Allow_Integer_Address is in effect.
7745 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7747 * libgnat/s-atopar.adb (Atomic_Fetch_And_Add): Make use of an
7748 equivalent static expression.
7749 (Atomic_Fetch_And_Subtract): Likewise.
7750 (Is_Lock_Free): Likewise.
7751 * libgnat/s-atopex.adb (Atomic_Exchange): Likewise.
7752 (Atomic_Compare_And_Exchange): Likewise.
7753 (Is_Lock_Free): Likewise.
7755 2020-06-03 Vadim Godunko <godunko@adacore.com>
7757 * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
7758 libgnat/s-parame__hpux.ads: Fix typos.
7760 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7762 * exp_util.adb (Remove_Side_Effects): For a type conversion, do
7763 not remove the side effects of the expression only if it is of
7764 universal integer type.
7766 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7768 * libgnat/s-aotase.ads, libgnat/s-atoope.ads,
7769 libgnat/s-atopar.ads, libgnat/s-atopex.ads: Update header.
7771 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7773 * exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Also fold the
7774 conversion for literals of enumeration types.
7776 2020-06-03 Yannick Moy <moy@adacore.com>
7778 * rtsfind.adb (Load_RTU): Correctly set/reset global variable to
7779 ignore SPARK_Mode in instances around loading.
7780 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Accept Off
7782 * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise.
7783 * sem_prag.adb (Analyze_Pragma): Always take into account
7786 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7788 * frontend.adb (Frontend): Call (dummy for now) tree checker.
7789 * debug.adb: Reserve -gnatd_V for the tree checker.
7790 * vast.ads, vast.adb: New files.
7791 * gcc-interface/Make-lang.in: Add vast.o.
7793 2020-06-03 Justin Squirek <squirek@adacore.com>
7795 * libgnat/a-cborse.adb, libgnat/a-cihase.adb,
7796 libgnat/a-ciorse.adb, libgnat/a-coorse.adb: Modified to use
7797 'Unrestricted_Access in certain cases where static accessibility
7798 errors were triggered.
7799 * exp_ch6.adb (Expand_Simple_Return_Statement): Add generation
7800 of dynamic accessibility checks as determined by
7801 Is_Special_Aliased_Formal_Access.
7802 * sem_attr.adb (Resolve_Attribute): Add call to
7803 Is_Special_Aliased_Formal_Access to avoid performing static
7804 checks where dynamic ones are required.
7805 * sem_ch6.adb (Check_Return_Obj_Accessibility): Handle renamed
7806 objects within component associations requiring special
7807 accessibility checks.
7808 * sem_util.adb, sem_util.ads (Is_Special_Aliased_Formal_Access):
7809 Created to detect the special case where an aliased formal is
7810 being compared against the level of an anonymous access return
7812 (Object_Access_Level): Remove incorrect condition leading to
7813 overly permissive accessibility levels being returned on
7814 explicitly aliased parameters.
7816 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7818 * einfo.ads (Enum_Pos_To_Rep): Adjust description.
7819 * exp_attr.adb (Expand_N_Attribute_Reference) <Pred>:
7820 Reimplement in the case of an enumeration type with non-standard
7821 but contiguous representation.
7824 * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Count the
7825 literals in the first loop. If the representation is
7826 contiguous, just build the index type of the array type and set
7827 Enum_Pos_To_Rep to it.
7829 2020-06-03 Gary Dismukes <dismukes@adacore.com>
7831 * exp_attr.adb (Expand_Loop_Entry_Attribute): Revise loop that
7832 resets the scopes of entities associated with Loop_Id to the
7833 scope of the new function, so the resetting is not restricted to
7834 itypes, but excludes loop parameters and the function entity
7835 itself. However, this fix is believed to be incomplete and a ???
7836 comment is added to indicate that.
7838 2020-06-03 Bob Duff <duff@adacore.com>
7840 * libgnat/s-regexp.ads: Fix comment
7842 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7844 * exp_attr.adb (Expand_N_Attribute_Reference) <Enum_Rep>:
7845 In the case of an enumeration type, do an intermediate
7846 conversion to a small integer type. Remove useless stuff.
7847 <Finalization_Size>: Do not hardcode Universal_Integer and
7848 fix a type mismatch in the assignment to the variable.
7849 <Max_Size_In_Storage_Elements>: Likewise.
7850 <From_Any>: Do not redefine the Ptyp local variable.
7852 <TypeCode>: Likewise.
7853 <Pos>: Small tweaks.
7854 <Val>: For an enumeration type with standard representation,
7855 apply the range check to the expression of a convertion to
7856 Universal_Integer, if any. For an integer type, expand to
7859 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7861 * libgnat/s-rannum.adb (Random_Discrete): In the 32-bit case,
7862 use the same linear implementation as in the 64-bit case when
7863 the type has a contiguous representation.
7865 2020-06-03 Gary Dismukes <dismukes@adacore.com>
7867 * sem_util.adb (Build_Class_Wide_Clone_Decl): Call
7868 Set_Debug_Info_Needed to set the Needs_Debug_Info flag on
7869 Clone_Id if the flag is set on Spec_Id.
7871 2020-06-03 Yannick Moy <moy@adacore.com>
7873 * inline.adb (Expand_Inlined_Call): Do not suppress checks on
7874 inlined code in GNATprove mode.
7876 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7878 * einfo.ads (Has_Contiguous_Rep): Fix typo in comment.
7880 2020-06-03 Piotr Trojanek <trojanek@adacore.com>
7882 * checks.adb, einfo.adb, exp_aggr.adb, exp_ch4.adb, exp_ch6.adb,
7883 exp_unst.adb, exp_util.adb, freeze.adb, inline.adb, repinfo.adb,
7884 sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_ch13.adb,
7885 sem_ch3.adb, sem_ch4.adb, sem_ch8.adb, sem_elab.adb,
7886 sem_eval.adb, sem_prag.adb, sem_res.adb, sem_smem.adb,
7887 sem_util.adb, treepr.adb: Replace uses of Next_ functions with
7888 corresponding procedures.
7890 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7892 * exp_attr.adb (Attribute_Valid): Use Standard_Long_Long_Integer
7893 in lieu of Universal_Integer as large integer type.
7894 * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Likewise.
7896 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7898 * libgnat/s-auxdec.ads (Address_Int): New.
7900 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7902 * aspects.adb, aspects.ads, atree.adb, atree.ads, elists.adb,
7903 elists.ads, fname.adb, fname.ads, gnat1drv.adb, lib.adb,
7904 lib.ads, namet.adb, namet.ads, nlists.adb, nlists.ads, opt.adb,
7905 opt.ads, osint-c.adb, osint-c.ads, repinfo.adb, repinfo.ads,
7906 sem_aux.adb, sem_aux.ads, sinput.adb, sinput.ads, stand.ads,
7907 stringt.adb, stringt.ads, switch-c.adb, table.adb, table.ads,
7908 uintp.adb, uintp.ads, urealp.adb, urealp.ads (Tree_Read,
7909 Tree_Write): Remove generation of ASIS trees.
7910 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
7911 Remove -gnatt and -gnatct documentation.
7912 * gnat_ugn.texi: Regenerate.
7913 * tree_in.ads, tree_in.adb, tree_io.ads, tree_io.adb,
7914 tree_gen.ads, tree_gen.adb, stand.adb: Remove.
7915 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove
7916 references to tree_gen.o tree_in.o tree_io.o.
7918 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7920 * opt.ads (Disable_FE_Inline): Move around.
7921 (Disable_FE_Inline_Always): Likewise.
7923 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7925 * checks.adb (Is_Single_Attribute_Reference): New predicate.
7926 (Generate_Range_Check): Do not force the evaluation if the
7927 node is a single attribute reference.
7928 * exp_util.adb (Side_Effect_Free_Attribute): New predicate.
7929 (Side_Effect_Free) <N_Attribute_Reference>: Call it.
7930 (Remove_Side_Effects): Remove the side effects of the prefix
7931 for an attribute reference whose prefix is not a name.
7933 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7935 * switch-c.adb (Scan_Front_End_Switches): Remove processing of
7937 * usage.adb (Usage): Remove mention of -gnatt.
7939 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7941 * sinfo.ads: Minor tweaks in commentary.
7943 2020-06-02 Alexandre Oliva <oliva@adacore.com>
7945 * lib.ads (Compilation_Switches): Remove -auxbase from
7947 * switch.ads (Is_Internal_GCC_Switch): Likewise.
7949 2020-06-02 Arnaud Charlet <charlet@adacore.com>
7951 * atree.ads, checks.adb, contracts.adb, debug.adb, einfo.ads,
7952 exp_ch3.adb, exp_util.adb, expander.ads, expander.adb,
7953 frontend.adb, gnat1drv.adb, itypes.adb, lib.ads, namet.ads,
7954 opt.adb, opt.ads, par-prag.adb, repinfo.ads, sem_aggr.adb,
7955 sem_aux.ads, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
7956 sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb,
7957 sem_dim.adb, sem_elab.adb, sem_prag.adb, sem_prag.ads,
7958 sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, stand.ads,
7959 tree_io.ads: Remove references to ASIS_Mode.
7961 2020-06-02 Javier Miranda <miranda@adacore.com>
7963 * exp_ch4.adb (Generate_Temporary): New subprogram of
7964 Discrete_Range_Check that generates a temporary to facilitate
7965 the C backend the code generation of the unchecked conversion
7966 since the size of the source type may differ from the size of
7969 2020-06-02 Arnaud Charlet <charlet@adacore.com>
7971 * ada_get_targ.adb: Bump copyright year.
7972 * adabkend.adb: Likewise.
7973 * adabkend.ads: Likewise.
7974 * adadecode.c: Likewise.
7975 * adadecode.h: Likewise.
7976 * adaint.c: Likewise.
7977 * adaint.h: Likewise.
7978 * affinity.c: Likewise.
7979 * ali-util.adb: Likewise.
7980 * ali-util.ads: Likewise.
7981 * ali.adb: Likewise.
7982 * ali.ads: Likewise.
7983 * alloc.ads: Likewise.
7984 * argv-lynxos178-raven-cert.c: Likewise.
7986 * aspects.adb: Likewise.
7987 * aspects.ads: Likewise.
7988 * atree.adb: Likewise.
7989 * atree.ads: Likewise.
7990 * atree.h: Likewise.
7991 * aux-io.c: Likewise.
7992 * back_end.adb: Likewise.
7993 * back_end.ads: Likewise.
7994 * bcheck.adb: Likewise.
7995 * bcheck.ads: Likewise.
7996 * binde.adb: Likewise.
7997 * binde.ads: Likewise.
7998 * binderr.adb: Likewise.
7999 * binderr.ads: Likewise.
8000 * bindgen.adb: Likewise.
8001 * bindgen.ads: Likewise.
8002 * bindo-augmentors.adb: Likewise.
8003 * bindo-augmentors.ads: Likewise.
8004 * bindo-builders.adb: Likewise.
8005 * bindo-builders.ads: Likewise.
8006 * bindo-diagnostics.adb: Likewise.
8007 * bindo-diagnostics.ads: Likewise.
8008 * bindo-elaborators.adb: Likewise.
8009 * bindo-elaborators.ads: Likewise.
8010 * bindo-graphs.adb: Likewise.
8011 * bindo-graphs.ads: Likewise.
8012 * bindo-units.adb: Likewise.
8013 * bindo-units.ads: Likewise.
8014 * bindo-validators.adb: Likewise.
8015 * bindo-validators.ads: Likewise.
8016 * bindo-writers.adb: Likewise.
8017 * bindo-writers.ads: Likewise.
8018 * bindo.adb: Likewise.
8019 * bindo.ads: Likewise.
8020 * bindusg.adb: Likewise.
8021 * bindusg.ads: Likewise.
8022 * butil.adb: Likewise.
8023 * butil.ads: Likewise.
8025 * casing.adb: Likewise.
8026 * casing.ads: Likewise.
8027 * ceinfo.adb: Likewise.
8028 * checks.adb: Likewise.
8029 * checks.ads: Likewise.
8031 * clean.adb: Likewise.
8032 * clean.ads: Likewise.
8033 * comperr.adb: Likewise.
8034 * comperr.ads: Likewise.
8035 * contracts.adb: Likewise.
8036 * contracts.ads: Likewise.
8037 * csets.adb: Likewise.
8038 * csets.ads: Likewise.
8039 * csinfo.adb: Likewise.
8040 * cstand.adb: Likewise.
8041 * cstand.ads: Likewise.
8042 * cstreams.c: Likewise.
8043 * ctrl_c.c: Likewise.
8044 * debug.adb: Likewise.
8045 * debug.ads: Likewise.
8046 * debug_a.adb: Likewise.
8047 * debug_a.ads: Likewise.
8048 * einfo.adb: Likewise.
8049 * einfo.ads: Likewise.
8050 * elists.adb: Likewise.
8051 * elists.ads: Likewise.
8052 * elists.h: Likewise.
8055 * err_vars.ads: Likewise.
8056 * errno.c: Likewise.
8057 * errout.adb: Likewise.
8058 * errout.ads: Likewise.
8059 * erroutc.adb: Likewise.
8060 * erroutc.ads: Likewise.
8061 * errutil.adb: Likewise.
8062 * errutil.ads: Likewise.
8063 * eval_fat.adb: Likewise.
8064 * eval_fat.ads: Likewise.
8066 * exp_aggr.adb: Likewise.
8067 * exp_aggr.ads: Likewise.
8068 * exp_atag.adb: Likewise.
8069 * exp_atag.ads: Likewise.
8070 * exp_attr.adb: Likewise.
8071 * exp_attr.ads: Likewise.
8072 * exp_cg.adb: Likewise.
8073 * exp_cg.ads: Likewise.
8074 * exp_ch10.ads: Likewise.
8075 * exp_ch11.adb: Likewise.
8076 * exp_ch11.ads: Likewise.
8077 * exp_ch12.adb: Likewise.
8078 * exp_ch12.ads: Likewise.
8079 * exp_ch13.adb: Likewise.
8080 * exp_ch13.ads: Likewise.
8081 * exp_ch2.adb: Likewise.
8082 * exp_ch2.ads: Likewise.
8083 * exp_ch3.adb: Likewise.
8084 * exp_ch3.ads: Likewise.
8085 * exp_ch4.adb: Likewise.
8086 * exp_ch4.ads: Likewise.
8087 * exp_ch5.adb: Likewise.
8088 * exp_ch5.ads: Likewise.
8089 * exp_ch6.adb: Likewise.
8090 * exp_ch6.ads: Likewise.
8091 * exp_ch7.adb: Likewise.
8092 * exp_ch7.ads: Likewise.
8093 * exp_ch8.adb: Likewise.
8094 * exp_ch8.ads: Likewise.
8095 * exp_ch9.adb: Likewise.
8096 * exp_ch9.ads: Likewise.
8097 * exp_code.adb: Likewise.
8098 * exp_code.ads: Likewise.
8099 * exp_dbug.adb: Likewise.
8100 * exp_dbug.ads: Likewise.
8101 * exp_disp.adb: Likewise.
8102 * exp_disp.ads: Likewise.
8103 * exp_dist.adb: Likewise.
8104 * exp_dist.ads: Likewise.
8105 * exp_fixd.adb: Likewise.
8106 * exp_fixd.ads: Likewise.
8107 * exp_imgv.adb: Likewise.
8108 * exp_imgv.ads: Likewise.
8109 * exp_intr.adb: Likewise.
8110 * exp_intr.ads: Likewise.
8111 * exp_pakd.adb: Likewise.
8112 * exp_pakd.ads: Likewise.
8113 * exp_prag.adb: Likewise.
8114 * exp_prag.ads: Likewise.
8115 * exp_sel.adb: Likewise.
8116 * exp_sel.ads: Likewise.
8117 * exp_smem.adb: Likewise.
8118 * exp_smem.ads: Likewise.
8119 * exp_spark.adb: Likewise.
8120 * exp_spark.ads: Likewise.
8121 * exp_strm.adb: Likewise.
8122 * exp_strm.ads: Likewise.
8123 * exp_tss.adb: Likewise.
8124 * exp_tss.ads: Likewise.
8125 * exp_unst.adb: Likewise.
8126 * exp_unst.ads: Likewise.
8127 * exp_util.adb: Likewise.
8128 * exp_util.ads: Likewise.
8129 * expander.adb: Likewise.
8130 * expander.ads: Likewise.
8131 * expect.c: Likewise.
8133 * final.c: Likewise.
8134 * fmap.adb: Likewise.
8135 * fmap.ads: Likewise.
8136 * fname-sf.adb: Likewise.
8137 * fname-sf.ads: Likewise.
8138 * fname-uf.adb: Likewise.
8139 * fname-uf.ads: Likewise.
8140 * fname.adb: Likewise.
8141 * fname.ads: Likewise.
8142 * freeze.adb: Likewise.
8143 * freeze.ads: Likewise.
8144 * frontend.adb: Likewise.
8145 * frontend.ads: Likewise.
8146 * get_scos.adb: Likewise.
8147 * get_scos.ads: Likewise.
8148 * get_targ.adb: Likewise.
8149 * get_targ.ads: Likewise.
8150 * ghost.adb: Likewise.
8151 * ghost.ads: Likewise.
8152 * gnat1drv.adb: Likewise.
8153 * gnat1drv.ads: Likewise.
8154 * gnatbind.adb: Likewise.
8155 * gnatbind.ads: Likewise.
8156 * gnatchop.adb: Likewise.
8157 * gnatclean.adb: Likewise.
8158 * gnatcmd.adb: Likewise.
8159 * gnatcmd.ads: Likewise.
8160 * gnatdll.adb: Likewise.
8161 * gnatfind.adb: Likewise.
8162 * gnatkr.adb: Likewise.
8163 * gnatkr.ads: Likewise.
8164 * gnatlink.adb: Likewise.
8165 * gnatlink.ads: Likewise.
8166 * gnatls.adb: Likewise.
8167 * gnatls.ads: Likewise.
8168 * gnatmake.adb: Likewise.
8169 * gnatmake.ads: Likewise.
8170 * gnatname.adb: Likewise.
8171 * gnatname.ads: Likewise.
8172 * gnatprep.adb: Likewise.
8173 * gnatprep.ads: Likewise.
8174 * gnatvsn.adb: Likewise.
8175 * gnatxref.adb: Likewise.
8176 * gprep.adb: Likewise.
8177 * gprep.ads: Likewise.
8178 * gsocket.h: Likewise.
8179 * hostparm.ads: Likewise.
8180 * impunit.adb: Likewise.
8181 * impunit.ads: Likewise.
8182 * indepsw-aix.adb: Likewise.
8183 * indepsw-darwin.adb: Likewise.
8184 * indepsw-gnu.adb: Likewise.
8185 * indepsw.adb: Likewise.
8186 * indepsw.ads: Likewise.
8188 * initialize.c: Likewise.
8189 * inline.adb: Likewise.
8190 * inline.ads: Likewise.
8191 * itypes.adb: Likewise.
8192 * itypes.ads: Likewise.
8193 * krunch.adb: Likewise.
8194 * krunch.ads: Likewise.
8195 * layout.adb: Likewise.
8196 * layout.ads: Likewise.
8197 * lib-list.adb: Likewise.
8198 * lib-load.adb: Likewise.
8199 * lib-load.ads: Likewise.
8200 * lib-sort.adb: Likewise.
8201 * lib-util.adb: Likewise.
8202 * lib-util.ads: Likewise.
8203 * lib-writ.adb: Likewise.
8204 * lib-writ.ads: Likewise.
8205 * lib-xref-spark_specific.adb: Likewise.
8206 * lib-xref.adb: Likewise.
8207 * lib-xref.ads: Likewise.
8208 * lib.adb: Likewise.
8209 * lib.ads: Likewise.
8210 * libgnarl/a-astaco.adb: Likewise.
8211 * libgnarl/a-dispat.adb: Likewise.
8212 * libgnarl/a-dynpri.adb: Likewise.
8213 * libgnarl/a-etgrbu.ads: Likewise.
8214 * libgnarl/a-exetim__darwin.adb: Likewise.
8215 * libgnarl/a-exetim__default.ads: Likewise.
8216 * libgnarl/a-exetim__mingw.adb: Likewise.
8217 * libgnarl/a-exetim__mingw.ads: Likewise.
8218 * libgnarl/a-exetim__posix.adb: Likewise.
8219 * libgnarl/a-interr.adb: Likewise.
8220 * libgnarl/a-interr.ads: Likewise.
8221 * libgnarl/a-intnam.ads: Likewise.
8222 * libgnarl/a-intnam__aix.ads: Likewise.
8223 * libgnarl/a-intnam__darwin.ads: Likewise.
8224 * libgnarl/a-intnam__dragonfly.ads: Likewise.
8225 * libgnarl/a-intnam__dummy.ads: Likewise.
8226 * libgnarl/a-intnam__freebsd.ads: Likewise.
8227 * libgnarl/a-intnam__hpux.ads: Likewise.
8228 * libgnarl/a-intnam__linux.ads: Likewise.
8229 * libgnarl/a-intnam__lynxos.ads: Likewise.
8230 * libgnarl/a-intnam__mingw.ads: Likewise.
8231 * libgnarl/a-intnam__qnx.ads: Likewise.
8232 * libgnarl/a-intnam__rtems.ads: Likewise.
8233 * libgnarl/a-intnam__solaris.ads: Likewise.
8234 * libgnarl/a-intnam__vxworks.ads: Likewise.
8235 * libgnarl/a-reatim.adb: Likewise.
8236 * libgnarl/a-reatim.ads: Likewise.
8237 * libgnarl/a-retide.adb: Likewise.
8238 * libgnarl/a-retide.ads: Likewise.
8239 * libgnarl/a-rttiev.adb: Likewise.
8240 * libgnarl/a-rttiev.ads: Likewise.
8241 * libgnarl/a-synbar.adb: Likewise.
8242 * libgnarl/a-synbar.ads: Likewise.
8243 * libgnarl/a-synbar__posix.adb: Likewise.
8244 * libgnarl/a-synbar__posix.ads: Likewise.
8245 * libgnarl/a-sytaco.adb: Likewise.
8246 * libgnarl/a-sytaco.ads: Likewise.
8247 * libgnarl/a-tasatt.adb: Likewise.
8248 * libgnarl/a-tasatt.ads: Likewise.
8249 * libgnarl/a-taside.adb: Likewise.
8250 * libgnarl/a-taside.ads: Likewise.
8251 * libgnarl/a-taster.adb: Likewise.
8252 * libgnarl/g-boubuf.adb: Likewise.
8253 * libgnarl/g-boubuf.ads: Likewise.
8254 * libgnarl/g-boumai.ads: Likewise.
8255 * libgnarl/g-semaph.adb: Likewise.
8256 * libgnarl/g-semaph.ads: Likewise.
8257 * libgnarl/g-signal.adb: Likewise.
8258 * libgnarl/g-signal.ads: Likewise.
8259 * libgnarl/g-tastus.ads: Likewise.
8260 * libgnarl/g-thread.adb: Likewise.
8261 * libgnarl/g-thread.ads: Likewise.
8262 * libgnarl/i-vxinco.adb: Likewise.
8263 * libgnarl/i-vxinco.ads: Likewise.
8264 * libgnarl/s-inmaop.ads: Likewise.
8265 * libgnarl/s-inmaop__dummy.adb: Likewise.
8266 * libgnarl/s-inmaop__posix.adb: Likewise.
8267 * libgnarl/s-inmaop__vxworks.adb: Likewise.
8268 * libgnarl/s-interr.adb: Likewise.
8269 * libgnarl/s-interr.ads: Likewise.
8270 * libgnarl/s-interr__dummy.adb: Likewise.
8271 * libgnarl/s-interr__hwint.adb: Likewise.
8272 * libgnarl/s-interr__sigaction.adb: Likewise.
8273 * libgnarl/s-interr__vxworks.adb: Likewise.
8274 * libgnarl/s-intman.ads: Likewise.
8275 * libgnarl/s-intman__android.adb: Likewise.
8276 * libgnarl/s-intman__dummy.adb: Likewise.
8277 * libgnarl/s-intman__lynxos.adb: Likewise.
8278 * libgnarl/s-intman__mingw.adb: Likewise.
8279 * libgnarl/s-intman__posix.adb: Likewise.
8280 * libgnarl/s-intman__qnx.adb: Likewise.
8281 * libgnarl/s-intman__solaris.adb: Likewise.
8282 * libgnarl/s-intman__susv3.adb: Likewise.
8283 * libgnarl/s-intman__vxworks.adb: Likewise.
8284 * libgnarl/s-intman__vxworks.ads: Likewise.
8285 * libgnarl/s-linux.ads: Likewise.
8286 * libgnarl/s-linux__alpha.ads: Likewise.
8287 * libgnarl/s-linux__android.ads: Likewise.
8288 * libgnarl/s-linux__hppa.ads: Likewise.
8289 * libgnarl/s-linux__mips.ads: Likewise.
8290 * libgnarl/s-linux__riscv.ads: Likewise.
8291 * libgnarl/s-linux__sparc.ads: Likewise.
8292 * libgnarl/s-linux__x32.ads: Likewise.
8293 * libgnarl/s-mudido.adb: Likewise.
8294 * libgnarl/s-mudido__affinity.adb: Likewise.
8295 * libgnarl/s-osinte__aix.adb: Likewise.
8296 * libgnarl/s-osinte__aix.ads: Likewise.
8297 * libgnarl/s-osinte__android.adb: Likewise.
8298 * libgnarl/s-osinte__android.ads: Likewise.
8299 * libgnarl/s-osinte__darwin.adb: Likewise.
8300 * libgnarl/s-osinte__darwin.ads: Likewise.
8301 * libgnarl/s-osinte__dragonfly.adb: Likewise.
8302 * libgnarl/s-osinte__dragonfly.ads: Likewise.
8303 * libgnarl/s-osinte__dummy.ads: Likewise.
8304 * libgnarl/s-osinte__freebsd.adb: Likewise.
8305 * libgnarl/s-osinte__freebsd.ads: Likewise.
8306 * libgnarl/s-osinte__gnu.adb: Likewise.
8307 * libgnarl/s-osinte__gnu.ads: Likewise.
8308 * libgnarl/s-osinte__hpux-dce.adb: Likewise.
8309 * libgnarl/s-osinte__hpux-dce.ads: Likewise.
8310 * libgnarl/s-osinte__hpux.ads: Likewise.
8311 * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
8312 * libgnarl/s-osinte__linux.ads: Likewise.
8313 * libgnarl/s-osinte__lynxos178.adb: Likewise.
8314 * libgnarl/s-osinte__lynxos178e.ads: Likewise.
8315 * libgnarl/s-osinte__mingw.ads: Likewise.
8316 * libgnarl/s-osinte__posix.adb: Likewise.
8317 * libgnarl/s-osinte__qnx.adb: Likewise.
8318 * libgnarl/s-osinte__qnx.ads: Likewise.
8319 * libgnarl/s-osinte__rtems.adb: Likewise.
8320 * libgnarl/s-osinte__rtems.ads: Likewise.
8321 * libgnarl/s-osinte__solaris.adb: Likewise.
8322 * libgnarl/s-osinte__solaris.ads: Likewise.
8323 * libgnarl/s-osinte__vxworks.adb: Likewise.
8324 * libgnarl/s-osinte__vxworks.ads: Likewise.
8325 * libgnarl/s-osinte__x32.adb: Likewise.
8326 * libgnarl/s-proinf.adb: Likewise.
8327 * libgnarl/s-proinf.ads: Likewise.
8328 * libgnarl/s-qnx.ads: Likewise.
8329 * libgnarl/s-solita.adb: Likewise.
8330 * libgnarl/s-solita.ads: Likewise.
8331 * libgnarl/s-stusta.adb: Likewise.
8332 * libgnarl/s-stusta.ads: Likewise.
8333 * libgnarl/s-taasde.adb: Likewise.
8334 * libgnarl/s-taasde.ads: Likewise.
8335 * libgnarl/s-tadeca.adb: Likewise.
8336 * libgnarl/s-tadeca.ads: Likewise.
8337 * libgnarl/s-tadert.adb: Likewise.
8338 * libgnarl/s-tadert.ads: Likewise.
8339 * libgnarl/s-taenca.adb: Likewise.
8340 * libgnarl/s-taenca.ads: Likewise.
8341 * libgnarl/s-taprob.adb: Likewise.
8342 * libgnarl/s-taprob.ads: Likewise.
8343 * libgnarl/s-taprop.ads: Likewise.
8344 * libgnarl/s-taprop__dummy.adb: Likewise.
8345 * libgnarl/s-taprop__hpux-dce.adb: Likewise.
8346 * libgnarl/s-taprop__linux.adb: Likewise.
8347 * libgnarl/s-taprop__mingw.adb: Likewise.
8348 * libgnarl/s-taprop__posix.adb: Likewise.
8349 * libgnarl/s-taprop__qnx.adb: Likewise.
8350 * libgnarl/s-taprop__solaris.adb: Likewise.
8351 * libgnarl/s-taprop__vxworks.adb: Likewise.
8352 * libgnarl/s-tarest.adb: Likewise.
8353 * libgnarl/s-tarest.ads: Likewise.
8354 * libgnarl/s-tasdeb.adb: Likewise.
8355 * libgnarl/s-tasdeb.ads: Likewise.
8356 * libgnarl/s-tasinf.adb: Likewise.
8357 * libgnarl/s-tasinf.ads: Likewise.
8358 * libgnarl/s-tasinf__linux.adb: Likewise.
8359 * libgnarl/s-tasinf__linux.ads: Likewise.
8360 * libgnarl/s-tasinf__mingw.adb: Likewise.
8361 * libgnarl/s-tasinf__mingw.ads: Likewise.
8362 * libgnarl/s-tasinf__solaris.adb: Likewise.
8363 * libgnarl/s-tasinf__solaris.ads: Likewise.
8364 * libgnarl/s-tasinf__vxworks.ads: Likewise.
8365 * libgnarl/s-tasini.adb: Likewise.
8366 * libgnarl/s-tasini.ads: Likewise.
8367 * libgnarl/s-taskin.adb: Likewise.
8368 * libgnarl/s-taskin.ads: Likewise.
8369 * libgnarl/s-taspri__dummy.ads: Likewise.
8370 * libgnarl/s-taspri__hpux-dce.ads: Likewise.
8371 * libgnarl/s-taspri__lynxos.ads: Likewise.
8372 * libgnarl/s-taspri__mingw.ads: Likewise.
8373 * libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
8374 * libgnarl/s-taspri__posix.ads: Likewise.
8375 * libgnarl/s-taspri__solaris.ads: Likewise.
8376 * libgnarl/s-taspri__vxworks.ads: Likewise.
8377 * libgnarl/s-tasque.adb: Likewise.
8378 * libgnarl/s-tasque.ads: Likewise.
8379 * libgnarl/s-tasren.adb: Likewise.
8380 * libgnarl/s-tasren.ads: Likewise.
8381 * libgnarl/s-tasres.ads: Likewise.
8382 * libgnarl/s-tassta.adb: Likewise.
8383 * libgnarl/s-tassta.ads: Likewise.
8384 * libgnarl/s-tasuti.adb: Likewise.
8385 * libgnarl/s-tasuti.ads: Likewise.
8386 * libgnarl/s-tataat.adb: Likewise.
8387 * libgnarl/s-tataat.ads: Likewise.
8388 * libgnarl/s-tpinop.adb: Likewise.
8389 * libgnarl/s-tpinop.ads: Likewise.
8390 * libgnarl/s-tpoaal.adb: Likewise.
8391 * libgnarl/s-tpoben.adb: Likewise.
8392 * libgnarl/s-tpoben.ads: Likewise.
8393 * libgnarl/s-tpobmu.adb: Likewise.
8394 * libgnarl/s-tpobmu.ads: Likewise.
8395 * libgnarl/s-tpobop.adb: Likewise.
8396 * libgnarl/s-tpobop.ads: Likewise.
8397 * libgnarl/s-tpopmo.adb: Likewise.
8398 * libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
8399 * libgnarl/s-tpopsp__posix.adb: Likewise.
8400 * libgnarl/s-tpopsp__solaris.adb: Likewise.
8401 * libgnarl/s-tpopsp__tls.adb: Likewise.
8402 * libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
8403 * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
8404 * libgnarl/s-tpopsp__vxworks.adb: Likewise.
8405 * libgnarl/s-tporft.adb: Likewise.
8406 * libgnarl/s-tposen.adb: Likewise.
8407 * libgnarl/s-tposen.ads: Likewise.
8408 * libgnarl/s-vxwext.adb: Likewise.
8409 * libgnarl/s-vxwext.ads: Likewise.
8410 * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
8411 * libgnarl/s-vxwext__kernel.adb: Likewise.
8412 * libgnarl/s-vxwext__kernel.ads: Likewise.
8413 * libgnarl/s-vxwext__noints.adb: Likewise.
8414 * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
8415 * libgnarl/s-vxwext__rtp.adb: Likewise.
8416 * libgnarl/s-vxwext__rtp.ads: Likewise.
8417 * libgnarl/s-vxwext__vthreads.ads: Likewise.
8418 * libgnarl/s-vxwork__aarch64.ads: Likewise.
8419 * libgnarl/s-vxwork__arm.ads: Likewise.
8420 * libgnarl/s-vxwork__ppc.ads: Likewise.
8421 * libgnarl/s-vxwork__x86.ads: Likewise.
8422 * libgnarl/thread.c: Likewise.
8423 * libgnat/a-assert.adb: Likewise.
8424 * libgnat/a-assert.ads: Likewise.
8425 * libgnat/a-btgbso.adb: Likewise.
8426 * libgnat/a-btgbso.ads: Likewise.
8427 * libgnat/a-calari.adb: Likewise.
8428 * libgnat/a-calari.ads: Likewise.
8429 * libgnat/a-calcon.adb: Likewise.
8430 * libgnat/a-calcon.ads: Likewise.
8431 * libgnat/a-caldel.adb: Likewise.
8432 * libgnat/a-caldel.ads: Likewise.
8433 * libgnat/a-calend.adb: Likewise.
8434 * libgnat/a-calend.ads: Likewise.
8435 * libgnat/a-calfor.adb: Likewise.
8436 * libgnat/a-calfor.ads: Likewise.
8437 * libgnat/a-catizo.adb: Likewise.
8438 * libgnat/a-cbdlli.adb: Likewise.
8439 * libgnat/a-cbdlli.ads: Likewise.
8440 * libgnat/a-cbhama.adb: Likewise.
8441 * libgnat/a-cbhama.ads: Likewise.
8442 * libgnat/a-cbhase.adb: Likewise.
8443 * libgnat/a-cbhase.ads: Likewise.
8444 * libgnat/a-cbmutr.adb: Likewise.
8445 * libgnat/a-cbmutr.ads: Likewise.
8446 * libgnat/a-cborma.adb: Likewise.
8447 * libgnat/a-cborma.ads: Likewise.
8448 * libgnat/a-cborse.adb: Likewise.
8449 * libgnat/a-cborse.ads: Likewise.
8450 * libgnat/a-cbprqu.adb: Likewise.
8451 * libgnat/a-cbprqu.ads: Likewise.
8452 * libgnat/a-cbsyqu.adb: Likewise.
8453 * libgnat/a-cbsyqu.ads: Likewise.
8454 * libgnat/a-cdlili.adb: Likewise.
8455 * libgnat/a-cdlili.ads: Likewise.
8456 * libgnat/a-cfdlli.adb: Likewise.
8457 * libgnat/a-cfdlli.ads: Likewise.
8458 * libgnat/a-cfhama.adb: Likewise.
8459 * libgnat/a-cfhama.ads: Likewise.
8460 * libgnat/a-cfhase.adb: Likewise.
8461 * libgnat/a-cfhase.ads: Likewise.
8462 * libgnat/a-cfinve.adb: Likewise.
8463 * libgnat/a-cfinve.ads: Likewise.
8464 * libgnat/a-cforma.adb: Likewise.
8465 * libgnat/a-cforma.ads: Likewise.
8466 * libgnat/a-cforse.adb: Likewise.
8467 * libgnat/a-cforse.ads: Likewise.
8468 * libgnat/a-cgaaso.adb: Likewise.
8469 * libgnat/a-cgaaso.ads: Likewise.
8470 * libgnat/a-cgarso.adb: Likewise.
8471 * libgnat/a-cgcaso.adb: Likewise.
8472 * libgnat/a-chacon.adb: Likewise.
8473 * libgnat/a-chacon.ads: Likewise.
8474 * libgnat/a-chahan.adb: Likewise.
8475 * libgnat/a-chahan.ads: Likewise.
8476 * libgnat/a-chlat9.ads: Likewise.
8477 * libgnat/a-chtgbk.adb: Likewise.
8478 * libgnat/a-chtgbk.ads: Likewise.
8479 * libgnat/a-chtgbo.adb: Likewise.
8480 * libgnat/a-chtgbo.ads: Likewise.
8481 * libgnat/a-chtgke.adb: Likewise.
8482 * libgnat/a-chtgke.ads: Likewise.
8483 * libgnat/a-chtgop.adb: Likewise.
8484 * libgnat/a-chtgop.ads: Likewise.
8485 * libgnat/a-chzla1.ads: Likewise.
8486 * libgnat/a-chzla9.ads: Likewise.
8487 * libgnat/a-cidlli.adb: Likewise.
8488 * libgnat/a-cidlli.ads: Likewise.
8489 * libgnat/a-cihama.adb: Likewise.
8490 * libgnat/a-cihama.ads: Likewise.
8491 * libgnat/a-cihase.adb: Likewise.
8492 * libgnat/a-cihase.ads: Likewise.
8493 * libgnat/a-cimutr.adb: Likewise.
8494 * libgnat/a-cimutr.ads: Likewise.
8495 * libgnat/a-ciorma.adb: Likewise.
8496 * libgnat/a-ciorma.ads: Likewise.
8497 * libgnat/a-ciormu.adb: Likewise.
8498 * libgnat/a-ciormu.ads: Likewise.
8499 * libgnat/a-ciorse.adb: Likewise.
8500 * libgnat/a-ciorse.ads: Likewise.
8501 * libgnat/a-clrefi.adb: Likewise.
8502 * libgnat/a-clrefi.ads: Likewise.
8503 * libgnat/a-coboho.adb: Likewise.
8504 * libgnat/a-coboho.ads: Likewise.
8505 * libgnat/a-cobove.adb: Likewise.
8506 * libgnat/a-cobove.ads: Likewise.
8507 * libgnat/a-cofove.adb: Likewise.
8508 * libgnat/a-cofove.ads: Likewise.
8509 * libgnat/a-cofuba.adb: Likewise.
8510 * libgnat/a-cofuba.ads: Likewise.
8511 * libgnat/a-cofuma.adb: Likewise.
8512 * libgnat/a-cofuma.ads: Likewise.
8513 * libgnat/a-cofuse.adb: Likewise.
8514 * libgnat/a-cofuse.ads: Likewise.
8515 * libgnat/a-cofuve.adb: Likewise.
8516 * libgnat/a-cofuve.ads: Likewise.
8517 * libgnat/a-cogeso.adb: Likewise.
8518 * libgnat/a-cogeso.ads: Likewise.
8519 * libgnat/a-cohama.adb: Likewise.
8520 * libgnat/a-cohama.ads: Likewise.
8521 * libgnat/a-cohase.adb: Likewise.
8522 * libgnat/a-cohase.ads: Likewise.
8523 * libgnat/a-cohata.ads: Likewise.
8524 * libgnat/a-coinho.adb: Likewise.
8525 * libgnat/a-coinho.ads: Likewise.
8526 * libgnat/a-coinho__shared.adb: Likewise.
8527 * libgnat/a-coinho__shared.ads: Likewise.
8528 * libgnat/a-coinve.adb: Likewise.
8529 * libgnat/a-coinve.ads: Likewise.
8530 * libgnat/a-colien.adb: Likewise.
8531 * libgnat/a-colien.ads: Likewise.
8532 * libgnat/a-colire.adb: Likewise.
8533 * libgnat/a-colire.ads: Likewise.
8534 * libgnat/a-comlin.adb: Likewise.
8535 * libgnat/a-comlin.ads: Likewise.
8536 * libgnat/a-comutr.adb: Likewise.
8537 * libgnat/a-comutr.ads: Likewise.
8538 * libgnat/a-conhel.adb: Likewise.
8539 * libgnat/a-conhel.ads: Likewise.
8540 * libgnat/a-convec.adb: Likewise.
8541 * libgnat/a-convec.ads: Likewise.
8542 * libgnat/a-coorma.adb: Likewise.
8543 * libgnat/a-coorma.ads: Likewise.
8544 * libgnat/a-coormu.adb: Likewise.
8545 * libgnat/a-coormu.ads: Likewise.
8546 * libgnat/a-coorse.adb: Likewise.
8547 * libgnat/a-coorse.ads: Likewise.
8548 * libgnat/a-coprnu.adb: Likewise.
8549 * libgnat/a-coprnu.ads: Likewise.
8550 * libgnat/a-crbltr.ads: Likewise.
8551 * libgnat/a-crbtgk.adb: Likewise.
8552 * libgnat/a-crbtgk.ads: Likewise.
8553 * libgnat/a-crbtgo.adb: Likewise.
8554 * libgnat/a-crbtgo.ads: Likewise.
8555 * libgnat/a-crdlli.adb: Likewise.
8556 * libgnat/a-crdlli.ads: Likewise.
8557 * libgnat/a-csquin.ads: Likewise.
8558 * libgnat/a-cuprqu.adb: Likewise.
8559 * libgnat/a-cuprqu.ads: Likewise.
8560 * libgnat/a-cusyqu.adb: Likewise.
8561 * libgnat/a-cusyqu.ads: Likewise.
8562 * libgnat/a-cwila1.ads: Likewise.
8563 * libgnat/a-cwila9.ads: Likewise.
8564 * libgnat/a-decima.adb: Likewise.
8565 * libgnat/a-decima.ads: Likewise.
8566 * libgnat/a-dhfina.adb: Likewise.
8567 * libgnat/a-dhfina.ads: Likewise.
8568 * libgnat/a-diocst.adb: Likewise.
8569 * libgnat/a-diocst.ads: Likewise.
8570 * libgnat/a-direct.adb: Likewise.
8571 * libgnat/a-direct.ads: Likewise.
8572 * libgnat/a-direio.adb: Likewise.
8573 * libgnat/a-direio.ads: Likewise.
8574 * libgnat/a-dirval.adb: Likewise.
8575 * libgnat/a-dirval.ads: Likewise.
8576 * libgnat/a-dirval__mingw.adb: Likewise.
8577 * libgnat/a-einuoc.adb: Likewise.
8578 * libgnat/a-einuoc.ads: Likewise.
8579 * libgnat/a-elchha.adb: Likewise.
8580 * libgnat/a-elchha.ads: Likewise.
8581 * libgnat/a-elchha__vxworks-ppc-full.adb: Likewise.
8582 * libgnat/a-envvar.adb: Likewise.
8583 * libgnat/a-excach.adb: Likewise.
8584 * libgnat/a-except.adb: Likewise.
8585 * libgnat/a-except.ads: Likewise.
8586 * libgnat/a-excpol.adb: Likewise.
8587 * libgnat/a-excpol__abort.adb: Likewise.
8588 * libgnat/a-exctra.adb: Likewise.
8589 * libgnat/a-exctra.ads: Likewise.
8590 * libgnat/a-exexda.adb: Likewise.
8591 * libgnat/a-exexpr.adb: Likewise.
8592 * libgnat/a-exextr.adb: Likewise.
8593 * libgnat/a-exstat.adb: Likewise.
8594 * libgnat/a-finali.adb: Likewise.
8595 * libgnat/a-finali.ads: Likewise.
8596 * libgnat/a-locale.adb: Likewise.
8597 * libgnat/a-locale.ads: Likewise.
8598 * libgnat/a-nbnbin.adb: Likewise.
8599 * libgnat/a-nbnbin__gmp.adb: Likewise.
8600 * libgnat/a-nbnbre.adb: Likewise.
8601 * libgnat/a-ngcefu.adb: Likewise.
8602 * libgnat/a-ngcoar.adb: Likewise.
8603 * libgnat/a-ngcoty.adb: Likewise.
8604 * libgnat/a-ngcoty.ads: Likewise.
8605 * libgnat/a-ngelfu.adb: Likewise.
8606 * libgnat/a-ngelfu.ads: Likewise.
8607 * libgnat/a-ngrear.adb: Likewise.
8608 * libgnat/a-ngrear.ads: Likewise.
8609 * libgnat/a-nudira.adb: Likewise.
8610 * libgnat/a-nudira.ads: Likewise.
8611 * libgnat/a-nuflra.adb: Likewise.
8612 * libgnat/a-nuflra.ads: Likewise.
8613 * libgnat/a-numaux.ads: Likewise.
8614 * libgnat/a-numaux__darwin.adb: Likewise.
8615 * libgnat/a-numaux__darwin.ads: Likewise.
8616 * libgnat/a-numaux__libc-x86.ads: Likewise.
8617 * libgnat/a-numaux__vxworks.ads: Likewise.
8618 * libgnat/a-numaux__x86.adb: Likewise.
8619 * libgnat/a-numaux__x86.ads: Likewise.
8620 * libgnat/a-rbtgbk.adb: Likewise.
8621 * libgnat/a-rbtgbk.ads: Likewise.
8622 * libgnat/a-rbtgbo.adb: Likewise.
8623 * libgnat/a-rbtgbo.ads: Likewise.
8624 * libgnat/a-rbtgso.adb: Likewise.
8625 * libgnat/a-rbtgso.ads: Likewise.
8626 * libgnat/a-sbecin.adb: Likewise.
8627 * libgnat/a-sbecin.ads: Likewise.
8628 * libgnat/a-sbhcin.adb: Likewise.
8629 * libgnat/a-sbhcin.ads: Likewise.
8630 * libgnat/a-sblcin.adb: Likewise.
8631 * libgnat/a-sblcin.ads: Likewise.
8632 * libgnat/a-secain.adb: Likewise.
8633 * libgnat/a-secain.ads: Likewise.
8634 * libgnat/a-sequio.adb: Likewise.
8635 * libgnat/a-sequio.ads: Likewise.
8636 * libgnat/a-sfecin.ads: Likewise.
8637 * libgnat/a-sfhcin.ads: Likewise.
8638 * libgnat/a-sflcin.ads: Likewise.
8639 * libgnat/a-shcain.adb: Likewise.
8640 * libgnat/a-shcain.ads: Likewise.
8641 * libgnat/a-siocst.adb: Likewise.
8642 * libgnat/a-siocst.ads: Likewise.
8643 * libgnat/a-slcain.adb: Likewise.
8644 * libgnat/a-slcain.ads: Likewise.
8645 * libgnat/a-ssicst.adb: Likewise.
8646 * libgnat/a-ssicst.ads: Likewise.
8647 * libgnat/a-stboha.adb: Likewise.
8648 * libgnat/a-stmaco.ads: Likewise.
8649 * libgnat/a-storio.adb: Likewise.
8650 * libgnat/a-strbou.adb: Likewise.
8651 * libgnat/a-strbou.ads: Likewise.
8652 * libgnat/a-stream.adb: Likewise.
8653 * libgnat/a-stream.ads: Likewise.
8654 * libgnat/a-strfix.adb: Likewise.
8655 * libgnat/a-strhas.adb: Likewise.
8656 * libgnat/a-strmap.adb: Likewise.
8657 * libgnat/a-strmap.ads: Likewise.
8658 * libgnat/a-strsea.adb: Likewise.
8659 * libgnat/a-strsea.ads: Likewise.
8660 * libgnat/a-strsup.adb: Likewise.
8661 * libgnat/a-strsup.ads: Likewise.
8662 * libgnat/a-strunb.adb: Likewise.
8663 * libgnat/a-strunb.ads: Likewise.
8664 * libgnat/a-strunb__shared.adb: Likewise.
8665 * libgnat/a-strunb__shared.ads: Likewise.
8666 * libgnat/a-ststio.adb: Likewise.
8667 * libgnat/a-ststio.ads: Likewise.
8668 * libgnat/a-stunau.adb: Likewise.
8669 * libgnat/a-stunau.ads: Likewise.
8670 * libgnat/a-stunau__shared.adb: Likewise.
8671 * libgnat/a-stunha.adb: Likewise.
8672 * libgnat/a-stuten.adb: Likewise.
8673 * libgnat/a-stwibo.adb: Likewise.
8674 * libgnat/a-stwibo.ads: Likewise.
8675 * libgnat/a-stwifi.adb: Likewise.
8676 * libgnat/a-stwiha.adb: Likewise.
8677 * libgnat/a-stwima.adb: Likewise.
8678 * libgnat/a-stwima.ads: Likewise.
8679 * libgnat/a-stwise.adb: Likewise.
8680 * libgnat/a-stwise.ads: Likewise.
8681 * libgnat/a-stwisu.adb: Likewise.
8682 * libgnat/a-stwisu.ads: Likewise.
8683 * libgnat/a-stwiun.adb: Likewise.
8684 * libgnat/a-stwiun.ads: Likewise.
8685 * libgnat/a-stwiun__shared.adb: Likewise.
8686 * libgnat/a-stwiun__shared.ads: Likewise.
8687 * libgnat/a-stzbou.adb: Likewise.
8688 * libgnat/a-stzbou.ads: Likewise.
8689 * libgnat/a-stzfix.adb: Likewise.
8690 * libgnat/a-stzhas.adb: Likewise.
8691 * libgnat/a-stzmap.adb: Likewise.
8692 * libgnat/a-stzmap.ads: Likewise.
8693 * libgnat/a-stzsea.adb: Likewise.
8694 * libgnat/a-stzsea.ads: Likewise.
8695 * libgnat/a-stzsup.adb: Likewise.
8696 * libgnat/a-stzsup.ads: Likewise.
8697 * libgnat/a-stzunb.adb: Likewise.
8698 * libgnat/a-stzunb.ads: Likewise.
8699 * libgnat/a-stzunb__shared.adb: Likewise.
8700 * libgnat/a-stzunb__shared.ads: Likewise.
8701 * libgnat/a-suecin.adb: Likewise.
8702 * libgnat/a-suecin.ads: Likewise.
8703 * libgnat/a-suenco.adb: Likewise.
8704 * libgnat/a-suenst.adb: Likewise.
8705 * libgnat/a-suewst.adb: Likewise.
8706 * libgnat/a-suezst.adb: Likewise.
8707 * libgnat/a-suhcin.adb: Likewise.
8708 * libgnat/a-suhcin.ads: Likewise.
8709 * libgnat/a-sulcin.adb: Likewise.
8710 * libgnat/a-sulcin.ads: Likewise.
8711 * libgnat/a-suteio.adb: Likewise.
8712 * libgnat/a-suteio.ads: Likewise.
8713 * libgnat/a-suteio__shared.adb: Likewise.
8714 * libgnat/a-swbwha.adb: Likewise.
8715 * libgnat/a-swmwco.ads: Likewise.
8716 * libgnat/a-swunau.adb: Likewise.
8717 * libgnat/a-swunau.ads: Likewise.
8718 * libgnat/a-swunau__shared.adb: Likewise.
8719 * libgnat/a-swuwha.adb: Likewise.
8720 * libgnat/a-swuwti.adb: Likewise.
8721 * libgnat/a-swuwti.ads: Likewise.
8722 * libgnat/a-swuwti__shared.adb: Likewise.
8723 * libgnat/a-szbzha.adb: Likewise.
8724 * libgnat/a-szmzco.ads: Likewise.
8725 * libgnat/a-szunau.adb: Likewise.
8726 * libgnat/a-szunau.ads: Likewise.
8727 * libgnat/a-szunau__shared.adb: Likewise.
8728 * libgnat/a-szuzha.adb: Likewise.
8729 * libgnat/a-szuzti.adb: Likewise.
8730 * libgnat/a-szuzti.ads: Likewise.
8731 * libgnat/a-szuzti__shared.adb: Likewise.
8732 * libgnat/a-tags.adb: Likewise.
8733 * libgnat/a-tags.ads: Likewise.
8734 * libgnat/a-teioed.adb: Likewise.
8735 * libgnat/a-teioed.ads: Likewise.
8736 * libgnat/a-textio.adb: Likewise.
8737 * libgnat/a-textio.ads: Likewise.
8738 * libgnat/a-tiboio.adb: Likewise.
8739 * libgnat/a-ticoau.adb: Likewise.
8740 * libgnat/a-ticoau.ads: Likewise.
8741 * libgnat/a-ticoio.adb: Likewise.
8742 * libgnat/a-ticoio.ads: Likewise.
8743 * libgnat/a-tideau.adb: Likewise.
8744 * libgnat/a-tideau.ads: Likewise.
8745 * libgnat/a-tideio.adb: Likewise.
8746 * libgnat/a-tideio.ads: Likewise.
8747 * libgnat/a-tienau.adb: Likewise.
8748 * libgnat/a-tienau.ads: Likewise.
8749 * libgnat/a-tienio.adb: Likewise.
8750 * libgnat/a-tifiio.adb: Likewise.
8751 * libgnat/a-tiflau.adb: Likewise.
8752 * libgnat/a-tiflau.ads: Likewise.
8753 * libgnat/a-tiflio.adb: Likewise.
8754 * libgnat/a-tiflio.ads: Likewise.
8755 * libgnat/a-tigeau.adb: Likewise.
8756 * libgnat/a-tigeau.ads: Likewise.
8757 * libgnat/a-tigeli.adb: Likewise.
8758 * libgnat/a-tiinau.adb: Likewise.
8759 * libgnat/a-tiinau.ads: Likewise.
8760 * libgnat/a-tiinio.adb: Likewise.
8761 * libgnat/a-tiinio.ads: Likewise.
8762 * libgnat/a-timoau.adb: Likewise.
8763 * libgnat/a-timoau.ads: Likewise.
8764 * libgnat/a-timoio.adb: Likewise.
8765 * libgnat/a-timoio.ads: Likewise.
8766 * libgnat/a-tiocst.adb: Likewise.
8767 * libgnat/a-tiocst.ads: Likewise.
8768 * libgnat/a-tirsfi.adb: Likewise.
8769 * libgnat/a-tirsfi.ads: Likewise.
8770 * libgnat/a-titest.adb: Likewise.
8771 * libgnat/a-undesu.adb: Likewise.
8772 * libgnat/a-wichha.adb: Likewise.
8773 * libgnat/a-wichun.adb: Likewise.
8774 * libgnat/a-wichun.ads: Likewise.
8775 * libgnat/a-witeio.adb: Likewise.
8776 * libgnat/a-witeio.ads: Likewise.
8777 * libgnat/a-wrstfi.adb: Likewise.
8778 * libgnat/a-wrstfi.ads: Likewise.
8779 * libgnat/a-wtcoau.adb: Likewise.
8780 * libgnat/a-wtcoau.ads: Likewise.
8781 * libgnat/a-wtcoio.adb: Likewise.
8782 * libgnat/a-wtcstr.adb: Likewise.
8783 * libgnat/a-wtcstr.ads: Likewise.
8784 * libgnat/a-wtdeau.adb: Likewise.
8785 * libgnat/a-wtdeau.ads: Likewise.
8786 * libgnat/a-wtdeio.adb: Likewise.
8787 * libgnat/a-wtedit.adb: Likewise.
8788 * libgnat/a-wtedit.ads: Likewise.
8789 * libgnat/a-wtenau.adb: Likewise.
8790 * libgnat/a-wtenau.ads: Likewise.
8791 * libgnat/a-wtenio.adb: Likewise.
8792 * libgnat/a-wtfiio.adb: Likewise.
8793 * libgnat/a-wtflau.adb: Likewise.
8794 * libgnat/a-wtflau.ads: Likewise.
8795 * libgnat/a-wtflio.adb: Likewise.
8796 * libgnat/a-wtgeau.adb: Likewise.
8797 * libgnat/a-wtgeau.ads: Likewise.
8798 * libgnat/a-wtinau.adb: Likewise.
8799 * libgnat/a-wtinau.ads: Likewise.
8800 * libgnat/a-wtinio.adb: Likewise.
8801 * libgnat/a-wtmoau.adb: Likewise.
8802 * libgnat/a-wtmoau.ads: Likewise.
8803 * libgnat/a-wtmoio.adb: Likewise.
8804 * libgnat/a-wtmoio.ads: Likewise.
8805 * libgnat/a-wttest.adb: Likewise.
8806 * libgnat/a-wwboio.adb: Likewise.
8807 * libgnat/a-zchhan.adb: Likewise.
8808 * libgnat/a-zchuni.adb: Likewise.
8809 * libgnat/a-zchuni.ads: Likewise.
8810 * libgnat/a-zrstfi.adb: Likewise.
8811 * libgnat/a-zrstfi.ads: Likewise.
8812 * libgnat/a-ztcoau.adb: Likewise.
8813 * libgnat/a-ztcoio.adb: Likewise.
8814 * libgnat/a-ztcstr.adb: Likewise.
8815 * libgnat/a-ztcstr.ads: Likewise.
8816 * libgnat/a-ztdeau.adb: Likewise.
8817 * libgnat/a-ztdeau.ads: Likewise.
8818 * libgnat/a-ztdeio.adb: Likewise.
8819 * libgnat/a-ztedit.adb: Likewise.
8820 * libgnat/a-ztedit.ads: Likewise.
8821 * libgnat/a-ztenau.adb: Likewise.
8822 * libgnat/a-ztenau.ads: Likewise.
8823 * libgnat/a-ztenio.adb: Likewise.
8824 * libgnat/a-ztexio.adb: Likewise.
8825 * libgnat/a-ztexio.ads: Likewise.
8826 * libgnat/a-ztfiio.adb: Likewise.
8827 * libgnat/a-ztflau.adb: Likewise.
8828 * libgnat/a-ztflau.ads: Likewise.
8829 * libgnat/a-ztflio.adb: Likewise.
8830 * libgnat/a-ztgeau.adb: Likewise.
8831 * libgnat/a-ztgeau.ads: Likewise.
8832 * libgnat/a-ztinau.adb: Likewise.
8833 * libgnat/a-ztinau.ads: Likewise.
8834 * libgnat/a-ztinio.adb: Likewise.
8835 * libgnat/a-ztmoau.adb: Likewise.
8836 * libgnat/a-ztmoau.ads: Likewise.
8837 * libgnat/a-ztmoio.adb: Likewise.
8838 * libgnat/a-zttest.adb: Likewise.
8839 * libgnat/a-zzboio.adb: Likewise.
8840 * libgnat/g-allein.ads: Likewise.
8841 * libgnat/g-alleve.adb: Likewise.
8842 * libgnat/g-alleve.ads: Likewise.
8843 * libgnat/g-alleve__hard.adb: Likewise.
8844 * libgnat/g-alleve__hard.ads: Likewise.
8845 * libgnat/g-altcon.adb: Likewise.
8846 * libgnat/g-altcon.ads: Likewise.
8847 * libgnat/g-altive.ads: Likewise.
8848 * libgnat/g-alveop.adb: Likewise.
8849 * libgnat/g-alveop.ads: Likewise.
8850 * libgnat/g-alvety.ads: Likewise.
8851 * libgnat/g-alvevi.ads: Likewise.
8852 * libgnat/g-arrspl.adb: Likewise.
8853 * libgnat/g-arrspl.ads: Likewise.
8854 * libgnat/g-awk.adb: Likewise.
8855 * libgnat/g-awk.ads: Likewise.
8856 * libgnat/g-binenv.adb: Likewise.
8857 * libgnat/g-binenv.ads: Likewise.
8858 * libgnat/g-brapre.ads: Likewise.
8859 * libgnat/g-bubsor.adb: Likewise.
8860 * libgnat/g-bubsor.ads: Likewise.
8861 * libgnat/g-busora.adb: Likewise.
8862 * libgnat/g-busora.ads: Likewise.
8863 * libgnat/g-busorg.adb: Likewise.
8864 * libgnat/g-busorg.ads: Likewise.
8865 * libgnat/g-byorma.adb: Likewise.
8866 * libgnat/g-byorma.ads: Likewise.
8867 * libgnat/g-bytswa.adb: Likewise.
8868 * libgnat/g-bytswa.ads: Likewise.
8869 * libgnat/g-calend.adb: Likewise.
8870 * libgnat/g-calend.ads: Likewise.
8871 * libgnat/g-casuti.adb: Likewise.
8872 * libgnat/g-casuti.ads: Likewise.
8873 * libgnat/g-catiio.adb: Likewise.
8874 * libgnat/g-catiio.ads: Likewise.
8875 * libgnat/g-cgi.adb: Likewise.
8876 * libgnat/g-cgi.ads: Likewise.
8877 * libgnat/g-cgicoo.adb: Likewise.
8878 * libgnat/g-cgicoo.ads: Likewise.
8879 * libgnat/g-cgideb.adb: Likewise.
8880 * libgnat/g-cgideb.ads: Likewise.
8881 * libgnat/g-comlin.adb: Likewise.
8882 * libgnat/g-comlin.ads: Likewise.
8883 * libgnat/g-comver.adb: Likewise.
8884 * libgnat/g-comver.ads: Likewise.
8885 * libgnat/g-cppexc.adb: Likewise.
8886 * libgnat/g-cppexc.ads: Likewise.
8887 * libgnat/g-crc32.adb: Likewise.
8888 * libgnat/g-crc32.ads: Likewise.
8889 * libgnat/g-ctrl_c.adb: Likewise.
8890 * libgnat/g-ctrl_c.ads: Likewise.
8891 * libgnat/g-curexc.ads: Likewise.
8892 * libgnat/g-debpoo.adb: Likewise.
8893 * libgnat/g-debpoo.ads: Likewise.
8894 * libgnat/g-debuti.adb: Likewise.
8895 * libgnat/g-debuti.ads: Likewise.
8896 * libgnat/g-decstr.adb: Likewise.
8897 * libgnat/g-decstr.ads: Likewise.
8898 * libgnat/g-deutst.ads: Likewise.
8899 * libgnat/g-diopit.adb: Likewise.
8900 * libgnat/g-diopit.ads: Likewise.
8901 * libgnat/g-dirope.adb: Likewise.
8902 * libgnat/g-dirope.ads: Likewise.
8903 * libgnat/g-dynhta.adb: Likewise.
8904 * libgnat/g-dynhta.ads: Likewise.
8905 * libgnat/g-dyntab.adb: Likewise.
8906 * libgnat/g-dyntab.ads: Likewise.
8907 * libgnat/g-eacodu.adb: Likewise.
8908 * libgnat/g-encstr.adb: Likewise.
8909 * libgnat/g-encstr.ads: Likewise.
8910 * libgnat/g-enutst.ads: Likewise.
8911 * libgnat/g-excact.adb: Likewise.
8912 * libgnat/g-excact.ads: Likewise.
8913 * libgnat/g-except.ads: Likewise.
8914 * libgnat/g-exctra.adb: Likewise.
8915 * libgnat/g-exctra.ads: Likewise.
8916 * libgnat/g-expect.adb: Likewise.
8917 * libgnat/g-expect.ads: Likewise.
8918 * libgnat/g-exptty.adb: Likewise.
8919 * libgnat/g-exptty.ads: Likewise.
8920 * libgnat/g-flocon.ads: Likewise.
8921 * libgnat/g-forstr.adb: Likewise.
8922 * libgnat/g-forstr.ads: Likewise.
8923 * libgnat/g-graphs.adb: Likewise.
8924 * libgnat/g-graphs.ads: Likewise.
8925 * libgnat/g-heasor.adb: Likewise.
8926 * libgnat/g-heasor.ads: Likewise.
8927 * libgnat/g-hesora.adb: Likewise.
8928 * libgnat/g-hesora.ads: Likewise.
8929 * libgnat/g-hesorg.adb: Likewise.
8930 * libgnat/g-hesorg.ads: Likewise.
8931 * libgnat/g-htable.adb: Likewise.
8932 * libgnat/g-htable.ads: Likewise.
8933 * libgnat/g-io-put__vxworks.adb: Likewise.
8934 * libgnat/g-io.adb: Likewise.
8935 * libgnat/g-io.ads: Likewise.
8936 * libgnat/g-io_aux.adb: Likewise.
8937 * libgnat/g-io_aux.ads: Likewise.
8938 * libgnat/g-lists.adb: Likewise.
8939 * libgnat/g-lists.ads: Likewise.
8940 * libgnat/g-locfil.adb: Likewise.
8941 * libgnat/g-locfil.ads: Likewise.
8942 * libgnat/g-mbdira.adb: Likewise.
8943 * libgnat/g-mbdira.ads: Likewise.
8944 * libgnat/g-mbflra.adb: Likewise.
8945 * libgnat/g-mbflra.ads: Likewise.
8946 * libgnat/g-md5.adb: Likewise.
8947 * libgnat/g-md5.ads: Likewise.
8948 * libgnat/g-memdum.adb: Likewise.
8949 * libgnat/g-memdum.ads: Likewise.
8950 * libgnat/g-moreex.adb: Likewise.
8951 * libgnat/g-moreex.ads: Likewise.
8952 * libgnat/g-os_lib.adb: Likewise.
8953 * libgnat/g-os_lib.ads: Likewise.
8954 * libgnat/g-pehage.adb: Likewise.
8955 * libgnat/g-pehage.ads: Likewise.
8956 * libgnat/g-rannum.adb: Likewise.
8957 * libgnat/g-rannum.ads: Likewise.
8958 * libgnat/g-regexp.adb: Likewise.
8959 * libgnat/g-regexp.ads: Likewise.
8960 * libgnat/g-regist.adb: Likewise.
8961 * libgnat/g-regist.ads: Likewise.
8962 * libgnat/g-regpat.adb: Likewise.
8963 * libgnat/g-regpat.ads: Likewise.
8964 * libgnat/g-rewdat.adb: Likewise.
8965 * libgnat/g-rewdat.ads: Likewise.
8966 * libgnat/g-sechas.adb: Likewise.
8967 * libgnat/g-sechas.ads: Likewise.
8968 * libgnat/g-sehamd.adb: Likewise.
8969 * libgnat/g-sehamd.ads: Likewise.
8970 * libgnat/g-sehash.adb: Likewise.
8971 * libgnat/g-sehash.ads: Likewise.
8972 * libgnat/g-sercom.adb: Likewise.
8973 * libgnat/g-sercom.ads: Likewise.
8974 * libgnat/g-sercom__linux.adb: Likewise.
8975 * libgnat/g-sercom__mingw.adb: Likewise.
8976 * libgnat/g-sestin.ads: Likewise.
8977 * libgnat/g-sets.adb: Likewise.
8978 * libgnat/g-sets.ads: Likewise.
8979 * libgnat/g-sha1.adb: Likewise.
8980 * libgnat/g-sha1.ads: Likewise.
8981 * libgnat/g-sha224.ads: Likewise.
8982 * libgnat/g-sha256.ads: Likewise.
8983 * libgnat/g-sha384.ads: Likewise.
8984 * libgnat/g-sha512.ads: Likewise.
8985 * libgnat/g-shsh32.adb: Likewise.
8986 * libgnat/g-shsh32.ads: Likewise.
8987 * libgnat/g-shsh64.adb: Likewise.
8988 * libgnat/g-shsh64.ads: Likewise.
8989 * libgnat/g-shshco.adb: Likewise.
8990 * libgnat/g-shshco.ads: Likewise.
8991 * libgnat/g-soccon.ads: Likewise.
8992 * libgnat/g-socket.adb: Likewise.
8993 * libgnat/g-socket.ads: Likewise.
8994 * libgnat/g-socket__dummy.adb: Likewise.
8995 * libgnat/g-socket__dummy.ads: Likewise.
8996 * libgnat/g-socthi.adb: Likewise.
8997 * libgnat/g-socthi.ads: Likewise.
8998 * libgnat/g-socthi__dummy.adb: Likewise.
8999 * libgnat/g-socthi__dummy.ads: Likewise.
9000 * libgnat/g-socthi__mingw.adb: Likewise.
9001 * libgnat/g-socthi__mingw.ads: Likewise.
9002 * libgnat/g-socthi__vxworks.adb: Likewise.
9003 * libgnat/g-socthi__vxworks.ads: Likewise.
9004 * libgnat/g-soliop.ads: Likewise.
9005 * libgnat/g-soliop__lynxos.ads: Likewise.
9006 * libgnat/g-soliop__mingw.ads: Likewise.
9007 * libgnat/g-soliop__qnx.ads: Likewise.
9008 * libgnat/g-soliop__solaris.ads: Likewise.
9009 * libgnat/g-sothco.adb: Likewise.
9010 * libgnat/g-sothco.ads: Likewise.
9011 * libgnat/g-sothco__dummy.adb: Likewise.
9012 * libgnat/g-sothco__dummy.ads: Likewise.
9013 * libgnat/g-souinf.ads: Likewise.
9014 * libgnat/g-spchge.adb: Likewise.
9015 * libgnat/g-spchge.ads: Likewise.
9016 * libgnat/g-speche.adb: Likewise.
9017 * libgnat/g-speche.ads: Likewise.
9018 * libgnat/g-spipat.adb: Likewise.
9019 * libgnat/g-spipat.ads: Likewise.
9020 * libgnat/g-spitbo.adb: Likewise.
9021 * libgnat/g-spitbo.ads: Likewise.
9022 * libgnat/g-sptabo.ads: Likewise.
9023 * libgnat/g-sptain.ads: Likewise.
9024 * libgnat/g-sptavs.ads: Likewise.
9025 * libgnat/g-sse.ads: Likewise.
9026 * libgnat/g-ssvety.ads: Likewise.
9027 * libgnat/g-sthcso.adb: Likewise.
9028 * libgnat/g-stheme.adb: Likewise.
9029 * libgnat/g-strhas.ads: Likewise.
9030 * libgnat/g-string.adb: Likewise.
9031 * libgnat/g-string.ads: Likewise.
9032 * libgnat/g-strspl.ads: Likewise.
9033 * libgnat/g-stseme.adb: Likewise.
9034 * libgnat/g-stsifd__sockets.adb: Likewise.
9035 * libgnat/g-table.adb: Likewise.
9036 * libgnat/g-table.ads: Likewise.
9037 * libgnat/g-tasloc.adb: Likewise.
9038 * libgnat/g-tasloc.ads: Likewise.
9039 * libgnat/g-timsta.adb: Likewise.
9040 * libgnat/g-timsta.ads: Likewise.
9041 * libgnat/g-traceb.adb: Likewise.
9042 * libgnat/g-traceb.ads: Likewise.
9043 * libgnat/g-trasym.adb: Likewise.
9044 * libgnat/g-trasym.ads: Likewise.
9045 * libgnat/g-tty.adb: Likewise.
9046 * libgnat/g-tty.ads: Likewise.
9047 * libgnat/g-u3spch.adb: Likewise.
9048 * libgnat/g-u3spch.ads: Likewise.
9049 * libgnat/g-utf_32.adb: Likewise.
9050 * libgnat/g-utf_32.ads: Likewise.
9051 * libgnat/g-wispch.adb: Likewise.
9052 * libgnat/g-wispch.ads: Likewise.
9053 * libgnat/g-wistsp.ads: Likewise.
9054 * libgnat/g-zspche.adb: Likewise.
9055 * libgnat/g-zspche.ads: Likewise.
9056 * libgnat/g-zstspl.ads: Likewise.
9057 * libgnat/gnat.ads: Likewise.
9058 * libgnat/i-c.adb: Likewise.
9059 * libgnat/i-cexten.ads: Likewise.
9060 * libgnat/i-cobol.adb: Likewise.
9061 * libgnat/i-cobol.ads: Likewise.
9062 * libgnat/i-cpoint.adb: Likewise.
9063 * libgnat/i-cpoint.ads: Likewise.
9064 * libgnat/i-cstrea.adb: Likewise.
9065 * libgnat/i-cstrea.ads: Likewise.
9066 * libgnat/i-cstrin.adb: Likewise.
9067 * libgnat/i-cstrin.ads: Likewise.
9068 * libgnat/i-fortra.adb: Likewise.
9069 * libgnat/i-pacdec.adb: Likewise.
9070 * libgnat/i-pacdec.ads: Likewise.
9071 * libgnat/i-vxwoio.adb: Likewise.
9072 * libgnat/i-vxwoio.ads: Likewise.
9073 * libgnat/i-vxwork.ads: Likewise.
9074 * libgnat/i-vxwork__x86.ads: Likewise.
9075 * libgnat/interfac.ads: Likewise.
9076 * libgnat/memtrack.adb: Likewise.
9077 * libgnat/s-addima.adb: Likewise.
9078 * libgnat/s-addima.ads: Likewise.
9079 * libgnat/s-addope.adb: Likewise.
9080 * libgnat/s-addope.ads: Likewise.
9081 * libgnat/s-aotase.adb: Likewise.
9082 * libgnat/s-aotase.ads: Likewise.
9083 * libgnat/s-arit64.adb: Likewise.
9084 * libgnat/s-arit64.ads: Likewise.
9085 * libgnat/s-assert.adb: Likewise.
9086 * libgnat/s-assert.ads: Likewise.
9087 * libgnat/s-atacco.adb: Likewise.
9088 * libgnat/s-atacco.ads: Likewise.
9089 * libgnat/s-atocou.adb: Likewise.
9090 * libgnat/s-atocou.ads: Likewise.
9091 * libgnat/s-atocou__builtin.adb: Likewise.
9092 * libgnat/s-atocou__x86.adb: Likewise.
9093 * libgnat/s-atoope.ads: Likewise.
9094 * libgnat/s-atopar.adb: Likewise.
9095 * libgnat/s-atopar.ads: Likewise.
9096 * libgnat/s-atopex.adb: Likewise.
9097 * libgnat/s-atopex.ads: Likewise.
9098 * libgnat/s-atopri.adb: Likewise.
9099 * libgnat/s-atopri.ads: Likewise.
9100 * libgnat/s-auxdec.adb: Likewise.
9101 * libgnat/s-auxdec.ads: Likewise.
9102 * libgnat/s-bignum.adb: Likewise.
9103 * libgnat/s-bignum.ads: Likewise.
9104 * libgnat/s-bitfie.ads: Likewise.
9105 * libgnat/s-bitops.adb: Likewise.
9106 * libgnat/s-bitops.ads: Likewise.
9107 * libgnat/s-bituti.adb: Likewise.
9108 * libgnat/s-bituti.ads: Likewise.
9109 * libgnat/s-boarop.ads: Likewise.
9110 * libgnat/s-boustr.adb: Likewise.
9111 * libgnat/s-boustr.ads: Likewise.
9112 * libgnat/s-bytswa.ads: Likewise.
9113 * libgnat/s-carsi8.adb: Likewise.
9114 * libgnat/s-carsi8.ads: Likewise.
9115 * libgnat/s-carun8.adb: Likewise.
9116 * libgnat/s-carun8.ads: Likewise.
9117 * libgnat/s-casi16.adb: Likewise.
9118 * libgnat/s-casi16.ads: Likewise.
9119 * libgnat/s-casi32.adb: Likewise.
9120 * libgnat/s-casi32.ads: Likewise.
9121 * libgnat/s-casi64.adb: Likewise.
9122 * libgnat/s-casi64.ads: Likewise.
9123 * libgnat/s-casuti.adb: Likewise.
9124 * libgnat/s-casuti.ads: Likewise.
9125 * libgnat/s-caun16.adb: Likewise.
9126 * libgnat/s-caun16.ads: Likewise.
9127 * libgnat/s-caun32.adb: Likewise.
9128 * libgnat/s-caun32.ads: Likewise.
9129 * libgnat/s-caun64.adb: Likewise.
9130 * libgnat/s-caun64.ads: Likewise.
9131 * libgnat/s-chepoo.ads: Likewise.
9132 * libgnat/s-commun.adb: Likewise.
9133 * libgnat/s-commun.ads: Likewise.
9134 * libgnat/s-conca2.adb: Likewise.
9135 * libgnat/s-conca2.ads: Likewise.
9136 * libgnat/s-conca3.adb: Likewise.
9137 * libgnat/s-conca3.ads: Likewise.
9138 * libgnat/s-conca4.adb: Likewise.
9139 * libgnat/s-conca4.ads: Likewise.
9140 * libgnat/s-conca5.adb: Likewise.
9141 * libgnat/s-conca5.ads: Likewise.
9142 * libgnat/s-conca6.adb: Likewise.
9143 * libgnat/s-conca6.ads: Likewise.
9144 * libgnat/s-conca7.adb: Likewise.
9145 * libgnat/s-conca7.ads: Likewise.
9146 * libgnat/s-conca8.adb: Likewise.
9147 * libgnat/s-conca8.ads: Likewise.
9148 * libgnat/s-conca9.adb: Likewise.
9149 * libgnat/s-conca9.ads: Likewise.
9150 * libgnat/s-crc32.adb: Likewise.
9151 * libgnat/s-crc32.ads: Likewise.
9152 * libgnat/s-crtl.ads: Likewise.
9153 * libgnat/s-dfmkio.ads: Likewise.
9154 * libgnat/s-dfmopr.ads: Likewise.
9155 * libgnat/s-dgmgop.ads: Likewise.
9156 * libgnat/s-diflio.adb: Likewise.
9157 * libgnat/s-diflio.ads: Likewise.
9158 * libgnat/s-diflmk.ads: Likewise.
9159 * libgnat/s-digemk.ads: Likewise.
9160 * libgnat/s-diinio.adb: Likewise.
9161 * libgnat/s-diinio.ads: Likewise.
9162 * libgnat/s-dilomk.ads: Likewise.
9163 * libgnat/s-dim.ads: Likewise.
9164 * libgnat/s-dimkio.ads: Likewise.
9165 * libgnat/s-dimmks.ads: Likewise.
9166 * libgnat/s-direio.adb: Likewise.
9167 * libgnat/s-direio.ads: Likewise.
9168 * libgnat/s-dlmkio.ads: Likewise.
9169 * libgnat/s-dlmopr.ads: Likewise.
9170 * libgnat/s-dmotpr.ads: Likewise.
9171 * libgnat/s-dsaser.ads: Likewise.
9172 * libgnat/s-dwalin.adb: Likewise.
9173 * libgnat/s-dwalin.ads: Likewise.
9174 * libgnat/s-elaall.adb: Likewise.
9175 * libgnat/s-elaall.ads: Likewise.
9176 * libgnat/s-excdeb.adb: Likewise.
9177 * libgnat/s-excdeb.ads: Likewise.
9178 * libgnat/s-except.adb: Likewise.
9179 * libgnat/s-except.ads: Likewise.
9180 * libgnat/s-excmac__arm.adb: Likewise.
9181 * libgnat/s-excmac__arm.ads: Likewise.
9182 * libgnat/s-excmac__gcc.adb: Likewise.
9183 * libgnat/s-excmac__gcc.ads: Likewise.
9184 * libgnat/s-exctab.adb: Likewise.
9185 * libgnat/s-exctab.ads: Likewise.
9186 * libgnat/s-exctra.adb: Likewise.
9187 * libgnat/s-exctra.ads: Likewise.
9188 * libgnat/s-exnint.adb: Likewise.
9189 * libgnat/s-exnint.ads: Likewise.
9190 * libgnat/s-exnllf.adb: Likewise.
9191 * libgnat/s-exnllf.ads: Likewise.
9192 * libgnat/s-exnlli.adb: Likewise.
9193 * libgnat/s-exnlli.ads: Likewise.
9194 * libgnat/s-expint.adb: Likewise.
9195 * libgnat/s-expint.ads: Likewise.
9196 * libgnat/s-explli.adb: Likewise.
9197 * libgnat/s-explli.ads: Likewise.
9198 * libgnat/s-expllu.adb: Likewise.
9199 * libgnat/s-expllu.ads: Likewise.
9200 * libgnat/s-expmod.adb: Likewise.
9201 * libgnat/s-expmod.ads: Likewise.
9202 * libgnat/s-expuns.adb: Likewise.
9203 * libgnat/s-expuns.ads: Likewise.
9204 * libgnat/s-fatflt.ads: Likewise.
9205 * libgnat/s-fatgen.adb: Likewise.
9206 * libgnat/s-fatgen.ads: Likewise.
9207 * libgnat/s-fatlfl.ads: Likewise.
9208 * libgnat/s-fatllf.ads: Likewise.
9209 * libgnat/s-fatsfl.ads: Likewise.
9210 * libgnat/s-ficobl.ads: Likewise.
9211 * libgnat/s-filatt.ads: Likewise.
9212 * libgnat/s-fileio.adb: Likewise.
9213 * libgnat/s-fileio.ads: Likewise.
9214 * libgnat/s-finmas.adb: Likewise.
9215 * libgnat/s-finmas.ads: Likewise.
9216 * libgnat/s-finroo.adb: Likewise.
9217 * libgnat/s-finroo.ads: Likewise.
9218 * libgnat/s-flocon.adb: Likewise.
9219 * libgnat/s-flocon.ads: Likewise.
9220 * libgnat/s-flocon__none.adb: Likewise.
9221 * libgnat/s-fore.adb: Likewise.
9222 * libgnat/s-fore.ads: Likewise.
9223 * libgnat/s-gearop.adb: Likewise.
9224 * libgnat/s-gearop.ads: Likewise.
9225 * libgnat/s-genbig.adb: Likewise.
9226 * libgnat/s-genbig.ads: Likewise.
9227 * libgnat/s-geveop.adb: Likewise.
9228 * libgnat/s-geveop.ads: Likewise.
9229 * libgnat/s-gloloc.adb: Likewise.
9230 * libgnat/s-gloloc.ads: Likewise.
9231 * libgnat/s-gloloc__mingw.adb: Likewise.
9232 * libgnat/s-htable.adb: Likewise.
9233 * libgnat/s-htable.ads: Likewise.
9234 * libgnat/s-imenne.adb: Likewise.
9235 * libgnat/s-imenne.ads: Likewise.
9236 * libgnat/s-imgbiu.adb: Likewise.
9237 * libgnat/s-imgbiu.ads: Likewise.
9238 * libgnat/s-imgboo.adb: Likewise.
9239 * libgnat/s-imgboo.ads: Likewise.
9240 * libgnat/s-imgcha.adb: Likewise.
9241 * libgnat/s-imgcha.ads: Likewise.
9242 * libgnat/s-imgdec.adb: Likewise.
9243 * libgnat/s-imgdec.ads: Likewise.
9244 * libgnat/s-imgenu.adb: Likewise.
9245 * libgnat/s-imgenu.ads: Likewise.
9246 * libgnat/s-imgint.adb: Likewise.
9247 * libgnat/s-imgint.ads: Likewise.
9248 * libgnat/s-imgllb.adb: Likewise.
9249 * libgnat/s-imgllb.ads: Likewise.
9250 * libgnat/s-imglld.adb: Likewise.
9251 * libgnat/s-imglld.ads: Likewise.
9252 * libgnat/s-imglli.adb: Likewise.
9253 * libgnat/s-imglli.ads: Likewise.
9254 * libgnat/s-imgllu.adb: Likewise.
9255 * libgnat/s-imgllu.ads: Likewise.
9256 * libgnat/s-imgllw.adb: Likewise.
9257 * libgnat/s-imgllw.ads: Likewise.
9258 * libgnat/s-imgrea.adb: Likewise.
9259 * libgnat/s-imgrea.ads: Likewise.
9260 * libgnat/s-imguns.adb: Likewise.
9261 * libgnat/s-imguns.ads: Likewise.
9262 * libgnat/s-imgwch.adb: Likewise.
9263 * libgnat/s-imgwch.ads: Likewise.
9264 * libgnat/s-imgwiu.adb: Likewise.
9265 * libgnat/s-imgwiu.ads: Likewise.
9266 * libgnat/s-io.adb: Likewise.
9267 * libgnat/s-io.ads: Likewise.
9268 * libgnat/s-llflex.ads: Likewise.
9269 * libgnat/s-maccod.ads: Likewise.
9270 * libgnat/s-mantis.adb: Likewise.
9271 * libgnat/s-mantis.ads: Likewise.
9272 * libgnat/s-mastop.adb: Likewise.
9273 * libgnat/s-mastop.ads: Likewise.
9274 * libgnat/s-memcop.ads: Likewise.
9275 * libgnat/s-memory.adb: Likewise.
9276 * libgnat/s-memory.ads: Likewise.
9277 * libgnat/s-mmap.adb: Likewise.
9278 * libgnat/s-mmap.ads: Likewise.
9279 * libgnat/s-mmauni__long.ads: Likewise.
9280 * libgnat/s-mmosin__mingw.adb: Likewise.
9281 * libgnat/s-mmosin__mingw.ads: Likewise.
9282 * libgnat/s-mmosin__unix.adb: Likewise.
9283 * libgnat/s-mmosin__unix.ads: Likewise.
9284 * libgnat/s-multip.adb: Likewise.
9285 * libgnat/s-objrea.adb: Likewise.
9286 * libgnat/s-objrea.ads: Likewise.
9287 * libgnat/s-optide.adb: Likewise.
9288 * libgnat/s-os_lib.adb: Likewise.
9289 * libgnat/s-os_lib.ads: Likewise.
9290 * libgnat/s-osprim.ads: Likewise.
9291 * libgnat/s-osprim__darwin.adb: Likewise.
9292 * libgnat/s-osprim__lynxos.ads: Likewise.
9293 * libgnat/s-osprim__mingw.adb: Likewise.
9294 * libgnat/s-osprim__posix.adb: Likewise.
9295 * libgnat/s-osprim__posix2008.adb: Likewise.
9296 * libgnat/s-osprim__rtems.adb: Likewise.
9297 * libgnat/s-osprim__solaris.adb: Likewise.
9298 * libgnat/s-osprim__unix.adb: Likewise.
9299 * libgnat/s-osprim__vxworks.adb: Likewise.
9300 * libgnat/s-osprim__x32.adb: Likewise.
9301 * libgnat/s-osvers__vxworks-653.ads: Likewise.
9302 * libgnat/s-pack03.adb: Likewise.
9303 * libgnat/s-pack03.ads: Likewise.
9304 * libgnat/s-pack05.adb: Likewise.
9305 * libgnat/s-pack05.ads: Likewise.
9306 * libgnat/s-pack06.adb: Likewise.
9307 * libgnat/s-pack06.ads: Likewise.
9308 * libgnat/s-pack07.adb: Likewise.
9309 * libgnat/s-pack07.ads: Likewise.
9310 * libgnat/s-pack09.adb: Likewise.
9311 * libgnat/s-pack09.ads: Likewise.
9312 * libgnat/s-pack10.adb: Likewise.
9313 * libgnat/s-pack10.ads: Likewise.
9314 * libgnat/s-pack11.adb: Likewise.
9315 * libgnat/s-pack11.ads: Likewise.
9316 * libgnat/s-pack12.adb: Likewise.
9317 * libgnat/s-pack12.ads: Likewise.
9318 * libgnat/s-pack13.adb: Likewise.
9319 * libgnat/s-pack13.ads: Likewise.
9320 * libgnat/s-pack14.adb: Likewise.
9321 * libgnat/s-pack14.ads: Likewise.
9322 * libgnat/s-pack15.adb: Likewise.
9323 * libgnat/s-pack15.ads: Likewise.
9324 * libgnat/s-pack17.adb: Likewise.
9325 * libgnat/s-pack17.ads: Likewise.
9326 * libgnat/s-pack18.adb: Likewise.
9327 * libgnat/s-pack18.ads: Likewise.
9328 * libgnat/s-pack19.adb: Likewise.
9329 * libgnat/s-pack19.ads: Likewise.
9330 * libgnat/s-pack20.adb: Likewise.
9331 * libgnat/s-pack20.ads: Likewise.
9332 * libgnat/s-pack21.adb: Likewise.
9333 * libgnat/s-pack21.ads: Likewise.
9334 * libgnat/s-pack22.adb: Likewise.
9335 * libgnat/s-pack22.ads: Likewise.
9336 * libgnat/s-pack23.adb: Likewise.
9337 * libgnat/s-pack23.ads: Likewise.
9338 * libgnat/s-pack24.adb: Likewise.
9339 * libgnat/s-pack24.ads: Likewise.
9340 * libgnat/s-pack25.adb: Likewise.
9341 * libgnat/s-pack25.ads: Likewise.
9342 * libgnat/s-pack26.adb: Likewise.
9343 * libgnat/s-pack26.ads: Likewise.
9344 * libgnat/s-pack27.adb: Likewise.
9345 * libgnat/s-pack27.ads: Likewise.
9346 * libgnat/s-pack28.adb: Likewise.
9347 * libgnat/s-pack28.ads: Likewise.
9348 * libgnat/s-pack29.adb: Likewise.
9349 * libgnat/s-pack29.ads: Likewise.
9350 * libgnat/s-pack30.adb: Likewise.
9351 * libgnat/s-pack30.ads: Likewise.
9352 * libgnat/s-pack31.adb: Likewise.
9353 * libgnat/s-pack31.ads: Likewise.
9354 * libgnat/s-pack33.adb: Likewise.
9355 * libgnat/s-pack33.ads: Likewise.
9356 * libgnat/s-pack34.adb: Likewise.
9357 * libgnat/s-pack34.ads: Likewise.
9358 * libgnat/s-pack35.adb: Likewise.
9359 * libgnat/s-pack35.ads: Likewise.
9360 * libgnat/s-pack36.adb: Likewise.
9361 * libgnat/s-pack36.ads: Likewise.
9362 * libgnat/s-pack37.adb: Likewise.
9363 * libgnat/s-pack37.ads: Likewise.
9364 * libgnat/s-pack38.adb: Likewise.
9365 * libgnat/s-pack38.ads: Likewise.
9366 * libgnat/s-pack39.adb: Likewise.
9367 * libgnat/s-pack39.ads: Likewise.
9368 * libgnat/s-pack40.adb: Likewise.
9369 * libgnat/s-pack40.ads: Likewise.
9370 * libgnat/s-pack41.adb: Likewise.
9371 * libgnat/s-pack41.ads: Likewise.
9372 * libgnat/s-pack42.adb: Likewise.
9373 * libgnat/s-pack42.ads: Likewise.
9374 * libgnat/s-pack43.adb: Likewise.
9375 * libgnat/s-pack43.ads: Likewise.
9376 * libgnat/s-pack44.adb: Likewise.
9377 * libgnat/s-pack44.ads: Likewise.
9378 * libgnat/s-pack45.adb: Likewise.
9379 * libgnat/s-pack45.ads: Likewise.
9380 * libgnat/s-pack46.adb: Likewise.
9381 * libgnat/s-pack46.ads: Likewise.
9382 * libgnat/s-pack47.adb: Likewise.
9383 * libgnat/s-pack47.ads: Likewise.
9384 * libgnat/s-pack48.adb: Likewise.
9385 * libgnat/s-pack48.ads: Likewise.
9386 * libgnat/s-pack49.adb: Likewise.
9387 * libgnat/s-pack49.ads: Likewise.
9388 * libgnat/s-pack50.adb: Likewise.
9389 * libgnat/s-pack50.ads: Likewise.
9390 * libgnat/s-pack51.adb: Likewise.
9391 * libgnat/s-pack51.ads: Likewise.
9392 * libgnat/s-pack52.adb: Likewise.
9393 * libgnat/s-pack52.ads: Likewise.
9394 * libgnat/s-pack53.adb: Likewise.
9395 * libgnat/s-pack53.ads: Likewise.
9396 * libgnat/s-pack54.adb: Likewise.
9397 * libgnat/s-pack54.ads: Likewise.
9398 * libgnat/s-pack55.adb: Likewise.
9399 * libgnat/s-pack55.ads: Likewise.
9400 * libgnat/s-pack56.adb: Likewise.
9401 * libgnat/s-pack56.ads: Likewise.
9402 * libgnat/s-pack57.adb: Likewise.
9403 * libgnat/s-pack57.ads: Likewise.
9404 * libgnat/s-pack58.adb: Likewise.
9405 * libgnat/s-pack58.ads: Likewise.
9406 * libgnat/s-pack59.adb: Likewise.
9407 * libgnat/s-pack59.ads: Likewise.
9408 * libgnat/s-pack60.adb: Likewise.
9409 * libgnat/s-pack60.ads: Likewise.
9410 * libgnat/s-pack61.adb: Likewise.
9411 * libgnat/s-pack61.ads: Likewise.
9412 * libgnat/s-pack62.adb: Likewise.
9413 * libgnat/s-pack62.ads: Likewise.
9414 * libgnat/s-pack63.adb: Likewise.
9415 * libgnat/s-pack63.ads: Likewise.
9416 * libgnat/s-parame.adb: Likewise.
9417 * libgnat/s-parame.ads: Likewise.
9418 * libgnat/s-parame__ae653.ads: Likewise.
9419 * libgnat/s-parame__hpux.ads: Likewise.
9420 * libgnat/s-parame__rtems.adb: Likewise.
9421 * libgnat/s-parame__vxworks.adb: Likewise.
9422 * libgnat/s-parame__vxworks.ads: Likewise.
9423 * libgnat/s-parint.adb: Likewise.
9424 * libgnat/s-parint.ads: Likewise.
9425 * libgnat/s-pooglo.adb: Likewise.
9426 * libgnat/s-pooglo.ads: Likewise.
9427 * libgnat/s-pooloc.adb: Likewise.
9428 * libgnat/s-pooloc.ads: Likewise.
9429 * libgnat/s-poosiz.adb: Likewise.
9430 * libgnat/s-poosiz.ads: Likewise.
9431 * libgnat/s-powtab.ads: Likewise.
9432 * libgnat/s-purexc.ads: Likewise.
9433 * libgnat/s-rannum.adb: Likewise.
9434 * libgnat/s-rannum.ads: Likewise.
9435 * libgnat/s-ransee.adb: Likewise.
9436 * libgnat/s-ransee.ads: Likewise.
9437 * libgnat/s-regexp.adb: Likewise.
9438 * libgnat/s-regexp.ads: Likewise.
9439 * libgnat/s-regpat.adb: Likewise.
9440 * libgnat/s-regpat.ads: Likewise.
9441 * libgnat/s-resfil.adb: Likewise.
9442 * libgnat/s-resfil.ads: Likewise.
9443 * libgnat/s-restri.adb: Likewise.
9444 * libgnat/s-restri.ads: Likewise.
9445 * libgnat/s-rident.ads: Likewise.
9446 * libgnat/s-rpc.adb: Likewise.
9447 * libgnat/s-rpc.ads: Likewise.
9448 * libgnat/s-scaval.adb: Likewise.
9449 * libgnat/s-scaval.ads: Likewise.
9450 * libgnat/s-secsta.adb: Likewise.
9451 * libgnat/s-secsta.ads: Likewise.
9452 * libgnat/s-sequio.adb: Likewise.
9453 * libgnat/s-sequio.ads: Likewise.
9454 * libgnat/s-shasto.adb: Likewise.
9455 * libgnat/s-shasto.ads: Likewise.
9456 * libgnat/s-soflin.adb: Likewise.
9457 * libgnat/s-soflin.ads: Likewise.
9458 * libgnat/s-soliin.adb: Likewise.
9459 * libgnat/s-soliin.ads: Likewise.
9460 * libgnat/s-sopco3.adb: Likewise.
9461 * libgnat/s-sopco3.ads: Likewise.
9462 * libgnat/s-sopco4.adb: Likewise.
9463 * libgnat/s-sopco4.ads: Likewise.
9464 * libgnat/s-sopco5.adb: Likewise.
9465 * libgnat/s-sopco5.ads: Likewise.
9466 * libgnat/s-spsufi.adb: Likewise.
9467 * libgnat/s-spsufi.ads: Likewise.
9468 * libgnat/s-stache.adb: Likewise.
9469 * libgnat/s-stache.ads: Likewise.
9470 * libgnat/s-stalib.adb: Likewise.
9471 * libgnat/s-stalib.ads: Likewise.
9472 * libgnat/s-stausa.adb: Likewise.
9473 * libgnat/s-stausa.ads: Likewise.
9474 * libgnat/s-stchop.adb: Likewise.
9475 * libgnat/s-stchop.ads: Likewise.
9476 * libgnat/s-stchop__limit.ads: Likewise.
9477 * libgnat/s-stchop__rtems.adb: Likewise.
9478 * libgnat/s-stchop__vxworks.adb: Likewise.
9479 * libgnat/s-stoele.adb: Likewise.
9480 * libgnat/s-stoele.ads: Likewise.
9481 * libgnat/s-stopoo.adb: Likewise.
9482 * libgnat/s-stopoo.ads: Likewise.
9483 * libgnat/s-stposu.adb: Likewise.
9484 * libgnat/s-stposu.ads: Likewise.
9485 * libgnat/s-stratt.adb: Likewise.
9486 * libgnat/s-stratt.ads: Likewise.
9487 * libgnat/s-stratt__xdr.adb: Likewise.
9488 * libgnat/s-strcom.adb: Likewise.
9489 * libgnat/s-strcom.ads: Likewise.
9490 * libgnat/s-strhas.adb: Likewise.
9491 * libgnat/s-strhas.ads: Likewise.
9492 * libgnat/s-string.adb: Likewise.
9493 * libgnat/s-string.ads: Likewise.
9494 * libgnat/s-strops.adb: Likewise.
9495 * libgnat/s-strops.ads: Likewise.
9496 * libgnat/s-ststop.adb: Likewise.
9497 * libgnat/s-ststop.ads: Likewise.
9498 * libgnat/s-tasloc.adb: Likewise.
9499 * libgnat/s-tasloc.ads: Likewise.
9500 * libgnat/s-thread.ads: Likewise.
9501 * libgnat/s-thread__ae653.adb: Likewise.
9502 * libgnat/s-traceb.adb: Likewise.
9503 * libgnat/s-traceb.ads: Likewise.
9504 * libgnat/s-traceb__hpux.adb: Likewise.
9505 * libgnat/s-traceb__mastop.adb: Likewise.
9506 * libgnat/s-traent.adb: Likewise.
9507 * libgnat/s-traent.ads: Likewise.
9508 * libgnat/s-trasym.adb: Likewise.
9509 * libgnat/s-trasym.ads: Likewise.
9510 * libgnat/s-trasym__dwarf.adb: Likewise.
9511 * libgnat/s-tsmona.adb: Likewise.
9512 * libgnat/s-tsmona__linux.adb: Likewise.
9513 * libgnat/s-tsmona__mingw.adb: Likewise.
9514 * libgnat/s-unstyp.ads: Likewise.
9515 * libgnat/s-utf_32.adb: Likewise.
9516 * libgnat/s-utf_32.ads: Likewise.
9517 * libgnat/s-valboo.adb: Likewise.
9518 * libgnat/s-valboo.ads: Likewise.
9519 * libgnat/s-valcha.adb: Likewise.
9520 * libgnat/s-valcha.ads: Likewise.
9521 * libgnat/s-valdec.adb: Likewise.
9522 * libgnat/s-valdec.ads: Likewise.
9523 * libgnat/s-valenu.adb: Likewise.
9524 * libgnat/s-valenu.ads: Likewise.
9525 * libgnat/s-valint.adb: Likewise.
9526 * libgnat/s-valint.ads: Likewise.
9527 * libgnat/s-vallld.adb: Likewise.
9528 * libgnat/s-vallld.ads: Likewise.
9529 * libgnat/s-vallli.adb: Likewise.
9530 * libgnat/s-vallli.ads: Likewise.
9531 * libgnat/s-valllu.adb: Likewise.
9532 * libgnat/s-valllu.ads: Likewise.
9533 * libgnat/s-valrea.adb: Likewise.
9534 * libgnat/s-valrea.ads: Likewise.
9535 * libgnat/s-valuns.adb: Likewise.
9536 * libgnat/s-valuns.ads: Likewise.
9537 * libgnat/s-valuti.adb: Likewise.
9538 * libgnat/s-valuti.ads: Likewise.
9539 * libgnat/s-valwch.adb: Likewise.
9540 * libgnat/s-valwch.ads: Likewise.
9541 * libgnat/s-veboop.adb: Likewise.
9542 * libgnat/s-veboop.ads: Likewise.
9543 * libgnat/s-vector.ads: Likewise.
9544 * libgnat/s-vercon.adb: Likewise.
9545 * libgnat/s-vercon.ads: Likewise.
9546 * libgnat/s-wchcnv.adb: Likewise.
9547 * libgnat/s-wchcnv.ads: Likewise.
9548 * libgnat/s-wchcon.adb: Likewise.
9549 * libgnat/s-wchcon.ads: Likewise.
9550 * libgnat/s-wchjis.adb: Likewise.
9551 * libgnat/s-wchjis.ads: Likewise.
9552 * libgnat/s-wchstw.adb: Likewise.
9553 * libgnat/s-wchstw.ads: Likewise.
9554 * libgnat/s-wchwts.adb: Likewise.
9555 * libgnat/s-wchwts.ads: Likewise.
9556 * libgnat/s-widboo.adb: Likewise.
9557 * libgnat/s-widboo.ads: Likewise.
9558 * libgnat/s-widcha.adb: Likewise.
9559 * libgnat/s-widcha.ads: Likewise.
9560 * libgnat/s-widenu.adb: Likewise.
9561 * libgnat/s-widenu.ads: Likewise.
9562 * libgnat/s-widlli.adb: Likewise.
9563 * libgnat/s-widlli.ads: Likewise.
9564 * libgnat/s-widllu.adb: Likewise.
9565 * libgnat/s-widllu.ads: Likewise.
9566 * libgnat/s-widwch.adb: Likewise.
9567 * libgnat/s-widwch.ads: Likewise.
9568 * libgnat/s-win32.ads: Likewise.
9569 * libgnat/s-winext.ads: Likewise.
9570 * libgnat/s-wwdcha.adb: Likewise.
9571 * libgnat/s-wwdcha.ads: Likewise.
9572 * libgnat/s-wwdenu.adb: Likewise.
9573 * libgnat/s-wwdenu.ads: Likewise.
9574 * libgnat/s-wwdwch.adb: Likewise.
9575 * libgnat/s-wwdwch.ads: Likewise.
9576 * libgnat/system-aix.ads: Likewise.
9577 * libgnat/system-darwin-arm.ads: Likewise.
9578 * libgnat/system-darwin-ppc.ads: Likewise.
9579 * libgnat/system-darwin-x86.ads: Likewise.
9580 * libgnat/system-djgpp.ads: Likewise.
9581 * libgnat/system-dragonfly-x86_64.ads: Likewise.
9582 * libgnat/system-freebsd.ads: Likewise.
9583 * libgnat/system-hpux-ia64.ads: Likewise.
9584 * libgnat/system-hpux.ads: Likewise.
9585 * libgnat/system-linux-alpha.ads: Likewise.
9586 * libgnat/system-linux-arm.ads: Likewise.
9587 * libgnat/system-linux-hppa.ads: Likewise.
9588 * libgnat/system-linux-ia64.ads: Likewise.
9589 * libgnat/system-linux-m68k.ads: Likewise.
9590 * libgnat/system-linux-mips.ads: Likewise.
9591 * libgnat/system-linux-ppc.ads: Likewise.
9592 * libgnat/system-linux-riscv.ads: Likewise.
9593 * libgnat/system-linux-s390.ads: Likewise.
9594 * libgnat/system-linux-sh4.ads: Likewise.
9595 * libgnat/system-linux-sparc.ads: Likewise.
9596 * libgnat/system-linux-x86.ads: Likewise.
9597 * libgnat/system-lynxos178-ppc.ads: Likewise.
9598 * libgnat/system-lynxos178-x86.ads: Likewise.
9599 * libgnat/system-mingw.ads: Likewise.
9600 * libgnat/system-qnx-aarch64.ads: Likewise.
9601 * libgnat/system-rtems.ads: Likewise.
9602 * libgnat/system-solaris-sparc.ads: Likewise.
9603 * libgnat/system-solaris-x86.ads: Likewise.
9604 * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
9605 * libgnat/system-vxworks-arm-rtp.ads: Likewise.
9606 * libgnat/system-vxworks-arm.ads: Likewise.
9607 * libgnat/system-vxworks-e500-kernel.ads: Likewise.
9608 * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
9609 * libgnat/system-vxworks-e500-rtp.ads: Likewise.
9610 * libgnat/system-vxworks-e500-vthread.ads: Likewise.
9611 * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
9612 * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
9613 * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
9614 * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
9615 * libgnat/system-vxworks-ppc-vthread.ads: Likewise.
9616 * libgnat/system-vxworks-ppc.ads: Likewise.
9617 * libgnat/system-vxworks-x86-kernel.ads: Likewise.
9618 * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
9619 * libgnat/system-vxworks-x86-rtp.ads: Likewise.
9620 * libgnat/system-vxworks-x86-vthread.ads: Likewise.
9621 * libgnat/system-vxworks-x86.ads: Likewise.
9622 * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
9623 * libgnat/system-vxworks7-aarch64.ads: Likewise.
9624 * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
9625 * libgnat/system-vxworks7-arm.ads: Likewise.
9626 * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
9627 * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
9628 * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
9629 * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
9630 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
9631 * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
9632 * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
9633 * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
9634 * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
9635 * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
9636 * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
9637 * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
9638 * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
9639 * libgnat/system.ads: Likewise.
9641 * live.adb: Likewise.
9642 * live.ads: Likewise.
9643 * locales.c: Likewise.
9644 * make.adb: Likewise.
9645 * make.ads: Likewise.
9646 * make_util.adb: Likewise.
9647 * make_util.ads: Likewise.
9648 * makeusg.adb: Likewise.
9649 * makeusg.ads: Likewise.
9650 * mdll-fil.adb: Likewise.
9651 * mdll-fil.ads: Likewise.
9652 * mdll-utl.adb: Likewise.
9653 * mdll-utl.ads: Likewise.
9654 * mdll.adb: Likewise.
9655 * mdll.ads: Likewise.
9656 * mingw32.h: Likewise.
9657 * mkdir.c: Likewise.
9658 * namet-sp.adb: Likewise.
9659 * namet-sp.ads: Likewise.
9660 * namet.adb: Likewise.
9661 * namet.ads: Likewise.
9662 * namet.h: Likewise.
9663 * nlists.adb: Likewise.
9664 * nlists.ads: Likewise.
9665 * nlists.h: Likewise.
9666 * opt.adb: Likewise.
9667 * opt.ads: Likewise.
9668 * osint-b.adb: Likewise.
9669 * osint-b.ads: Likewise.
9670 * osint-c.adb: Likewise.
9671 * osint-c.ads: Likewise.
9672 * osint-l.adb: Likewise.
9673 * osint-l.ads: Likewise.
9674 * osint-m.adb: Likewise.
9675 * osint-m.ads: Likewise.
9676 * osint.adb: Likewise.
9677 * osint.ads: Likewise.
9678 * output.adb: Likewise.
9679 * output.ads: Likewise.
9680 * par-ch10.adb: Likewise.
9681 * par-ch11.adb: Likewise.
9682 * par-ch12.adb: Likewise.
9683 * par-ch13.adb: Likewise.
9684 * par-ch2.adb: Likewise.
9685 * par-ch3.adb: Likewise.
9686 * par-ch4.adb: Likewise.
9687 * par-ch5.adb: Likewise.
9688 * par-ch6.adb: Likewise.
9689 * par-ch7.adb: Likewise.
9690 * par-ch8.adb: Likewise.
9691 * par-ch9.adb: Likewise.
9692 * par-endh.adb: Likewise.
9693 * par-labl.adb: Likewise.
9694 * par-load.adb: Likewise.
9695 * par-prag.adb: Likewise.
9696 * par-sync.adb: Likewise.
9697 * par-tchk.adb: Likewise.
9698 * par-util.adb: Likewise.
9699 * par.adb: Likewise.
9700 * par.ads: Likewise.
9701 * par_sco.adb: Likewise.
9702 * par_sco.ads: Likewise.
9703 * pprint.adb: Likewise.
9704 * pprint.ads: Likewise.
9705 * prep.adb: Likewise.
9706 * prep.ads: Likewise.
9707 * prepcomp.adb: Likewise.
9708 * prepcomp.ads: Likewise.
9709 * put_scos.adb: Likewise.
9710 * put_scos.ads: Likewise.
9711 * raise-gcc.c: Likewise.
9712 * raise.c: Likewise.
9713 * raise.h: Likewise.
9714 * repinfo-input.adb: Likewise.
9715 * repinfo-input.ads: Likewise.
9716 * repinfo.adb: Likewise.
9717 * repinfo.ads: Likewise.
9718 * repinfo.h: Likewise.
9719 * restrict.adb: Likewise.
9720 * restrict.ads: Likewise.
9721 * rident.ads: Likewise.
9722 * rtfinal.c: Likewise.
9723 * rtinit.c: Likewise.
9724 * rtsfind.adb: Likewise.
9725 * rtsfind.ads: Likewise.
9726 * runtime.h: Likewise.
9727 * s-oscons-tmplt.c: Likewise.
9728 * sa_messages.adb: Likewise.
9729 * sa_messages.ads: Likewise.
9730 * scans.adb: Likewise.
9731 * scans.ads: Likewise.
9732 * scil_ll.adb: Likewise.
9733 * scil_ll.ads: Likewise.
9734 * scn.adb: Likewise.
9735 * scn.ads: Likewise.
9736 * scng.adb: Likewise.
9737 * scng.ads: Likewise.
9738 * scos.adb: Likewise.
9739 * scos.ads: Likewise.
9741 * sdefault.ads: Likewise.
9742 * seh_init.c: Likewise.
9743 * sem.adb: Likewise.
9744 * sem.ads: Likewise.
9745 * sem_aggr.adb: Likewise.
9746 * sem_aggr.ads: Likewise.
9747 * sem_attr.adb: Likewise.
9748 * sem_attr.ads: Likewise.
9749 * sem_aux.adb: Likewise.
9750 * sem_aux.ads: Likewise.
9751 * sem_case.adb: Likewise.
9752 * sem_case.ads: Likewise.
9753 * sem_cat.adb: Likewise.
9754 * sem_cat.ads: Likewise.
9755 * sem_ch10.adb: Likewise.
9756 * sem_ch10.ads: Likewise.
9757 * sem_ch11.adb: Likewise.
9758 * sem_ch11.ads: Likewise.
9759 * sem_ch12.adb: Likewise.
9760 * sem_ch12.ads: Likewise.
9761 * sem_ch13.adb: Likewise.
9762 * sem_ch13.ads: Likewise.
9763 * sem_ch2.adb: Likewise.
9764 * sem_ch2.ads: Likewise.
9765 * sem_ch3.adb: Likewise.
9766 * sem_ch3.ads: Likewise.
9767 * sem_ch4.adb: Likewise.
9768 * sem_ch4.ads: Likewise.
9769 * sem_ch5.adb: Likewise.
9770 * sem_ch5.ads: Likewise.
9771 * sem_ch6.adb: Likewise.
9772 * sem_ch6.ads: Likewise.
9773 * sem_ch7.adb: Likewise.
9774 * sem_ch7.ads: Likewise.
9775 * sem_ch8.adb: Likewise.
9776 * sem_ch8.ads: Likewise.
9777 * sem_ch9.adb: Likewise.
9778 * sem_ch9.ads: Likewise.
9779 * sem_dim.adb: Likewise.
9780 * sem_dim.ads: Likewise.
9781 * sem_disp.adb: Likewise.
9782 * sem_disp.ads: Likewise.
9783 * sem_dist.adb: Likewise.
9784 * sem_dist.ads: Likewise.
9785 * sem_elab.adb: Likewise.
9786 * sem_elab.ads: Likewise.
9787 * sem_elim.adb: Likewise.
9788 * sem_elim.ads: Likewise.
9789 * sem_eval.adb: Likewise.
9790 * sem_eval.ads: Likewise.
9791 * sem_intr.adb: Likewise.
9792 * sem_intr.ads: Likewise.
9793 * sem_mech.adb: Likewise.
9794 * sem_mech.ads: Likewise.
9795 * sem_prag.adb: Likewise.
9796 * sem_prag.ads: Likewise.
9797 * sem_res.adb: Likewise.
9798 * sem_res.ads: Likewise.
9799 * sem_scil.adb: Likewise.
9800 * sem_scil.ads: Likewise.
9801 * sem_smem.adb: Likewise.
9802 * sem_smem.ads: Likewise.
9803 * sem_type.adb: Likewise.
9804 * sem_type.ads: Likewise.
9805 * sem_util.adb: Likewise.
9806 * sem_util.ads: Likewise.
9807 * sem_warn.adb: Likewise.
9808 * sem_warn.ads: Likewise.
9809 * set_targ.adb: Likewise.
9810 * set_targ.ads: Likewise.
9811 * sfn_scan.adb: Likewise.
9812 * sfn_scan.ads: Likewise.
9813 * sigtramp-armdroid.c: Likewise.
9814 * sigtramp-ios.c: Likewise.
9815 * sigtramp-qnx.c: Likewise.
9816 * sigtramp-vxworks.c: Likewise.
9817 * sigtramp.h: Likewise.
9818 * sinfo-cn.adb: Likewise.
9819 * sinfo-cn.ads: Likewise.
9820 * sinfo.adb: Likewise.
9821 * sinfo.ads: Likewise.
9822 * sinput-c.adb: Likewise.
9823 * sinput-c.ads: Likewise.
9824 * sinput-d.adb: Likewise.
9825 * sinput-d.ads: Likewise.
9826 * sinput-l.adb: Likewise.
9827 * sinput-l.ads: Likewise.
9828 * sinput.adb: Likewise.
9829 * sinput.ads: Likewise.
9830 * socket.c: Likewise.
9831 * spark_xrefs.adb: Likewise.
9832 * spark_xrefs.ads: Likewise.
9833 * sprint.adb: Likewise.
9834 * sprint.ads: Likewise.
9835 * stand.adb: Likewise.
9836 * stand.ads: Likewise.
9837 * stringt.adb: Likewise.
9838 * stringt.ads: Likewise.
9839 * stringt.h: Likewise.
9840 * style.adb: Likewise.
9841 * style.ads: Likewise.
9842 * styleg.adb: Likewise.
9843 * styleg.ads: Likewise.
9844 * stylesw.adb: Likewise.
9845 * stylesw.ads: Likewise.
9846 * switch-b.adb: Likewise.
9847 * switch-b.ads: Likewise.
9848 * switch-c.adb: Likewise.
9849 * switch-c.ads: Likewise.
9850 * switch-m.adb: Likewise.
9851 * switch-m.ads: Likewise.
9852 * switch.adb: Likewise.
9853 * switch.ads: Likewise.
9854 * symbols.adb: Likewise.
9855 * symbols.ads: Likewise.
9856 * sysdep.c: Likewise.
9857 * table.adb: Likewise.
9858 * table.ads: Likewise.
9859 * targext.c: Likewise.
9860 * targparm.adb: Likewise.
9861 * targparm.ads: Likewise.
9862 * tbuild.adb: Likewise.
9863 * tbuild.ads: Likewise.
9864 * tempdir.adb: Likewise.
9865 * tempdir.ads: Likewise.
9866 * terminals.c: Likewise.
9867 * tracebak.c: Likewise.
9868 * tree_gen.adb: Likewise.
9869 * tree_gen.ads: Likewise.
9870 * tree_in.adb: Likewise.
9871 * tree_in.ads: Likewise.
9872 * tree_io.adb: Likewise.
9873 * tree_io.ads: Likewise.
9874 * treepr.adb: Likewise.
9875 * treepr.ads: Likewise.
9876 * ttypes.ads: Likewise.
9877 * types.adb: Likewise.
9878 * types.ads: Likewise.
9879 * types.h: Likewise.
9880 * uintp.adb: Likewise.
9881 * uintp.ads: Likewise.
9882 * uintp.h: Likewise.
9883 * uname.adb: Likewise.
9884 * uname.ads: Likewise.
9885 * urealp.adb: Likewise.
9886 * urealp.ads: Likewise.
9887 * urealp.h: Likewise.
9888 * usage.adb: Likewise.
9889 * usage.ads: Likewise.
9890 * validsw.adb: Likewise.
9891 * validsw.ads: Likewise.
9892 * warnsw.adb: Likewise.
9893 * warnsw.ads: Likewise.
9894 * widechar.adb: Likewise.
9895 * widechar.ads: Likewise.
9896 * xeinfo.adb: Likewise.
9897 * xnmake.adb: Likewise.
9898 * xoscons.adb: Likewise.
9899 * xr_tabls.adb: Likewise.
9900 * xr_tabls.ads: Likewise.
9901 * xref_lib.adb: Likewise.
9902 * xref_lib.ads: Likewise.
9903 * xsinfo.adb: Likewise.
9904 * xsnamest.adb: Likewise.
9905 * xtreeprs.adb: Likewise.
9906 * xutil.adb: Likewise.
9907 * xutil.ads: Likewise.
9909 2020-06-02 Javier Miranda <miranda@adacore.com>
9911 * sem_ch3.adb (Analyze_Object_Declaration): Set attribute
9912 Expansion_Delayed on aggregates that initialize an object that
9913 has aspect alignment or address clause. Done to allow ther
9914 initialization by means of multiple assignments.
9915 * exp_ch3.adb (Expand_N_Object_Declaration): Resolve delayed
9916 aggregates. This patch complements the patch applied to
9919 2020-06-02 Javier Miranda <miranda@adacore.com>
9921 * sem_util.adb (Ensure_Minimum_Decoration): New subprogram that
9922 ensures the minimum decoration required by
9923 Requires_Transient_Scope() to provide its functionality when the
9924 entity is not frozen.
9926 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9928 * exp_ch4.adb (Expand_N_Op_Divide): Remove code dealing with
9929 the Treat_Fixed_As_Integer flag.
9930 (Expand_N_Op_Multiply): Likewise.
9931 * exp_fixd.adb (Build_Divide): Do the division in an integer
9932 type long enough to hold both operands and convert the result
9933 to the type of the LHS. Do not set Treat_Fixed_As_Integer.
9934 (Build_Multiply): Do not set Treat_Fixed_As_Integer.
9935 (Build_Rem): Likewise.
9936 * sem_ch4.adb (Analyze_Arithmetic_Op): Remove code dealing with
9937 the Treat_Fixed_As_Integer flag.
9938 (Check_Arithmetic_Pair): Likewise.
9939 * sinfo.ads (Treat_Fixed_As_Integer): Delete.
9940 (N_Has_Treat_Fixed_As_Integer): Likewise.
9941 (Set_Treat_Fixed_As_Integer): Likewise.
9942 * sinfo.adb (Treat_Fixed_As_Integer): Likewise.
9943 (Set_Treat_Fixed_As_Integer): Likewise.
9944 * sprint.ads (Syntax Extensions): Remove '#' special character.
9945 * sprint.adb (Process_TFAI_RR_Flags): Delete.
9946 (Sprint_Node_Actual) <N_Op_Divide>: Print '@' manually.
9947 <N_Op_Multiply>: Likewise.
9948 <N_Op_Mod>: Do not print '#'.
9949 <N_Op_Rem>: Likewise.
9951 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9953 * exp_aggr.adb (Others_Check): In the positional case, use the
9954 general expression for the comparison only when needed.
9955 * exp_attr.adb (Expand_Fpt_Attribute;): Use a simple conversion
9956 to the target type instead of an unchecked conversion to the
9957 base type to do the range check, as in the other cases.
9958 (Expand_N_Attribute_Reference) <Attribute_Storage_Size>: Do the
9959 Max operation in the type of the storage size variable, and use
9960 Convert_To as in the other cases.
9961 * tbuild.adb (Convert_To): Do not get rid of an intermediate
9962 conversion to Universal_Integer here...
9963 * sem_res.adb (Simplify_Type_Conversion): ...but here instead.
9965 2020-06-02 Bob Duff <duff@adacore.com>
9967 * doc/gnat_ugn/gnat_utility_programs.rst: Update documentation
9968 for --RM-style-spacing.
9970 2020-06-02 Bob Duff <duff@adacore.com>
9972 * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
9973 --[no-]compact switch.
9975 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9977 * exp_aggr.adb (Build_Array_Aggr_Code): Set the type of the PAT
9978 on the zero used to clear the array.
9979 * exp_attr.adb (Expand_N_Attribute_Reference)
9980 <Attribute_Alignment>: In the CW case, directly convert from the
9981 alignment's type to the target type if the parent is an
9982 unchecked conversion.
9983 * sem_res.adb (Set_String_Literal_Subtype): In the dynamic case,
9984 use the general expression for the upper bound only when needed.
9985 Set the base type of the index as the type of the low bound.
9986 (Simplify_Type_Conversion): Do an intermediate conversion to the
9987 root type of the target type if the operand is an integer
9989 * tbuild.adb (Convert_To): Get rid of an intermediate conversion
9990 to Universal_Integer if the inner expression has integer tyoe.
9991 * libgnat/a-sequio.adb (Byte_Swap): Make use of an equivalent
9992 static expression in the case statement.
9994 2020-06-02 Thomas Quinot <quinot@adacore.com>
9996 * par_sco.adb (Traverse_Degenerate_Subprogram): Set statement
9998 * scos.ads: Update comment documenting SCO data.
10000 2020-06-02 Gary Dismukes <dismukes@adacore.com>
10002 * exp_unst.adb (Register_Subprogram): Test for Address_Taken (in
10003 addition to the existing test for In_Synchonized_Unit) when
10004 deciding whether to reset the Reachable flag on all subprograms
10005 enclosing the subprogram being registered.
10007 2020-06-02 Justin Squirek <squirek@adacore.com>
10009 * sem_ch6.adb (Check_Return_Obj_Accessibility): Avoid use of
10010 parent node pointers so we are not relying on expansion done in
10013 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
10015 * exp_attr.adb (Expand_N_Attribute_Reference)
10016 <Attribute_Alignment>: Adjust comment and compare against proper
10019 2020-06-02 Gary Dismukes <dismukes@adacore.com>
10021 * exp_unst.adb (Visit_Node): When visiting array attribute
10022 nodes, apply Get_Referenced_Object to the attribute prefix, to
10023 handle prefixes denoting renamed objects by picking up the Etype
10024 of the renamed object rather than the possibly unconstrained
10025 nominal subtype of the renaming declaration's Entity.
10026 * sem_util.ads (Get_Referenced_Object): Update comment to
10027 clearly indicate that any kind of node can be passed to this
10029 * sem_util.adb (Get_Referenced_Object): Add test of Is_Object to
10030 the condition, to allow for passing names that denote types and
10033 2020-06-02 Bob Duff <duff@adacore.com>
10035 * snames.ads-tmpl: Add comments explaining that enumeration
10036 types have to be kept in synch with subtypes of Name_Id.
10038 2020-06-02 Piotr Trojanek <trojanek@adacore.com>
10040 * sem_util.adb (Check_No_Hidden_State): Remove dead code.
10042 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
10044 * exp_pakd.adb (Expand_Packed_Bit_Reference): Change type of
10045 reference from Universal_Integer to Standard_Natural.
10047 2020-06-02 Piotr Trojanek <trojanek@adacore.com>
10049 * sem_prag.adb (Collect_States_And_Objects): Call itself on
10050 declaration of nested packages; append abstract states
10051 one-by-one, so that in recursive call we do not overwrite the
10052 ones that have been already collected.
10054 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
10056 * exp_atag.ads (Build_Inherit_Predefined_Prims): Change type
10057 of Num_Predef_Prim parameter from Int to Nat.
10058 * exp_atag.adb (Build_Range): New procedure.
10059 (Build_Val): Likewise.
10060 (Build_CW_Membership): Call Build_Val.
10061 (Build_Get_Predefined_Prim_Op_Address): Likewise.
10062 (Build_Inherit_CPP_Prims): Likewise.
10063 (Build_Get_Prim_Op_Address): Likewise.
10064 (Build_Set_Predefined_Prim_Op_Address): Likewise.
10065 (Build_Inherit_Prims): Call Build_Range.
10066 (Build_Inherit_Predefined_Prims): Likewise. Change type of
10067 Num_Predef_Prim parameter from Int to Nat.
10069 2020-06-02 Gary Dismukes <dismukes@adacore.com>
10071 * sem_ch3.adb: Two typo fixes.
10073 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
10075 * sem_ch3.adb (Replace_Discriminants): Preserve the Etype of the
10076 Name of N_Variant_Part nodes when rewriting it.
10078 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
10080 * sem_ch3.adb (Signed_Integer_Type_Declaration): Change the type
10081 of the bounds from Universal_Integer to Implicit_Base.
10083 2020-06-02 Arnaud Charlet <charlet@adacore.com>
10085 * bcheck.adb, binde.adb, bindo-diagnostics.adb, checks.adb,
10086 exp_aggr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb,
10087 exp_ch9.adb, gnatname.adb, sem_case.adb, sem_ch13.adb,
10088 sem_ch5.adb, sem_prag.adb, sem_util.adb, uintp.adb, urealp.adb,
10089 xoscons.adb, xr_tabls.adb, xref_lib.adb: Initialize objects more
10090 explicitly and add corresponding assertions. Remove dead code.
10091 Also add a few Annotate pragmas to help static analysis.
10092 * libgnat/a-caldel.adb, libgnat/a-calend.adb,
10093 libgnat/a-ngcoty.adb, libgnat/a-ngelfu.adb,
10094 libgnat/a-ngrear.adb, libgnat/a-strfix.adb,
10095 libgnat/g-calend.adb, libgnat/g-catiio.adb,
10096 libgnat/g-comlin.adb, libgnat/g-debpoo.adb,
10097 libgnat/g-dirope.adb, libgnat/g-hesorg.adb,
10098 libgnat/g-pehage.adb, libgnat/g-socket.adb, libgnat/i-cobol.adb,
10099 libgnat/s-dwalin.adb, libgnat/s-dwalin.ads,
10100 libgnat/s-fatgen.adb, libgnat/s-gearop.adb,
10101 libgnat/s-genbig.adb, libgnat/s-imgrea.adb,
10102 libgnat/s-os_lib.adb, libgnat/s-rannum.adb,
10103 libgnat/s-regpat.adb, libgnat/s-trasym__dwarf.adb,
10104 libgnat/s-valrea.adb: Ditto.
10106 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
10108 * sem_ch3.adb (Replace_Components): Rename into...
10109 (Replace_Discriminants): ...this. Replace girder discriminants
10110 with non-girder ones. Do not replace components.
10111 * sem_ch13.adb (Check_Record_Representation_Clause): Deal with
10112 non-girder discriminants correctly.
10114 2020-06-02 Piotr Trojanek <trojanek@adacore.com>
10116 * lib-xref-spark_specific.adb (Create_Heap): use a new variant
10117 of Name_Enter to directly converts String to Make_Id.
10119 2020-06-02 Gary Dismukes <dismukes@adacore.com>
10121 * exp_attr.adb, par-ch4.adb, par-util.adb, scans.ads, scng.adb,
10122 sem_attr.adb, sem_ch4.adb, sinfo.ads: Typo corrections and minor
10125 2020-06-02 Arnaud Charlet <charlet@adacore.com>
10127 * snames.ads-tmpl (Name_Img, Attribute_Img): Make it an
10128 attribute returning renamable functions.
10130 2020-06-02 Yannick Moy <moy@adacore.com>
10132 * sem_prag.adb, sem_prag.ads (Set_Overflow_Mode): New procedure
10133 to set overflow mode.
10135 2020-06-02 Piotr Trojanek <trojanek@adacore.com>
10137 * contracts.adb, einfo.adb, exp_ch9.adb, sem_ch12.adb,
10138 sem_ch4.adb, sem_ch7.adb, sem_ch8.adb, sem_elab.adb,
10139 sem_type.adb, sem_util.adb: Reuse Is_Package_Or_Generic_Package
10140 where possible (similarly, reuse Is_Concurrent_Type if it was
10141 possible in the same expressions).
10143 2020-05-30 Arnaud Charlet <charlet@adacore.com>
10145 * Makefile.rtl (ADA_INCLUDE_SRCS): Replace Makefile.adalib by
10146 libada.gpr and associated project files.
10147 (g-debpoo.o): Add missing rule to ensure subprograms are not reordered.
10148 (setup-rts): Add generation of libgnat/libgnarl.lst.
10149 (LIBGNAT_SRCS): Remove thread.c which is part of libgnarl.
10150 * tracebak.c, tb-gcc.c: Merged the two files to simplify dependencies.
10151 * libgnarl/libgnarl.gpr, libgnat/libada.gpr,
10152 libgnat/libgnat.gpr, libgnat/libgnat_common.gpr: New files.
10153 * doc/gnat_ugn/the_gnat_compilation_model.rst: Makefile.adalib
10154 replaced by libada.gpr.
10155 * libgnat/system-mingw.ads: Remove obsolete comment.
10156 * gcc-interface/Makefile.in: Remove dependency on tb-gcc.c.
10158 2020-05-27 Martin Liska <mliska@suse.cz>
10160 * gnatvsn.ads: Bump Library_Version to 11.
10162 2020-05-26 Eric Botcazou <ebotcazou@adacore.com>
10165 * gcc-interface/decl.c (gnat_to_gnu_param): Never make a variant of
10168 2020-05-26 Alexandre Oliva <oliva@adacore.com>
10170 * gcc-interface/lang-specs.h (ADA_DUMPS_OPTIONS): Define in
10171 terms of DUMPS_OPTIONS. Replace occurrences of %{d*} %:dumps
10174 2020-05-26 Alexandre Oliva <oliva@adacore.com>
10176 * gcc-interface/lang-specs.h: Drop auxbase and auxbase-strip.
10177 Use %:dumps instead of -dumpbase. Add %w for implicit .s
10179 * switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
10180 dumpbase-ext. Drop auxbase and auxbase-strip.
10182 2020-05-25 Yannick Moy <moy@adacore.com>
10184 * sem_util.adb (Check_No_Hidden_State): Stop propagation at
10185 first block/task/entry.
10187 2020-05-25 Yannick Moy <moy@adacore.com>
10189 * doc/gnat_rm/implementation_defined_pragmas.rst: Document
10190 changes to pragmas Compile_Time_Error/Compile_Time_Warning.
10191 * gnat_rm.texi: Regenerate.
10192 * libgnat/g-bytswa.adb: Change uses of Compile_Time_Error to
10193 Compile_Time_Warning, as the actual expression may not always be
10195 * sem_prag.adb (Analyze_Pragma): Handle differently pragma
10196 Compile_Time_Error in both compilation and in GNATprove mode.
10197 (Validate_Compile_Time_Warning_Or_Error): Issue an error or
10198 warning when the expression is not known at compile time.
10199 * usage.adb: Add missing documentation for warning switches _c
10201 * warnsw.ads: Update comment.
10203 2020-05-25 Justin Squirek <squirek@adacore.com>
10205 * sem_ch6.adb (Check_Return_Obj_Accessibility): Use original
10206 node to avoid looking at expansion done in GNATprove mode.
10208 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
10210 * gcc-interface/decl.c (gnat_to_gnu_entity): Add new local variable
10211 and use it throughout the function.
10212 <E_Variable>: Rename local variable and adjust accordingly. In the
10213 case of a renaming, materialize the entity if the renamed object is
10214 an N_Expression_With_Actions node.
10215 <E_Procedure>: Use Alias accessor function consistently.
10217 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
10219 * gcc-interface/misc.c (get_array_bit_stride): Get to the debug type,
10220 if any, before calling gnat_get_array_descr_info.
10222 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
10224 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Tidy up.
10225 (build_variant_list): Add GNAT_VARIANT_PART parameter and annotate its
10226 variants if it is present. Adjust the recursive call by passing the
10227 variant subpart of variants, if any.
10228 (copy_and_substitute_in_layout): Rename GNU_SUBST_LIST to SUBST_LIST
10229 and adjust throughout. For a type, pass the variant part in the
10230 call to build_variant_list.
10232 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
10234 * gcc-interface/decl.c (gnat_to_gnu_component_type): Cap the alignment
10235 of the component type according to the component size.
10237 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
10239 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Add a
10240 description of the various types associated with the unconstrained
10241 type. Declare the fat pointer earlier. Set the current function
10242 as context on the template type, and the fat pointer type on the
10243 array type. Always mark the fat pointer type as artificial and set
10244 it as the context for the pointer type to the array. Also reuse
10245 GNU_ENTITY_NAME. Finish up the unconstrained type at the very end.
10246 * gcc-interface/misc.c (gnat_get_array_descr_info): Do not handle
10247 fat pointer types and tidy up accordingly.
10248 * gcc-interface/utils.c (build_unc_object_type): Do not set the
10249 context on the template type.
10250 (gnat_pushdecl): Mark the canonical fat pointer types as artificial.
10252 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
10254 * gcc-interface/gigi.h (operand_type): New static inline function.
10255 * gcc-interface/trans.c (gnat_to_gnu): Do not suppress conversion
10256 to the resulty type at the end for array types.
10257 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Do not
10258 remove conversions between array types on the LHS.
10260 2020-05-12 Eric Botcazou <ebotcazou@adacore.com>
10262 * sem_aggr.ads (Is_Single_Aggregate): New function.
10263 * sem_aggr.adb (Is_Others_Aggregate): Use local variable.
10264 (Is_Single_Aggregate): New function to recognize an aggregate with
10265 a single association containing a single choice.
10266 * fe.h (Is_Others_Aggregate): Delete.
10267 (Is_Single_Aggregate): New declaration.
10268 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Call
10269 Is_Single_Aggregate instead of Is_Others_Aggregate.
10271 2020-05-12 Eric Botcazou <ebotcazou@adacore.com>
10274 * gcc-interface/utils.c (packable_type_hasher::equal): Also compare
10275 the scalar storage order.
10276 (hash_packable_type): Also hash the scalar storage order.
10277 (hash_pad_type): Likewise.
10279 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10281 * gcc-interface/*.[ch]: Update copyright year.
10283 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10285 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Assert that
10286 the prefix is not a type.
10288 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10290 * gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Rename into...
10291 (TYPE_BIT_PACKED_ARRAY_TYPE_P): ...this.
10292 (TYPE_IS_PACKED_ARRAY_TYPE_P): Rename into...
10293 (BIT_PACKED_ARRAY_TYPE_P): ...this.
10294 (TYPE_IMPL_PACKED_ARRAY_P): Adjust to above renaming.
10295 * gcc-interface/gigi.h (maybe_pad_type): Remove IS_USER_TYPE parameter.
10296 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Adjust call
10298 <E_Ordinary_Fixed_Point_Type>: Remove const qualifiers for tree.
10299 <E_Signed_Integer_Subtype>: Remove redundant test and redundant call
10300 to associate_original_type_to_packed_array. Turn test into assertion.
10301 Call associate_original_type_to_packed_array and modify gnu_entity_name
10302 accordingly. Explicitly set the parallel type for GNAT encodings.
10303 Call create_type_decl in the misaligned case before maybe_pad_type.
10304 <E_Array_Type>: Do not use the name of the implementation type for a
10305 packed array when not using GNAT encodings.
10306 <E_Array_Subtype>: Move around setting flags. Use the result of the
10307 call to associate_original_type_to_packed_array for gnu_entity_name.
10308 <E_Record_Subtype>: Create XVS type and XVZ variable only if debug
10309 info is requested for the type.
10310 Call create_type_decl if a padded type was created for a type entity.
10311 (gnat_to_gnu_component_type): Use local variable and adjust calls to
10313 (gnat_to_gnu_subprog_type): Adjust call to maybe_pad_type.
10314 (gnat_to_gnu_field): Likewise.
10315 (validate_size): Adjust to renaming of macro.
10316 (set_rm_size): Likewise.
10317 (associate_original_type_to_packed_array): Adjust return type and
10318 return the name of the original type if GNAT encodings are not used.
10319 * gcc-interface/misc.c (gnat_get_debug_typ): Remove obsolete stuff.
10320 (gnat_get_fixed_point_type_info): Remove const qualifiers for tree.
10321 (gnat_get_array_descr_info): Likewise and set variables lazily.
10322 Remove call to maybe_debug_type. Simplify a few computations.
10323 (enumerate_modes): Remove const qualifier for tree.
10324 * gcc-interface/utils.c (make_type_from_size): Adjust to renaming.
10325 (maybe_pad_type): Remove IS_USER_TYPE parameter and adjust. Remove
10326 specific code for implementation types for packed arrays.
10327 (compute_deferred_decl_context): Remove const qualifier for tree.
10328 (convert): Adjust call to maybe_pad_type.
10329 (unchecked_convert): Likewise.
10330 * gcc-interface/utils2.c (is_simple_additive_expressio): Likewise.
10332 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10334 * gcc-interface/utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Use
10335 build_nonshared_array_type to build the common type and declare it.
10337 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10339 * gcc-interface/misc.c (gnat_init_gcc_eh): Do not override the user
10340 for -fnon-call-exceptions in default mode.
10342 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10344 * gcc-interface/trans.c (lvalue_required_p) <N_Selected_Component>:
10345 Merge with N_Slice.
10346 <N_Allocator>: Move to...
10347 (lvalue_for_aggregate_p): ...here. New function.
10348 (Identifier_to_gnu): For an identifier with aggregate type, also
10349 call lvalue_for_aggregate_p if lvalue_required_p returned false
10350 before substituting the identifier with the constant.
10352 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10354 * gcc-interface/trans.c (gnat_to_gnu): Do not wrap boolean values if
10355 they appear in any kind of attribute references.
10357 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10359 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Deal
10360 with qualified "others" aggregates in the memset case.
10362 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10364 * gcc-interface/decl.c (gnat_to_gnu_param): Also back-annotate the
10365 mechanism in the case of an Out parameter only passed by copy-out.
10367 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10369 * gcc-interface/gigi.h (change_qualified_type): Move around.
10370 (maybe_vector_array): Likewise.
10371 (maybe_padded_object): New static line function.
10372 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Component_Size>:
10373 Remove useless code.
10374 <Attr_Null_Parameter>: Remove obsolete code.
10375 (Call_to_gn): Likewise. Use maybe_padded_object to remove padding.
10376 (gnat_to_gnu): Likewise.
10377 <N_String_Literal>: Do not add a useless null character at the end.
10378 <N_Indexed_Component>: Likewise and remove obsolete code.
10379 (add_decl_expr): Likewise.
10380 (maybe_implicit_deref): Likewise.
10381 * gcc-interface/utils.c (maybe_unconstrained_array): Likewise.
10382 * gcc-interface/utils2.c (gnat_invariant_expr): Likewise.
10384 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10386 * gcc-interface/utils2.c: Include builtins.h.
10387 (known_alignment) <ADDR_EXPR>: Use DECL_ALIGN for DECL_P operands
10388 and get_object_alignment for the rest.
10390 2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
10392 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Force at
10393 least the unit size for an aliased object of a constrained nominal
10394 subtype whose size is variable.
10396 2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
10398 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Deal
10399 with artificial maximally-sized types designed by access types.
10400 * gcc-interface/utils.c (packable_type_hash): New structure.
10401 (packable_type_hasher): Likewise.
10402 (packable_type_hash_table): New hash table.
10403 (init_gnat_utils): Initialize it.
10404 (destroy_gnat_utils): Destroy it.
10405 (packable_type_hasher::equal): New method.
10406 (hash_packable_type): New static function.
10407 (canonicalize_packable_type): Likewise.
10408 (make_packable_type): Make sure not to use too small a type for the
10409 size of the new fields. Canonicalize the type if it is named.
10411 2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
10413 * gcc-interface/trans.c (Raise_Error_to_gnu): Always compute a lower
10414 bound and an upper bound for use by the -gnateE switch for range and
10415 comparison operators.
10417 2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
10419 * gcc-interface/decl.c (gnat_to_gnu_param): Do not make a variant of
10420 the type in LTO mode.
10422 2020-05-04 Mikael Pettersson <mikpelinux@gmail.com>
10425 * mingw32.h: Prevent windows.h from including emmintrin.h on Cygwin64.
10426 * s-oscons-tmplt.c (Serial_Port_Descriptor): Use System.Win32.HANDLE
10429 2020-03-11 Richard Wai <richard@annexi-strayline.com>
10431 * gcc-interface/decl.c (gnat_to_gnu_entity): Also test Is_Public on
10432 the Alias of the entitiy, if it is present, in the main assertion.
10434 2020-02-06 Alexandre Oliva <oliva@adacore.com>
10436 * raise-gcc.c (personality_body) [__ARM_EABI_UNWINDER__]:
10437 Initialize barrier_cache.sp when ending phase1.
10439 2020-01-04 Eric Botcazou <ebotcazou@adacore.com>
10441 * gnatvsn.ads: Bump copyright year.
10443 2020-01-01 Jakub Jelinek <jakub@redhat.com>
10445 Update copyright years.
10447 * gnat_ugn.texi: Bump @copying's copyright year.
10448 * gnat_rm.texi: Likewise.
10450 Copyright (C) 2020 Free Software Foundation, Inc.
10452 Copying and distribution of this file, with or without modification,
10453 are permitted in any medium without royalty provided the copyright
10454 notice and this notice are preserved.