]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ada/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ada / ChangeLog
1 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
2
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.
17
18 2020-10-22 Javier Miranda <miranda@adacore.com>
19
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
27 ordered.
28 * sem_ch10.adb (Is_Visible_Through_Renamings): Moved to library
29 level.
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.
38
39 2020-10-22 Ghjuvan Lacambre <lacambre@adacore.com>
40
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.
46
47 2020-10-22 Arnaud Charlet <charlet@adacore.com>
48
49 * libgnat/s-imenne.adb, libgnat/s-imgrea.adb: Add assertions.
50
51 2020-10-22 Arnaud Charlet <charlet@adacore.com>
52
53 * libgnat/s-imgrea.adb (Set_Image_Real): Update annotations.
54
55 2020-10-22 Steve Baird <baird@adacore.com>
56
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
70 list is non-empty.
71 * sem_ch9.adb (Check_Interfaces): Call new
72 Check_Inherited_Nonoverridable_Aspects procedure if interface
73 list is non-empty.
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.
77
78 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
79
80 * freeze.ads (Check_Compile_Time_Size): Adjust size limit.
81
82 2020-10-22 Richard Kenner <kenner@adacore.com>
83
84 * sprint.adb (pg, po, ps): Use {Push,Pop}_Output.
85 * treepr.adb (pl, pn): Likewise.
86
87 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
88
89 * doc/gnat_rm/implementation_advice.rst: Minor fix.
90 * gnat_rm.texi: Regenerate.
91
92 2020-10-22 Steve Baird <baird@adacore.com>
93
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
104 components.
105
106 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
107
108 * exp_fixd.adb (Fpt_Value): Fold if-then-else with identical arms.
109
110 2020-10-22 Ed Schonberg <schonberg@adacore.com>
111
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.
118
119 2020-10-22 Ghjuvan Lacambre <lacambre@adacore.com>
120
121 * scng.adb (Scan): Check if any letter of the token is
122 uppercase.
123
124 2020-10-22 Justin Squirek <squirek@adacore.com>
125
126 * sem_util.adb (Accessibility_Level_Helper): Conversions to
127 named access types get the level associated with the named
128 access type.
129
130 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
131
132 * einfo.ads (Has_Constrained_Partial_View): Add "base type" marker.
133
134 2020-10-22 Gary Dismukes <dismukes@adacore.com>
135
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
142 match".
143
144 2020-10-22 Steve Baird <baird@adacore.com>
145
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;".
170
171 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
172
173 * checks.adb (Apply_Float_Conversion_Check): Saturate the bounds
174 of the check to those of the base type of the expression.
175
176 2020-10-22 Justin Squirek <squirek@adacore.com>
177
178 * checks.adb (Apply_Accessibility_Check): Modify condition to
179 avoid flawed optimization and use Get_Accessibility over
180 Extra_Accessibility.
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
186 record.
187 (Build_Initialization_Call): Add condition to handle propagation
188 of the new extra accessibility paramter actual needed for init
189 procs.
190 (Init_Proc_Level_Formal): Created to fetch a the extra
191 accessibility parameter associated with init procs if one
192 exists.
193 * exp_ch4.adb (Build_Attribute_Reference): Modify static check
194 to be dynamic.
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
199 calculation logic.
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
222 N.
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
232 its implementation.
233 * snames.ads-tmpl: Added new name for extra accessibility
234 parameter in init procs.
235
236 2020-10-22 Piotr Trojanek <trojanek@adacore.com>
237
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
242 Defining_Entity.
243
244 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
245
246 * doc/gnat_rm/implementation_defined_characteristics.rst: Minor
247 fixes.
248 * gnat_rm.texi: Regenerate.
249
250 2020-10-22 Piotr Trojanek <trojanek@adacore.com>
251
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.
256
257 2020-10-22 Patrick Bernardi <bernardi@adacore.com>
258
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.
262
263 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
264
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.
268
269 2020-10-22 Ghjuvan Lacambre <lacambre@adacore.com>
270
271 * sem_prag.adb (Process_Convention,
272 Process_Import_Or_Interface): Fix error message.
273
274 2020-10-22 Ghjuvan Lacambre <lacambre@adacore.com>
275
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.
282
283 2020-10-22 Ed Schonberg <schonberg@adacore.com>
284
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.
293
294 2020-10-22 Eric Botcazou <ebotcazou@adacore.com>
295
296 * sem_attr.adb (Eval_Attribute): Fix oversight for Bit_Position.
297
298 2020-10-22 Ed Schonberg <schonberg@adacore.com>
299
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
305 it.
306 * sem_res.adb (Report_Ambiguous_Argument): Call it.
307
308 2020-10-22 Piotr Trojanek <trojanek@adacore.com>
309
310 * sem_warn.adb (Check_One_Unit): Avoid repeated calls by using a
311 local variable Lunit; remove local constant Eitem, which was
312 identical to Lunit.
313
314 2020-10-22 Alexandre Oliva <oliva@adacore.com>
315
316 * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <x86*-vxworks*>: Select
317 nolibm and wraplf variants like other vxworks ports.
318
319 2020-10-22 Martin Liska <mliska@suse.cz>
320
321 PR c/94722
322 * gcc-interface/utils.c (handle_no_stack_protect_attribute):
323 New.
324 (handle_stack_protect_attribute): Add error message for a
325 no_stack_protector function.
326
327 2020-10-22 Alexandre Oliva <oliva@adacore.com>
328
329 * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <lynxos178>: Rely on
330 Aux_Long_Float for all real types.
331
332 2020-10-22 Alexandre Oliva <oliva@adacore.com>
333
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.
338
339 2020-10-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
340
341 * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <sparc*-sun-solaris>:
342 Use wraplf version of a-nallfl.
343
344 2020-10-22 Alexandre Oliva <oliva@adacore.com>
345
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.
349
350 2020-10-22 Jan Hubicka <hubicka@ucw.cz>
351
352 * gcc-interface/trans.c: Include tree-nested.h
353 (walk_nesting_tree): Update for new nested function info.
354
355 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
356
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
362 a-lllzti.
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
371 package.
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
375 package.
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
381 package.
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
385 package.
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
391 package.
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
395 package.
396 * libgnat/a-ztmoio.adb: Instantiate it.
397 * libgnat/a-ztmoio__128.adb: Likewise.
398
399 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
400
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.
404
405 2020-10-21 Steve Baird <baird@adacore.com>
406
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
411 object.
412
413 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
414
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
441 package.
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
482 package.
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
494 package.
495 * libgnat/s-widthu.ads, libgnat/s-widthu.adb: Likewise.
496 * libgnat/s-widuns.ads: Instantiate System.Width_U.
497
498 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
499
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.
503
504 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
505
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
508 visible.
509
510 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
511
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,
518 s-exponu.
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
529 comment.
530 * exp_ch3.adb (Simple_Init_Initialize_Scalars_Type): Deal with 128-bit
531 types.
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.
540 (Get_Id): Likewise.
541 (GetU_Id): Likewise.
542 (Set_Id): Likewise.
543 (SetU_Id): Likewise.
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
560 with 's'.
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
564 limit.
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
584 objects as well.
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
598 supports 128 bits.
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.
608 (Scalar_Id): Adjust.
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
631 package.
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
653 function.
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
726 package.
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.
730
731 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
732
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.
736
737 2020-10-21 Yannick Moy <moy@adacore.com>
738
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
741 facilitate diffs.
742
743 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
744
745 * exp_aggr.adb (Expand_N_Aggregate): Refactor repeated calls to
746 Etype (N).
747 (Build_Array_Aggr_Code): Fix whitespace.
748
749 2020-10-21 Dmitriy Anisimkov <anisimko@adacore.com>
750
751 * adaint.c (__gnat_file_time): Use regular arithmetic instead of
752 __builtin_*_overflow routines if GCC version 4 or less and
753 compiler is g++.
754
755 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
756
757 * sem_aggr.adb (Resolve_Array_Aggregate): Use Choice_List, which
758 internally calls either Choice or Discrete_Choices, depending on
759 the context.
760
761 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
762
763 * sem_aggr.adb (Resolve_Iterated_Component_Association): Use
764 existing defining identifier for index parameter.
765
766 2020-10-21 Javier Miranda <miranda@adacore.com>
767
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.
771
772 2020-10-21 Liaiss Merzougue <merzougue@adacore.com>
773
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
783 String size.
784 * libgnat/s-imgdec.adb
785 (Round): Upate loop code to prevent warning concerning
786 Digs'First access.
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
793 concerning Du /= 0.
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
804 warning.
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
812 instead Integer.
813 (Set_Image_Integer): Add pragma assert to prevent overflow check
814 warning.
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
818 instead Integer.
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.
827
828 2020-10-21 Gary Dismukes <dismukes@adacore.com>
829
830 * exp_ch6.adb (Insert_Post_Call_Actions): Test for
831 N_Explicit_Dereference as part of the existing test for function
832 calls.
833
834 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
835
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.
838
839 2020-10-21 Dmitriy Anisimkov <anisimko@adacore.com>
840
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
844 __gnat_file_time.
845 (Modification_Time): Call to C_Modification_Time.
846
847 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
848
849 * sem_aggr.adb (Resolve_Iterated_Component_Association):
850 Expression's copy and now has the same parent as the original
851 expression.
852 (Resolve_Array_Aggregate): Add ??? comment about a still
853 existing minor issue that led to discovery of the above crash.
854
855 2020-10-21 Javier Miranda <miranda@adacore.com>
856
857 * sem_ch12.adb (Install_Parents_Of_Generic_Context): Simplify
858 functionality; collect and install parents of generic child
859 package.
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
864
865 2020-10-21 Doug Rupp <rupp@adacore.com>
866
867 * libgnarl/s-osinte__lynxos178e.ads: Remove -mthreads switch.
868
869 2020-10-21 Patrick Bernardi <bernardi@adacore.com>
870
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
875 variables.
876
877 2020-10-21 Eric Botcazou <ebotcazou@adacore.com>
878
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.
882
883 2020-10-21 Justin Squirek <squirek@adacore.com>
884
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.
888
889 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
890
891 * exp_ch6.adb (Expand_Actuals): Whitespace cleanup.
892 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Make minimum
893 accessibility a constant object.
894
895 2020-10-21 Patrick Bernardi <bernardi@adacore.com>
896
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.
900
901 2020-10-21 Ghjuvan Lacambre <lacambre@adacore.com>
902
903 * exp_ch7.adb (Build_Finalizer): Disable warnings on referenced
904 entity.
905
906 2020-10-21 Piotr Trojanek <trojanek@adacore.com>
907
908 * einfo.ads, sem_ch3.adb, sem_util.adb: Fix comments.
909
910 2020-10-21 Javier Miranda <miranda@adacore.com>
911
912 * sem_ch3.adb (Build_Derived_Type): Propagate convention of
913 class-wide parent.
914
915 2020-10-21 Claire Dross <dross@adacore.com>
916
917 * libgnat/a-cofove.adb (Copy): Add explanation in case of
918 Capacity_Error.
919 (Insert_Space): Raise Capacity_Error if the new length is
920 greater than the capacity.
921 (Reserve_Capacity): Raise Capacity_Error instead of
922 Constraint_Error.
923
924 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
925
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.
929
930 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
931
932 * sprint.adb (po): Set Dump_Freeze_Null to False; align colons.
933 (ps): Likewise.
934
935 2020-10-20 Ed Schonberg <schonberg@adacore.com>
936
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
948 function.
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
966 function.
967
968 2020-10-20 Arnaud Charlet <charlet@adacore.com>
969
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
976 parameters.
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.
985
986 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
987
988 * sem_util.ads, sem_util.adb (Get_Accessibility): Refine result
989 type from Node_Id to Entity_Id.
990
991 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
992
993 * einfo.adb, exp_attr.adb, sem_ch13.adb, sem_util.adb: Use
994 Is_Formal where possible.
995
996 2020-10-20 Steve Baird <baird@adacore.com>
997
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
1019 treatment.
1020 * sem_attr.adb (Uneval_Old_Msg): Improve message text to reflect
1021 Ada202x changes.
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.
1036 * exp_prag.adb
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
1045 correctness:
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
1065 this case.
1066
1067 2020-10-20 Javier Miranda <miranda@adacore.com>
1068
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.
1073
1074 2020-10-20 Claire Dross <dross@adacore.com>
1075
1076 * sem_attr.adb (Analyze_Attribute): Emit a warning on 'Update
1077 when Warn_On_Obsolescent_Feature is set to True.
1078
1079 2020-10-20 Richard Kenner <kenner@adacore.com>
1080
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.
1085
1086 2020-10-20 Justin Squirek <squirek@adacore.com>
1087
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.
1091
1092 2020-10-20 Yannick Moy <moy@adacore.com>
1093
1094 * errout.adb (Write_Source_Code_Line): Adopt display closer to
1095 GCC format.
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
1099 mode.
1100
1101 2020-10-20 Justin Squirek <squirek@adacore.com>
1102
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.
1107
1108 2020-10-20 Bob Duff <duff@adacore.com>
1109
1110 * doc/gnat_ugn/gnat_utility_programs.rst: Change "_" to "-".
1111
1112 2020-10-20 Arnaud Charlet <charlet@adacore.com>
1113
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
1121 subprogram.
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.
1133
1134 2020-10-20 Gary Dismukes <dismukes@adacore.com>
1135
1136 * sem_ch6.adb (Analyze_Expression_Function): Mark static
1137 expression functions as inlined.
1138
1139 2020-10-20 Arnaud Charlet <charlet@adacore.com>
1140
1141 * contracts.adb (Is_Prologue_Renaming): This function was
1142 missing support for E_Constant which can also be generated in
1143 protected objects.
1144
1145 2020-10-20 Arnaud Charlet <charlet@adacore.com>
1146
1147 * bindgen.adb (Gen_Bind_Env_String): Generate Ada 2012 compatible
1148 strings. Code cleanup.
1149
1150 2020-10-20 Yannick Moy <moy@adacore.com>
1151
1152 * sem_util.adb, sem_util.ads: Comment fix.
1153
1154 2020-10-20 Arnaud Charlet <charlet@adacore.com>
1155
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.
1159
1160 2020-10-20 Bob Duff <duff@adacore.com>
1161
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
1167 gnat1drv.
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
1177 Nodes table.
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
1188 all-zeros value.
1189 (Set_Paren_Count_Of_Copy): New procedure to avoid duplicated
1190 code.
1191 (Report): New procedure to encapsulate the call to the reporting
1192 procedure.
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
1205 a little faster.
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
1222 Nodes_Size_In_Meg.
1223 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1224 Remove traling whitespaces.
1225 * opt.ads (Nodes_Size_In_Meg): New Variable.
1226
1227 2020-10-20 Eric Botcazou <ebotcazou@adacore.com>
1228
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.
1232
1233 2020-10-20 Pat Rogers <rogers@adacore.com>
1234
1235 * doc/gnat_rm/the_gnat_library.rst: Add Ada.Task_Initialization.
1236 * gnat_rm.texi: Regenerate.
1237
1238 2020-10-20 Yannick Moy <moy@adacore.com>
1239
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
1243 set.
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
1247 insertion.
1248 * erroutc.ads (Has_Insertion_Line): New global for prescan.
1249 (Error_Msg_Object): Add field to record line insertion if
1250 present.
1251 * errutil.adb (Error_Msg): Pass no location for Insertion_Sloc.
1252
1253 2020-10-20 Arnaud Charlet <charlet@adacore.com>
1254
1255 * exp_ch5.adb (Expand_N_Case_Statement): Do not generate
1256 validity check when possible.
1257
1258 2020-10-20 Ed Schonberg <schonberg@adacore.com>
1259
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.
1263
1264 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
1265
1266 * sem_ch3.adb (Analyze_Subtype_Declaration): Propagate predicate
1267 function to full view of the created type as well, if it was
1268 created.
1269
1270 2020-10-20 Arnaud Charlet <charlet@adacore.com>
1271
1272 * exp_attr.adb (Expand_N_Attribute_Reference): Merge handling of
1273 Simple_Storage_Pool and Storage_Pool.
1274
1275 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
1276
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
1281 in the comment.
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
1298 time.
1299 (Expand_Call_Helper): Check Subprogram_Variant expressions at
1300 recursive calls.
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
1305 Exp_Util.
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
1309 (see above).
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
1327 Contract_Cases.
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
1331 Subprogram_Variant.
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
1336 Contract_Cases.
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
1340 routine.
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
1346 annotations.
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
1352 Subprogram_Variant.
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
1356 Subprogram_Variant.
1357
1358 2020-10-20 Piotr Trojanek <trojanek@adacore.com>
1359
1360 * exp_util.ads: Reorder declaration.
1361
1362 2020-10-19 Ed Schonberg <schonberg@adacore.com>
1363
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.
1378
1379 2020-10-19 Arnaud Charlet <charlet@adacore.com>
1380
1381 * exp_ch4.adb (Expand_Concatenate): Enable needed range checks.
1382
1383 2020-10-19 Bob Duff <duff@adacore.com>
1384
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.
1388
1389 2020-10-19 Eric Botcazou <ebotcazou@adacore.com>
1390
1391 * Makefile.rtl (PowerPC/Linux): Use s-taspri__posix.ads instead
1392 of s-taspri__posix-noaltstack.ads for s-taspri.ads.
1393
1394 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1395
1396 * sem_ch13.adb (Add_Call): Remove excessive condition and
1397 unnecessary call to Set_Has_Predicates.
1398
1399 2020-10-19 Yannick Moy <moy@adacore.com>
1400
1401 * debug.adb: Use debug switch -gnatdF for this alternative
1402 display of messages.
1403 * errout.adb (Output_Messages): Alternative display when -gnatdF
1404 is used.
1405 * erroutc.adb (Output_Msg_Text): Likewise.
1406
1407 2020-10-19 Arnaud Charlet <charlet@adacore.com>
1408
1409 * sem_ch6.adb (Check_Untagged_Equality): Check for AI12-0352.
1410
1411 2020-10-19 Ed Schonberg <schonberg@adacore.com>
1412
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
1420 components.
1421
1422 2020-10-19 Arnaud Charlet <charlet@adacore.com>
1423
1424 * contracts.adb (Process_Preconditions_For): Do not exclude
1425 instances.
1426 * sem_ch4.adb (Analyze_Quantified_Expression): Disable spurious
1427 warning on internally generated variables.
1428
1429 2020-10-19 Ghjuvan Lacambre <lacambre@adacore.com>
1430
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,
1439 handle it.
1440 * sem_ch7.adb (Analyze_Package_Body_Helper): Call CUDA init
1441 procedure.
1442 * sem_prag.adb (Analyze_Pragma): Call Add_Cuda_Kernel procedure.
1443 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add gnat_cuda.o.
1444
1445 2020-10-19 Bob Duff <duff@adacore.com>
1446
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
1454 duplicates.
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
1458 Ignore_Errors mode.
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.
1462
1463 2020-10-19 Ghjuvan Lacambre <lacambre@adacore.com>
1464
1465 * exp_attr.adb (Expand_N_Attribute_Reference): Check if type
1466 depends on discriminant.
1467
1468 2020-10-19 Bob Duff <duff@adacore.com>
1469
1470 * libgnat/a-coinve.adb, libgnat/a-cidlli.adb (Put_Image): Call
1471 Iterate.
1472
1473 2020-10-19 Arnaud Charlet <charlet@adacore.com>
1474
1475 * sem_aggr.adb (Resolve_Record_Aggregate): Properly apply
1476 subtype constraints when using a Default_Value.
1477 * freeze.adb: Fix typo.
1478
1479 2020-10-19 Yannick Moy <moy@adacore.com>
1480
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.
1487
1488 2020-10-19 Arnaud Charlet <charlet@adacore.com>
1489
1490 * checks.adb (Apply_Type_Conversion_Checks): Minor code clean
1491 up.
1492 * exp_ch4.adb (Discrete_Range_Check): Optimize range checks.
1493 Update comments.
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
1497 up.
1498 * sem_res.adb (Resolve_Type_Conversion): Apply range check when
1499 needed. Update comments.
1500
1501 2020-10-19 Yannick Moy <moy@adacore.com>
1502
1503 * libgnat/a-textio.ads: Update top-level comment.
1504
1505 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1506
1507 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Fix typo.
1508
1509 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1510
1511 * exp_ch6.adb (Expand_Actuals): Simplify condition for by-copy
1512 types.
1513
1514 2020-10-19 Yannick Moy <moy@adacore.com>
1515
1516 * errout.ads: Add comment regarding lack of preservation of
1517 Errout state across successive calls to the API.
1518
1519 2020-10-19 Bob Duff <duff@adacore.com>
1520
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.
1552
1553 2020-10-19 Bob Duff <duff@adacore.com>
1554
1555 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Require matching
1556 parens or brackets.
1557 * par.adb, par-tchk.adb (T_Right_Bracket): New procedure to give
1558 an error on missing ].
1559
1560 2020-10-19 Javier Miranda <miranda@adacore.com>
1561
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.
1565
1566 2020-10-19 Gary Dismukes <dismukes@adacore.com>
1567
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.
1571
1572 2020-10-19 Javier Miranda <miranda@adacore.com>
1573
1574 * sem_ch7.adb (Uninstall_Declarations): Uninstall the
1575 declaration of a subtype declaration defined in the private part
1576 of a package.
1577
1578 2020-10-19 Arnaud Charlet <charlet@adacore.com>
1579
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.
1584
1585 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1586
1587 * exp_ch6.adb (Expand_Call_Helper): Cleanup.
1588
1589 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1590
1591 * exp_ch6.adb (Is_Direct_Deep_Call): Refine type from Node_Id to
1592 Entity_Id.
1593
1594 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1595
1596 * exp_ch6.adb (May_Fold): Detect all operators, i.e. both binary
1597 and unary ones.
1598
1599 2020-10-19 Piotr Trojanek <trojanek@adacore.com>
1600
1601 * inline.adb (Expand_Inlined_Call): Simplify repeated calls to
1602 Nkind.
1603
1604 2020-10-18 Alexandre Oliva <oliva@adacore.com>
1605
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
1610 of Aux_Compat.
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.
1635
1636 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
1637
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
1641 and typos.
1642
1643 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1644
1645 * sem_cat.adb (Is_Primary): Handle N_Range properly.
1646
1647 2020-10-16 Ghjuvan Lacambre <lacambre@adacore.com>
1648
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
1659 Interfaces_C.
1660
1661 2020-10-16 Bob Duff <duff@adacore.com>
1662
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.
1669
1670 2020-10-16 Javier Miranda <miranda@adacore.com>
1671
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.
1677
1678 2020-10-16 Bob Duff <duff@adacore.com>
1679
1680 * libgnat/a-numeri.ads: Remove the greek letter.
1681
1682 2020-10-16 Ed Schonberg <schonberg@adacore.com>
1683
1684 * exp_imgv.adb (Expand_Image_Attribute): Refine previous patch
1685 to use root type (and not base type) on enumeration types.
1686
1687 2020-10-16 Ed Schonberg <schonberg@adacore.com>
1688
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.
1694
1695 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1696
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.
1702
1703 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1704
1705 * gcc-interface/Make-lang.in: Update dependencies on system.ads,
1706 add gnatbind switch -t to avoid timestamp inconsistencies during
1707 build.
1708 * libgnat/system.ads: Move...
1709 * gcc-interface/system.ads: ... here.
1710
1711 2020-10-16 Gary Dismukes <dismukes@adacore.com>
1712
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
1720 type.
1721
1722 2020-10-16 Bob Duff <duff@adacore.com>
1723
1724 * exp_ch6.adb (Expand_Simple_Function_Return): Remove obsolete
1725 comment and code.
1726
1727 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1728
1729 PR ada/95953
1730 * libgnat/a-suenco.adb (Convert): Fix handling of third UTF-8
1731 byte.
1732
1733 2020-10-16 Steve Baird <baird@adacore.com>
1734
1735 * exp_util.adb (Is_Related_To_Func_Return): Cope with the case
1736 where the FE introduces a type conversion.
1737
1738 2020-10-16 Chris Martin <cmartin@adacore.com>
1739
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.
1743
1744 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1745
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
1750 the Hook.
1751
1752 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
1753
1754 * sem_util.adb (Is_View_Conversion): Detect qualified types.
1755 * sem_util.ads (Is_Actual_In_Out_Parameter): Fix style in
1756 comment.
1757
1758 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1759
1760 * scil_ll.adb, sem_scil.adb: Update assertions.
1761
1762 2020-10-16 Ed Schonberg <schonberg@adacore.com>
1763
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
1776
1777 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1778
1779 * exp_ch4.adb (Expand_Concatenate): Allocate result of string
1780 concatenation on secondary stack when relevant.
1781
1782 2020-10-16 Ed Schonberg <schonberg@adacore.com>
1783
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
1789 objects.
1790
1791 2020-10-16 Eric Botcazou <ebotcazou@adacore.com>
1792
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.
1856
1857 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1858
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
1895 Polling.
1896 * gnat_ugn.texi: Regenerate.
1897 * libgnat/a-excpol.adb, libgnat/a-excpol__abort.adb: Removed.
1898
1899 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
1900
1901 * sem_ch3.adb (Array_Type_Declaration): Create itype with unique
1902 name.
1903
1904 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
1905
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
1910 branch is executed.
1911 (Find_Type_Of_Object): Simplify membership test with a subtype
1912 range.
1913
1914 2020-10-16 Yannick Moy <moy@adacore.com>
1915
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
1923 for reading.
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.
1930
1931 2020-10-16 Gary Dismukes <dismukes@adacore.com>
1932
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
1943 references.
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
1955 procedure.
1956
1957 2020-10-16 Arnaud Charlet <charlet@adacore.com>
1958
1959 * sem_prag.adb (Check_OK_Stream_Convert_Function): Check for
1960 abstract subprograms.
1961
1962 2020-10-16 Piotr Trojanek <trojanek@adacore.com>
1963
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.
1968
1969 2020-10-16 Eric Botcazou <ebotcazou@adacore.com>
1970
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.
2016
2017 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2018
2019 * sem_ch10.adb (Install_With_Clause): Fix implementation of Ada
2020 2005 AI-262 by taking into account generic packages. Minor
2021 reformatting.
2022 * libgnat/a-cbhase.ads, libgnat/a-cbhase.adb: Remove use clause
2023 on runtime unit spec.
2024
2025 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2026
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.
2032
2033 2020-10-15 Javier Miranda <miranda@adacore.com>
2034
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.
2040
2041 2020-10-15 Javier Miranda <miranda@adacore.com>
2042
2043 * exp_ch6.ads (Might_Have_Tasks): Update documentation.
2044 * exp_ch6.adb (Might_Have_Tasks): Return also true when the type
2045 has tasks.
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):
2049 Code cleanup.
2050
2051 2020-10-15 Steve Baird <baird@adacore.com>
2052
2053 * checks.adb (Apply_Predicate_Check): Generate "infinite
2054 recursion" warning message even if run-time predicate checking
2055 is disabled.
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.
2076
2077 2020-10-15 Ed Schonberg <schonberg@adacore.com>
2078
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.
2085
2086 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2087
2088 * sem_util.adb (Bad_Predicated_Subtype_Use): Emit an
2089 unconditional error, not a conditional warning.
2090
2091 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2092
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.
2096
2097 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2098
2099 * sem_ch3.adb (Process_Subtype): Sync May_Have_Null_Exclusion
2100 with assertion in Null_Exclusion_Present; clarify the scope of
2101 local variables.
2102
2103 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2104
2105 * sem_ch3.adb (Analyze_Subtype_Declaration): Fix style.
2106 (Make_Index): Refactor to avoid repeated detection of subtype
2107 indication; add comment.
2108
2109 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2110
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.
2114
2115 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2116
2117 * sem_ch3.adb (Array_Type_Declaration): Refine type of a local
2118 variable.
2119 (Make_Index): Simplify to avoid assignment with a type entity
2120 and then backtracking by reassigning to Empty; remove excessive
2121 whitespace.
2122 * sem_ch9.adb (Analyze_Entry_Body): Remove extra parens.
2123
2124 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2125
2126 * sem_ch3.adb (Access_Subprogram_Declaration): Remove extra
2127 parens.
2128 (Make_Index): Remove excessive calls to Is_Type.
2129
2130 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2131
2132 * sem_util.adb (Enter_Name): Remove unnecessary conditions in
2133 Enter_Name that come from the beginning of times.
2134
2135 2020-10-15 Bob Duff <duff@adacore.com>
2136
2137 * exp_ch6.adb (Expand_Simple_Function_Return): Remove DSP part
2138 of comment, and reformat.
2139
2140 2020-10-15 Boris Yakobowski <yakobowski@adacore.com>
2141
2142 * exp_attr.adb (Expand_N_Attribute_Reference): Do not expand
2143 'Initialized in CodePeer mode.
2144
2145 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2146
2147 * sem_ch12.adb (Reset_Entity): Protect against malformed tree.
2148
2149 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2150
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).
2154
2155 2020-10-15 Eric Botcazou <ebotcazou@adacore.com>
2156
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.
2162
2163 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2164
2165 * sem_ch12.adb: Replace list of N_Defining_... enumerations with
2166 N_Entity.
2167
2168 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2169
2170 * sem_ch3.ads, sem_ch3.adb (Make_Index): Refined type of
2171 parameter.
2172 (Constrain_Index): Likewise.
2173 (Array_Type_Declaration): Refine type of a local counter
2174 variable; remove a trivially useless initialization.
2175
2176 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2177
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.
2181
2182 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2183
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
2190 assertion.
2191
2192 2020-10-15 Bob Duff <duff@adacore.com>
2193
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.
2199
2200 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2201
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
2205 aspects.
2206 * debug.adb (Debug_Flag_2): Update document.
2207
2208 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2209
2210 * sem_res.adb (Resolve_Call): Do not try to inline intrinsic
2211 calls.
2212
2213 2020-10-15 Ed Schonberg <schonberg@adacore.com>
2214
2215 * exp_aggr.adb (Expand_N_Aggregate): A record aggregate requires
2216 a non-private type.
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.
2234
2235 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2236
2237 * libgnat/g-arrspl.ads, libgnat/g-arrspl.adb (Create,
2238 First_Cursor, Advance, Has_Element): New.
2239
2240 2020-10-15 Arnaud Charlet <charlet@adacore.com>
2241
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
2247 Ada < 2020.
2248
2249 2020-10-15 Piotr Trojanek <trojanek@adacore.com>
2250
2251 * exp_util.adb (Remove_Side_Effects): Move special-casing for
2252 GNATprove to be applied to all object declarations.
2253
2254 2020-10-12 Alexandre Oliva <oliva@adacore.com>
2255
2256 * libgnat/a-ngelfu.ads (Sin, Cos): Make the single-argument
2257 functions inline.
2258
2259 2020-10-11 Alexandre Oliva <oliva@adacore.com>
2260
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.
2265
2266 2020-09-28 Eric Botcazou <ebotcazou@adacore.com>
2267
2268 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the end locus
2269 of body and declaration earlier.
2270
2271 2020-09-28 Eric Botcazou <ebotcazou@adacore.com>
2272
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.
2276
2277 2020-09-14 Jakub Jelinek <jakub@redhat.com>
2278
2279 * gcc-interface/trans.c (gigi): Adjust build_optimization_node
2280 caller.
2281
2282 2020-09-12 Eric Botcazou <ebotcazou@adacore.com>
2283
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.
2296
2297 2020-09-12 Eric Botcazou <ebotcazou@adacore.com>
2298
2299 * gcc-interface/trans.c (lvalue_for_aggr_p) <N_Object_Declaration>:
2300 Return false unconditionally.
2301
2302 2020-09-12 Eric Botcazou <ebotcazou@adacore.com>
2303
2304 * gcc-interface/trans.c (gnat_to_gnu) <N_Object_Declaration>: Clear
2305 the SLOC of the expression of a tag.
2306
2307 2020-09-12 Eric Botcazou <ebotcazou@adacore.com>
2308
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.
2312
2313 2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
2314
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.
2318
2319 2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
2320
2321 * gcc-interface/misc.c (get_array_bit_stride): Return TYPE_ADA_SIZE
2322 for record and union types.
2323
2324 2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
2325
2326 * gcc-interface/misc.c (gnat_get_fixed_point_type): Bail out only
2327 when the GNAT encodings are specifically used.
2328
2329 2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
2330
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.
2334
2335 2020-09-10 Eric Botcazou <ebotcazou@adacore.com>
2336
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.
2339
2340 2020-09-10 Eric Botcazou <ebotcazou@adacore.com>
2341
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.
2345
2346 2020-09-10 Eric Botcazou <ebotcazou@adacore.com>
2347
2348 * gcc-interface/misc.c: Include tree-pass.h.
2349 (internal_error_function): Call emergency_dump_function.
2350
2351 2020-09-03 Arnaud Charlet <charlet@adacore.com>
2352
2353 * fe.h, opt.ads (Enable_128bit_Types): New.
2354 * stand.ads (Standard_Long_Long_Long_Integer,
2355 S_Long_Long_Long_Integer): New.
2356
2357 2020-09-03 Arnaud Charlet <charlet@adacore.com>
2358
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.
2362
2363 2020-08-27 Martin Liska <mliska@suse.cz>
2364
2365 * gcc-interface/trans.c (gigi): Set exact argument of a vector
2366 growth function to true.
2367 (Attribute_to_gnu): Likewise.
2368
2369 2020-07-27 Alexandre Oliva <oliva@adacore.com>
2370
2371 * switch.adb (Is_Internal_GCC_Switch): Revert accidental
2372 reintroduction of auxbase and auxbase-strip.
2373
2374 2020-07-27 Javier Miranda <miranda@adacore.com>
2375
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
2379 created.
2380 * sem_util.ads (Is_Actual_In_Out_Parameter, Is_View_Conversion):
2381 New subprograms.
2382 * sem_util.adb (Is_Actual_In_Out_Parameter, Is_View_Conversion):
2383 New subprograms.
2384
2385 2020-07-27 Arnaud Charlet <charlet@adacore.com>
2386
2387 * lib-xref.adb (Generate_Reference): Protect against malformed
2388 tree in case of severe errors.
2389 * sem_ch8.adb (Add_Implicit_Operator): Ditto.
2390
2391 2020-07-27 Arnaud Charlet <charlet@adacore.com>
2392
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.
2413
2414 2020-07-27 Justin Squirek <squirek@adacore.com>
2415
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.
2419
2420 2020-07-27 Bob Duff <duff@adacore.com>
2421
2422 * exp_imgv.adb (Expand_Image_Attribute): Add Root_Type, so
2423 constrained subtypes work.
2424
2425 2020-07-27 Ghjuvan Lacambre <lacambre@adacore.com>
2426
2427 * exp_prag.adb (Arg1, Arg2, Arg3): Removed.
2428 (Arg_N): New function.
2429
2430 2020-07-27 Arnaud Charlet <charlet@adacore.com>
2431
2432 * sem_ch8.adb (Analyze_Object_Renaming): Allow values in Ada
2433 2020 mode.
2434
2435 2020-07-27 Arnaud Charlet <charlet@adacore.com>
2436
2437 * sem_res.adb (Resolve_Actuals): Refine 6.4.1 rules as per
2438 AI12-0377.
2439
2440 2020-07-27 Bob Duff <duff@adacore.com>
2441
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.
2448
2449 2020-07-27 Dmitriy Anisimkov <anisimko@adacore.com>
2450
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
2459 parameters.
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.
2463
2464 2020-07-27 Arnaud Charlet <charlet@adacore.com>
2465
2466 * sem_attr.adb (Resolve_Attribute): Remove dead code.
2467
2468 2020-07-27 Arnaud Charlet <charlet@adacore.com>
2469
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
2491 membership tests.
2492
2493 2020-07-27 Gary Dismukes <dismukes@adacore.com>
2494
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.
2498
2499 2020-07-27 Javier Miranda <miranda@adacore.com>
2500
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.
2505
2506 2020-07-27 Javier Miranda <miranda@adacore.com>
2507
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.
2512
2513 2020-07-27 Eric Botcazou <ebotcazou@adacore.com>
2514
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.
2518
2519 2020-07-27 Patrick Bernardi <bernardi@adacore.com>
2520
2521 * Makefile.rtl: Remove X86_TARGET_PAIRS for x86-lynx178elf.
2522
2523 2020-07-27 Ed Schonberg <schonberg@adacore.com>
2524
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.
2528
2529 2020-07-27 Gary Dismukes <dismukes@adacore.com>
2530
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.
2538
2539 2020-07-27 Piotr Trojanek <trojanek@adacore.com>
2540
2541 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference) Extend
2542 existing workaround to 'Pos.
2543
2544 2020-07-27 Bob Duff <duff@adacore.com>
2545
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
2555 base type.
2556
2557 2020-07-23 Arnaud Charlet <charlet@adacore.com>
2558
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
2566 Pragma_CUDA_global.
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
2573 Pragma_CUDA_Global.
2574 * snames.ads-tmpl: Define Name_CUDA_Execute and Name_CUDA_Global.
2575
2576 2020-07-23 Arnaud Charlet <charlet@adacore.com>
2577
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
2581 and Operand_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.
2599
2600 2020-07-23 Arnaud Charlet <charlet@adacore.com>
2601
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.
2605
2606 2020-07-16 Javier Miranda <miranda@adacore.com>
2607
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
2615 variable).
2616
2617 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2618
2619 * sem_ch8.adb (Analyze_Subprogram_Renaming): A renames-as-body
2620 freezes the expression of any expression function that it
2621 renames.
2622
2623 2020-07-16 Ed Schonberg <schonberg@adacore.com>
2624
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
2635 indexed aggregate.
2636
2637 2020-07-16 Bob Duff <duff@adacore.com>
2638
2639 * bindo-diagnostics.adb (Output_Invocation_Related_Suggestions):
2640 Use Cumulative_Restrictions.Set, because Restriction_Active only
2641 works at compile time.
2642
2643 2020-07-16 Bob Duff <duff@adacore.com>
2644
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.
2659 Misc refactoring.
2660 * tbuild.ads, tbuild.adb (Sel_Comp): New functions for building
2661 selected components.
2662
2663 2020-07-16 Eric Botcazou <ebotcazou@adacore.com>
2664
2665 * impunit.adb (Non_Imp_File_Names_95): Remove duplicate entry.
2666
2667 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2668
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.
2674
2675 2020-07-16 Ed Schonberg <schonberg@adacore.com>
2676
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.
2681
2682 2020-07-16 Doug Rupp <rupp@adacore.com>
2683
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.
2688
2689 2020-07-16 Eric Botcazou <ebotcazou@adacore.com>
2690
2691 * exp_ch9.adb (Expand_N_Accept_Statement): Set Parent of the
2692 created block entity to the created block statement.
2693
2694 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2695
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):
2703 New.
2704
2705 2020-07-16 Bob Duff <duff@adacore.com>
2706
2707 * libgnat/s-rident.ads (Restriction_Id): Add
2708 No_Tasks_Unassigned_To_CPU.
2709
2710 2020-07-16 Bob Duff <duff@adacore.com>
2711
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.
2716
2717 2020-07-16 Bob Duff <duff@adacore.com>
2718
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
2722 restriction.
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.
2729
2730 2020-07-16 Gary Dismukes <dismukes@adacore.com>
2731
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.
2738
2739 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2740
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.
2744
2745 2020-07-16 Ghjuvan Lacambre <lacambre@adacore.com>
2746
2747 * sem_case.adb (Build_Choice): Set Is_Static_Expression flag.
2748 (Lit_Of): Update specification to mention Is_Static_Expression
2749 flag.
2750 * sem_ch13.adb (Membership_Entry): Check for N_Others_Choice.
2751
2752 2020-07-16 Bob Duff <duff@adacore.com>
2753
2754 * sem_ch6.adb (Null_Exclusions_Match): New function to check
2755 that the null exclusions match, including in the case addressed
2756 by this AI.
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.
2760
2761 2020-07-16 Justin Squirek <squirek@adacore.com>
2762
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.
2771
2772 2020-07-16 Eric Botcazou <ebotcazou@adacore.com>
2773
2774 * fe.h (Is_OK_Static_Expression): Delete.
2775 * sem_eval.ads (Is_OK_Static_Expression): Remove WARNING note.
2776
2777 2020-07-16 Justin Squirek <squirek@adacore.com>
2778
2779 * einfo.adb, einfo.ads (Is_Named_Access_Type): Created for
2780 readability.
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.
2785
2786 2020-07-16 Piotr Trojanek <trojanek@adacore.com>
2787
2788 * sem_case.adb (Build_Choice): Simplify.
2789
2790 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2791
2792 * frontend.adb: Disable Initialize_Scalars on runtime files.
2793
2794 2020-07-16 Ghjuvan Lacambre <lacambre@adacore.com>
2795
2796 * sem_ch3.adb (Analyze_Object_Declaration): Add
2797 Comes_From_Source call.
2798
2799 2020-07-16 Javier Miranda <miranda@adacore.com>
2800
2801 * exp_attr.adb (Expand_Access_To_Protected_Op): Initialize
2802 variable Sub to Empty to avoid false positive reported by
2803 Codepeer.
2804
2805 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2806
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.
2810
2811 2020-07-16 Javier Miranda <miranda@adacore.com>
2812
2813 * exp_attr.adb (Has_By_Protected_Procedure_Prefixed_View): New
2814 subprogram.
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
2820 subprogram.
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.
2825
2826 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2827
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.
2831
2832 2020-07-16 Arnaud Charlet <charlet@adacore.com>
2833
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
2838 allocated.
2839
2840 2020-07-16 Gary Dismukes <dismukes@adacore.com>
2841
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.
2856
2857 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
2858
2859 * sem_util.adb (Find_Overlaid_Entity): Fix style in comment.
2860 (Note_Possible_Modification): Simplify repeated calls to Ekind.
2861
2862 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
2863
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.
2867
2868 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2869
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.
2889
2890 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2891
2892 * libgnat/s-stposu.adb (Allocate_Any_Controlled): Fix logic in
2893 lock/unlock.
2894
2895 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
2896
2897 * sem_util.adb (Is_Object_Reference): Return True on
2898 N_Target_Name.
2899
2900 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2901
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.
2905
2906 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2907
2908 * sem_ch13.adb (Check_Aspect_Too_Late): Mention -gnat2020 switch
2909 in error message.
2910
2911 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
2912
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
2916 true for Alignment.
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
2920 Standard package.
2921
2922 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
2923
2924 * exp_ch6.adb (Requires_Atomic_Or_Volatile_Copy): Return false
2925 inside an initialization procedure.
2926
2927 2020-07-15 Ghjuvan Lacambre <lacambre@adacore.com>
2928
2929 * sem_util.adb (Is_Renaming): Add ekind checks.
2930
2931 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2932
2933 * doc/gnat_ugn/gnat_utility_programs.rst: Remove doc on obsolete
2934 tools.
2935 * gnat_ugn.texi: Regenerate.
2936
2937 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2938
2939 * sem_res.adb (Resolve_Type_Conversion): Protect against null
2940 entity. Add proper tag for -gnatwr warning.
2941
2942 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2943
2944 * sem_ch6.adb (Analyze_Procedure_Call): Detect use of operators
2945 in a procedure call.
2946 * sem_util.adb: Minor edit.
2947
2948 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
2949
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.
2953
2954 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
2955
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.
2959
2960 2020-07-15 Arnaud Charlet <charlet@adacore.com>
2961
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
2965 dependencies.
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
2970 subpools.
2971
2972 2020-07-15 Yannick Moy <moy@adacore.com>
2973
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 =>
2998 Off.
2999
3000 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
3001
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.
3005
3006 2020-07-15 Javier Miranda <miranda@adacore.com>
3007
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.
3011
3012 2020-07-15 Arnaud Charlet <charlet@adacore.com>
3013
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.
3020
3021 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
3022
3023 * exp_ch5.adb (Expand_Assign_Array): Use short-circuit operator
3024 (style).
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
3030 type conversions.
3031
3032 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
3033
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
3037 an entity.
3038 * sem_util.adb (Is_Effectively_Volatile): Refactor to avoid
3039 unnecessary computation.
3040
3041 2020-07-15 Arnaud Charlet <charlet@adacore.com>
3042
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):
3055 New.
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.
3068
3069 2020-07-15 Arnaud Charlet <charlet@adacore.com>
3070
3071 * sem_aggr.adb (Resolve_Iterated_Component_Association): Ensure
3072 Typ is never accessed uninitialized.
3073
3074 2020-07-15 Piotr Trojanek <trojanek@adacore.com>
3075
3076 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Fix typo.
3077 * gnat_rm.texi: Regenerate.
3078 * libgnat/s-secsta.ads (Memory_Alignment): Likewise.
3079
3080 2020-07-15 Gary Dismukes <dismukes@adacore.com>
3081
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
3086 fragments.
3087 * sem_aggr.adb: Reformat and add a comma in a comment.
3088
3089 2020-07-15 Eric Botcazou <ebotcazou@adacore.com>
3090
3091 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Use the Sloc of
3092 the delay statement in the expansion.
3093
3094 2020-07-15 Ed Schonberg <schonberg@adacore.com>
3095
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.
3103
3104 2020-07-15 Justin Squirek <squirek@adacore.com>
3105
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.
3109
3110 2020-07-15 Arnaud Charlet <charlet@adacore.com>
3111
3112 * libgnat/g-socket.adb (Wait_On_Socket): Fix potentially
3113 uninitialized variable.
3114
3115 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3116
3117 * sem_ch8.adb (Find_Direct_Name): Fix code to match the comment.
3118
3119 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
3120
3121 * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Address>:
3122 Issue an unconditional warning for an overlay that changes the
3123 scalar storage order.
3124
3125 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3126
3127 * sem_ch8.adb (Is_Actual_Parameter): Fix processing when parent
3128 is a procedure call statement; extend comment.
3129
3130 2020-07-10 Bob Duff <duff@adacore.com>
3131
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.
3139
3140 2020-07-10 Ed Schonberg <schonberg@adacore.com>
3141
3142 * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Create a
3143 proper signature when the access type denotes a parameterless
3144 subprogram.
3145 * exp_ch6.adb (Expand_Call): Handle properly a parameterless
3146 indirect call when the corresponding access type has contracts.
3147
3148 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
3149
3150 * exp_aggr.adb
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
3154 Is_Static_Element.
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
3170 true for null.
3171 (Late_Expansion): Do not expand further if the assignment to the
3172 target can be done directly by the back end.
3173
3174 2020-07-10 Arnaud Charlet <charlet@adacore.com>
3175
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.
3180
3181 2020-07-10 Pascal Obry <obry@adacore.com>
3182
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.
3188
3189 2020-07-10 Pascal Obry <obry@adacore.com>
3190
3191 * libgnat/g-socket.adb: Minor style fixes.
3192
3193 2020-07-10 Javier Miranda <miranda@adacore.com>
3194
3195 * sem_util.adb
3196 (Immediate_Context_Implies_Is_Potentially_Unevaluated): New
3197 subprogram.
3198 (Is_Potentially_Unevaluated): Do not stop climbing the tree on
3199 the first candidate subexpression; required to handle nested
3200 expressions.
3201
3202 2020-07-10 Gary Dismukes <dismukes@adacore.com>
3203
3204 * exp_aggr.adb, exp_spark.adb, sem_ch13.ads, sem_ch13.adb,
3205 snames.ads-tmpl: Minor reformatting and typo fixes.
3206
3207 2020-07-10 Yannick Moy <moy@adacore.com>
3208
3209 * sem_util.adb (Has_Enabled_Property): Add handling of
3210 non-variable objects.
3211
3212 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3213
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).
3218
3219 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3220
3221 * einfo.ads (E_Protected_Object): Enumeration literal removed.
3222 * lib-xref.ads (Xref_Entity_Letters): Remove reference to
3223 removed literal.
3224 * sem_ch3.adb (Check_Completion): Likewise.
3225 * sem_util.adb (Has_Enabled_Property): Likewise.
3226
3227 2020-07-10 Arnaud Charlet <charlet@adacore.com>
3228
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
3233 flag is set.
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.
3253
3254 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
3255
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.
3266
3267 2020-07-10 Javier Miranda <miranda@adacore.com>
3268
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).
3273
3274 2020-07-10 Yannick Moy <moy@adacore.com>
3275
3276 * sem_res.adb (Resolve_Actuals): Protect call to
3277 Is_Valued_Procedure.
3278
3279 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3280
3281 * sem_ch3.adb (Process_Discriminants): Revert recent change to
3282 location of Set_Ekind; detect effectively volatile discriminants
3283 by their type only.
3284
3285 2020-07-10 Joffrey Huguet <huguet@adacore.com>
3286
3287 * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Add global
3288 contract (Global => null) to all functions.
3289
3290 2020-07-10 Ed Schonberg <schonberg@adacore.com>
3291
3292 * aspects.ads: Add Aspect_Aggregate.
3293 * exp_aggr.adb (Expand_Container_Aggregate): Expand positional
3294 container aggregates into separate initialization and insertion
3295 operations.
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
3302 * sem_ch13.adb
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
3307 resolution.
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.
3314
3315 2020-07-10 Arnaud Charlet <charlet@adacore.com>
3316
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
3323 this code.
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
3329 this code.
3330 * libgnat/a-nbnbre.adb (Normalize): Fix handling of Num = 0
3331 leading to an exception.
3332
3333 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
3334
3335 * freeze.adb (Freeze_Expr_Types): Replace call to Find_Aspect
3336 with call to Find_Value_Of_Aspect and adjust accordingly.
3337
3338 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
3339
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.
3343
3344 2020-07-10 Eric Botcazou <ebotcazou@adacore.com>
3345
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.
3353
3354 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3355
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
3359 assertion.
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.
3370
3371 2020-07-10 Yannick Moy <moy@adacore.com>
3372
3373 * debug.adb: Update comments to free usage of -gnatdF.
3374
3375 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3376
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
3381 delta_aggregate.
3382 (Expand_SPARK_N_Attribute_Reference): Call the refactored
3383 routine.
3384
3385 2020-07-10 Piotr Trojanek <trojanek@adacore.com>
3386
3387 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Fix
3388 expansion of attribute Update.
3389
3390 2020-07-10 Arnaud Charlet <charlet@adacore.com>
3391
3392 * sem.adb (Walk_Library_Items): Fix handling of Ghost units.
3393
3394 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3395
3396 * tracebak.c [generic implementation]: Add pragma GCC diagnostic
3397 to disable warning about __builtin_frame_address.
3398
3399 2020-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
3400
3401 * socket.c [_WIN32] (__gnat_minus_500ms): Parentheses around &&
3402 operations. Remove notes about TN in comment.
3403
3404 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3405
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.
3433
3434 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3435
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.
3438
3439 2020-07-08 Javier Miranda <miranda@adacore.com>
3440
3441 * exp_ch9.adb
3442 (Build_Class_Wide_Master): Insert the declaration of _Master
3443 before its use; required to avoid assertion failure in the
3444 backend.
3445
3446 2020-07-08 Arnaud Charlet <charlet@adacore.com>
3447
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.
3453
3454 2020-07-08 Vasiliy Fofanov <fofanov@adacore.com>
3455
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.
3461
3462 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3463
3464 * erroutc.adb (Matches): Fix comments.
3465
3466 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3467
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
3473 declared locally.
3474
3475 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3476
3477 * freeze.adb (In_Expanded_Body): Return true for the body of a
3478 generated predicate function.
3479
3480 2020-07-08 Gary Dismukes <dismukes@adacore.com>
3481
3482 * sem_attr.adb: Remove hyphens in comments, plus minor code
3483 reformatting.
3484 * sem_ch13.adb: Fix typo (that => than).
3485 * sem_util.adb: Add hyphen in comment ("class-wide").
3486
3487 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3488
3489 * freeze.adb (Freeze_Array_Type): Add comment on implementation
3490 choice for byte-packed array types.
3491
3492 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3493
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
3508 in comment.
3509
3510 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3511
3512 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Call
3513 Analyze_Aspect_Specifications after setting Ekind of the
3514 analyzed entity.
3515 * sem_ch13.adb (Analyze_Aspect_Yield): Remove minimal decoration
3516 of generic subprograms.
3517
3518 2020-07-08 Arnaud Charlet <charlet@adacore.com>
3519
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.
3529
3530 2020-07-08 Ed Schonberg <schonberg@adacore.com>
3531
3532 * sem_util.adb (Build_Class_Wide_Clone_Body): Update entities to
3533 refer to the right spec.
3534
3535 2020-07-08 Bob Duff <duff@adacore.com>
3536
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.
3541
3542 2020-07-08 Gary Dismukes <dismukes@adacore.com>
3543
3544 * par-ch4.adb (P_Iterated_Component_Association): Typo
3545 corrections.
3546
3547 2020-07-08 Ed Schonberg <schonberg@adacore.com>
3548
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
3561 when present.
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
3567 OF keyword.
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
3572 Iterator_Filter.
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.
3577
3578 2020-07-08 Yannick Moy <moy@adacore.com>
3579
3580 * sem_util.ads, sem_util.adb (Is_Attribute_Loop_Entry): New
3581 function for GNATProve.
3582
3583 2020-07-08 Ghjuvan Lacambre <lacambre@adacore.com>
3584
3585 * sem_ch13.adb (Analyze_Record_Representation_Clause,
3586 Check_Record_Representation_Clause): Add expected and actual
3587 size to error message.
3588
3589 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3590
3591 * sem_util.ads, sem_util.adb (Safe_To_Capture_Value): Return
3592 True for in-parameters.
3593
3594 2020-07-08 Justin Squirek <squirek@adacore.com>
3595
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
3600 else" operators.
3601
3602 2020-07-08 Gary Dismukes <dismukes@adacore.com>
3603
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
3607 functions.
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.
3625
3626 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3627
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.
3633
3634 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3635
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.
3640
3641 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3642
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
3647 in comment.
3648 (Get_Current_Value_Condition): Fix layout in comment.
3649 * sem_ch5.adb (Analyze_Cond_Then): Replace commented condition
3650 with pragma Assert.
3651
3652 2020-07-08 Piotr Trojanek <trojanek@adacore.com>
3653
3654 * exp_ch5.adb (Expand_N_If_Statement): Detect True/False
3655 prefixed with Standard.
3656
3657 2020-07-08 Bob Duff <duff@adacore.com>
3658
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.
3663
3664 2020-07-08 Eric Botcazou <ebotcazou@adacore.com>
3665
3666 * exp_ch4.adb (Narrow_Large_Operation): Use the base type instead
3667 of the first subtype of standard integer types as narrower type.
3668
3669 2020-07-07 Eric Botcazou <ebotcazou@adacore.com>
3670
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.
3674
3675 2020-07-07 Bob Duff <duff@adacore.com>
3676
3677 * treepr.adb (Print_Node): Add code to test Is_Extension.
3678
3679 2020-07-07 Arnaud Charlet <charlet@adacore.com>
3680
3681 * sem_ch4.adb (Try_Container_Indexing): Add ??? comment. Protect
3682 against malformed tree in case of errors.
3683
3684 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3685
3686 * einfo.adb, sem_ch10.adb, sem_ch12.adb, sem_ch8.adb: Use
3687 Is_Generic_Subprogram.
3688
3689 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3690
3691 * sem_ch8.adb (Analyze_Use_Package): Replace low-level,
3692 error-prone Ekind_In tests with high-level Is_Generic_Subprogram
3693 and Is_Subprogram.
3694
3695 2020-07-07 Arnaud Charlet <charlet@adacore.com>
3696
3697 * sem_ch6.adb (Check_Formal_Subprogram_Conformance): New
3698 subprogram to handle checking without systematically emitting an
3699 error.
3700 (Check_Conformance): Update call to
3701 Check_Formal_Subprogram_Conformance and fix handling of Conforms
3702 and Errmsg parameters.
3703
3704 2020-07-07 Arnaud Charlet <charlet@adacore.com>
3705
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
3716 back to spec.
3717
3718 2020-07-07 Ed Schonberg <schonberg@adacore.com>
3719
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
3726 parameter.
3727
3728 2020-07-07 Justin Squirek <squirek@adacore.com>
3729
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
3733 raise.
3734
3735 2020-07-07 Steve Baird <baird@adacore.com>
3736
3737 * sem_attr.adb (Eval_Attribute): Generalize static evaluation of
3738 Size attribute references to also handle
3739 Max_Size_In_Storage_Elements references.
3740
3741 2020-07-07 Javier Miranda <miranda@adacore.com>
3742
3743 * sem_util.adb (Is_Potentially_Unevaluated): Code cleanup.
3744
3745 2020-07-07 Eric Botcazou <ebotcazou@adacore.com>
3746
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.
3759
3760 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3761
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.
3766
3767 2020-07-07 Arnaud Charlet <charlet@adacore.com>
3768
3769 * sem_ch6.adb (Check_Conformance): Remove unnecessary (and
3770 wrong) code.
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
3775 Error_Msg_Sloc.
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.
3782
3783 2020-07-07 Ed Schonberg <schonberg@adacore.com>
3784
3785 * freeze.adb (Freeze_Expr_Types): Freeze the designated type of
3786 the explicit dereference.
3787
3788 2020-07-07 Javier Miranda <miranda@adacore.com>
3789
3790 * sem_util.adb (Is_Potentially_Unevaluated): Protect reading
3791 attribute Etype.
3792
3793 2020-07-07 Bob Duff <duff@adacore.com>
3794
3795 * libgnat/g-catiio.adb (Value, Parse_ISO_8601): Unsuppress
3796 checks, and don't rely on 'Valid.
3797
3798 2020-07-07 Arnaud Charlet <charlet@adacore.com>
3799
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.
3804
3805 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3806
3807 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
3808 (Validity Checking): Add "p" to the list of switches enabled by
3809 -gnatVa.
3810 * gnat_ugn.texi: Regenerate.
3811
3812 2020-07-07 Ghjuvan Lacambre <lacambre@adacore.com>
3813
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.
3822
3823 2020-07-07 Gary Dismukes <dismukes@adacore.com>
3824
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).
3834
3835 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3836
3837 * sem_aggr.adb (Resolve_Delta_Array_Aggregate): Make Index_Type
3838 a constant.
3839
3840 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3841
3842 * exp_aggr.adb (Expand_N_Delta_Aggregate): Use type of the delta
3843 base expression for the anonymous object of the delta aggregate.
3844
3845 2020-07-07 Javier Miranda <miranda@adacore.com>
3846
3847 * sem_util.ads (Interval_Lists): Reordering routine.
3848 * sem_util.adb (Interval_Lists): Reordering routines to keep
3849 them alphabetically ordered.
3850
3851 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3852
3853 * sem_attr.adb (Resolve_Attribute): Do not call
3854 Check_Non_Static_Context.
3855
3856 2020-07-07 Arnaud Charlet <charlet@adacore.com>
3857
3858 * sem_elab.adb (Is_Guaranteed_ABE): Take into account null
3859 procedures.
3860
3861 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3862
3863 * sem_ch5.adb (Analyze_Assignment): Reuse Is_Assignable.
3864
3865 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3866
3867 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Add scalar
3868 range checks for 'Update on arrays just like for 'Update on
3869 records.
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.
3874
3875 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3876
3877 * sem.ads (Sem): Fix description.
3878
3879 2020-07-07 Piotr Trojanek <trojanek@adacore.com>
3880
3881 * sem_ch13.adb (Analyze_Relaxed_Parameter): Fix for protected
3882 entries.
3883
3884 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
3885
3886 * checks.adb (Apply_Scalar_Range_Check): Use Is_RTE.
3887
3888 2020-07-06 Bob Duff <duff@adacore.com>
3889
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.
3902
3903 2020-07-06 Bob Duff <duff@adacore.com>
3904
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
3911 each other.
3912
3913 2020-07-06 Bob Duff <duff@adacore.com>
3914
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
3921 validity.
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.
3929
3930 2020-07-06 Bob Duff <duff@adacore.com>
3931
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.
3936
3937 2020-07-06 Thomas Quinot <quinot@adacore.com>
3938
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.
3943
3944 2020-07-06 Gary Dismukes <dismukes@adacore.com>
3945
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.
3952
3953 2020-07-06 Javier Miranda <miranda@adacore.com>
3954
3955 * sem_util.ads (Interval_Lists.Aggregate_Intervals): New
3956 subprogram.
3957 * sem_util.adb (Has_Null_Others_Choice,
3958 Non_Static_Or_Null_Range, Interval_Lists.Aggregate_Intervals):
3959 New subprograms.
3960 (Is_Potentially_Unevaluated): Adding support to detect
3961 potentially unevaluated components of array aggregates.
3962
3963 2020-07-06 Bob Duff <duff@adacore.com>
3964
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
3976 before.
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
3982 standard number.
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.
3989
3990 2020-07-06 Ed Schonberg <schonberg@adacore.com>
3991
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.
3996
3997 2020-07-06 Justin Squirek <squirek@adacore.com>
3998
3999 * sem_ch12.adb (Analyze_Associations): Add check for errors on
4000 the generic formal before continuing with instantiation.
4001
4002 2020-07-06 Arnaud Charlet <charlet@adacore.com>
4003
4004 * libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
4005 libgnat/a-nbnbin__gmp.adb: Use more Valid_Big_Integer.
4006
4007 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
4008
4009 * exp_util.ads (Get_Index_Subtype): Fix duplicate "Last".
4010
4011 2020-07-06 Ed Schonberg <schonberg@adacore.com>
4012
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
4017 or semantically.
4018
4019 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
4020
4021 * sem_attr.adb (Eval_Attribute): Check if constant has an
4022 initialization expression.
4023
4024 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
4025
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.
4030
4031 2020-07-06 Gary Dismukes <dismukes@adacore.com>
4032
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
4038 will be done.
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
4050 expression).
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.
4055
4056 2020-07-06 Ed Schonberg <schonberg@adacore.com>
4057
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.
4063
4064 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
4065
4066 * sem_attr.adb (Analyze_Attribute): Reuse SPARK_Implicit_Load.
4067
4068 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
4069
4070 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Propagate
4071 exception when switch -gnatdk is used and no previous errors are
4072 present.
4073 * sem_eval.adb (Compile_Time_Known_Value, Is_In_Range):
4074 Likewise.
4075 * sem_warn.adb (Operand_Has_Warnings_Suppressed): Likewise.
4076
4077 2020-07-06 Richard Kenner <kenner@adacore.com>
4078
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.
4082
4083 2020-07-06 Eric Botcazou <ebotcazou@adacore.com>
4084
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.
4090
4091 2020-07-06 Eric Botcazou <ebotcazou@adacore.com>
4092
4093 * sem_attr.adb (Eval_Attribute): Do not apply range checks in
4094 the case of 'Pos applied to an integer type here.
4095
4096 2020-07-06 Ed Schonberg <schonberg@adacore.com>
4097
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
4102 declarattion.
4103
4104 2020-07-06 Eric Botcazou <ebotcazou@adacore.com>
4105
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.
4113
4114 2020-07-06 Piotr Trojanek <trojanek@adacore.com>
4115
4116 * sem_res.adb (Resolve_Range): Resolve both low and high bounds
4117 with the range type.
4118
4119 2020-07-06 Arnaud Charlet <charlet@adacore.com>
4120
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.
4125
4126 2020-07-06 Eric Botcazou <ebotcazou@adacore.com>
4127
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.
4134
4135 2020-07-06 Gary Dismukes <dismukes@adacore.com>
4136
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
4142 interfaces).
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.
4146
4147 2020-07-06 Arnaud Charlet <charlet@adacore.com>
4148
4149 * par-ch6.adb (P_Return_Object_Declaration): Set
4150 Has_Init_Expression flag.
4151
4152 2020-07-02 Eric Botcazou <ebotcazou@adacore.com>
4153
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.
4158
4159 2020-06-26 Eric Botcazou <ebotcazou@adacore.com>
4160
4161 * exp_ch4.adb (Expand_Set_Membership): Expand the membership test
4162 using left associativity instead of right associativity.
4163
4164 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4165
4166 * gcc-interface/utils2.c (build_binary_op): Remove space.
4167
4168 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4169
4170 * gcc-interface/trans.c (gnat_to_gnu) <N_Allocator>: Minor tweaks.
4171 Call Has_Constrained_Partial_View on base type of designated type.
4172
4173 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4174
4175 * gcc-interface/utils.c (gnat_write_global_declarations): Output
4176 integral global variables first and the imported functions later.
4177
4178 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4179
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.
4183
4184 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4185
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.
4195
4196 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4197
4198 * gcc-interface/decl.c (elaborate_expression): Replace calls to
4199 Is_OK_Static_Expression with Compile_Time_Known_Value.
4200
4201 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4202
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.
4205
4206 2020-06-23 Eric Botcazou <ebotcazou@adacore.com>
4207
4208 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Do
4209 not test Is_Bit_Packed_Array in the memset path.
4210
4211 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4212
4213 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Do not deal
4214 with 'Pos or 'Val.
4215 (Attribute_to_gnu): Likewise.
4216 * gcc-interface/utils.c (create_field_decl): Small formatting fix.
4217
4218 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4219
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.
4231
4232 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4233
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.
4243
4244 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4245
4246 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not apply
4247 range checks to allocators here.
4248
4249 2020-06-19 Justin Squirek <squirek@adacore.com>
4250
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
4253 specifications.
4254
4255 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4256
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.
4260
4261 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4262
4263 * sem_ch3.adb (Is_Visible_Component): Reason only on the private
4264 status of the original type in an instance body.
4265
4266 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4267
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.
4270
4271 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4272
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.
4277
4278 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4279
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.
4283
4284 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4285
4286 * exp_attr.adb (Get_Integer_Type): Return the largest supported
4287 unsigned integer type if need be.
4288
4289 2020-06-19 Justin Squirek <squirek@adacore.com>
4290
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.
4295
4296 2020-06-19 Ed Schonberg <schonberg@adacore.com>
4297
4298 * sem_ch6.adb (Analyze_Expression_Function): Do not indicate
4299 that the function has a completion if it appears within a Ghost
4300 generic package.
4301
4302 2020-06-19 Bob Duff <duff@adacore.com>
4303
4304 * libgnat/a-ststbo.adb (Write): Replace pragma Assert with "if
4305 ... raise Constraint_Error".
4306
4307 2020-06-19 Justin Squirek <squirek@adacore.com>
4308
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.
4312
4313 2020-06-19 Javier Miranda <miranda@adacore.com>
4314
4315 * exp_ch3.ads (Ensure_Activation_Chain_And_Master): New
4316 subprogram.
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
4325 the bounds.
4326
4327 2020-06-19 Arnaud Charlet <charlet@adacore.com>
4328
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.
4332
4333 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4334
4335 * checks.ads: Remove excessive whitespace in declarations of
4336 functions for check suppression.
4337
4338 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4339
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.
4345
4346 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4347
4348 * sem_attr.adb (Analyze_Attribute): Reject illegal positional
4349 component associations; fix syntax in comment about named
4350 component associations.
4351
4352 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4353
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
4357 delta aggregate.
4358
4359 2020-06-19 Arnaud Charlet <charlet@adacore.com>
4360
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.
4365
4366 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4367
4368 * sem_prag.adb (Process_Convention): Revert previous change.
4369
4370 2020-06-19 Eric Botcazou <ebotcazou@adacore.com>
4371
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.
4381
4382 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4383
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.
4387
4388 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4389
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.
4394
4395 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4396
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).
4402
4403 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4404
4405 * exp_attr.adb (Build_Record_VS_Func): Strip privacy and type
4406 derivation from the root type when 'Valid_Scalars is applied to
4407 a class-wide type.
4408
4409 2020-06-19 Piotr Trojanek <trojanek@adacore.com>
4410
4411 * checks.adb (Apply_Parameter_Validity_Checks): Remove testing
4412 of Check_Validity_Of_Parameters for every formal parameter and
4413 function result.
4414
4415 2020-06-19 Arnaud Charlet <charlet@adacore.com>
4416
4417 * sem_warn.adb (Warn_On_Overlapping_Actuals): Add missing
4418 warning tag.
4419
4420 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4421
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.
4426
4427 2020-06-18 Arnaud Charlet <charlet@adacore.com>
4428
4429 * sem_ch6.ads, sem_ch6.adb (Check_Formal_Conformance): New
4430 subprogram.
4431 (Check_Conformance): Move code to Check_Formal_Conformance.
4432 * sem_ch8.adb (Analyze_Subprogram_Renaming): Check for formal
4433 conformance when needed.
4434
4435 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4436
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
4457 numeric types.
4458 <N_Type_Conversion>: Use explicit criterion.
4459
4460 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4461
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
4468 indication case.
4469 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not apply
4470 range checks to allocators here.
4471
4472 2020-06-18 Javier Miranda <miranda@adacore.com>
4473
4474 * exp_ch6.adb (BIP_Suffix_Kind, Is_Build_In_Place_Entity): Move
4475 declarations...
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
4487 formals.
4488 * sprint.adb (Write_Itype): Output extra formals of subprogram
4489 types.
4490
4491 2020-06-18 Ghjuvan Lacambre <lacambre@adacore.com>
4492
4493 * errout.adb (Write_Error_Summary): Display number of warnings
4494 treated as errors.
4495 * errutil.ads: Update comment.
4496
4497 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4498
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.
4505
4506 2020-06-18 Steve Baird <baird@adacore.com>
4507
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).
4520
4521 2020-06-18 Steve Baird <baird@adacore.com>
4522
4523 * exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a
4524 default initial condition check for the declaration of an
4525 imported object.
4526
4527 2020-06-18 Arnaud Charlet <charlet@adacore.com>
4528
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
4542 streaming.
4543 * gnat_rm.texi: Regenerate.
4544
4545 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4546
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.
4550
4551 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4552
4553 * sem_prag.adb (Process_Convention): Give a warning on C_Variadic_n
4554 being applied to a subprogram with exactly n parameters.
4555
4556 2020-06-18 Arnaud Charlet <charlet@adacore.com>
4557
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.
4564
4565 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4566
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.
4573
4574 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4575
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
4591 and Position to...
4592 * sem_attr.adb (Eval_Attribute): ...here. Move up Alignment for
4593 objects and use Compile_Time_Known_Attribute in this case too.
4594
4595 2020-06-18 Ghjuvan Lacambre <lacambre@adacore.com>
4596
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
4601 function.
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
4607 Error_Msg_Object.
4608 * errutil.adb (Error_Msg): Set new Compile_Time_Pragma field in
4609 Error_Msg_Object.
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.
4616
4617 2020-06-18 Arnaud Charlet <charlet@adacore.com>
4618
4619 * sem_ch4.adb (Check_Compatible_Profiles): Add explicit
4620 initialization.
4621
4622 2020-06-18 Piotr Trojanek <trojanek@adacore.com>
4623
4624 * checks.adb (Generate_Index_Checks): Handle
4625 N_Subtype_Indication returned from Scalar_Range.
4626
4627 2020-06-18 Piotr Trojanek <trojanek@adacore.com>
4628
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
4632 where it is used.
4633
4634 2020-06-18 Piotr Trojanek <trojanek@adacore.com>
4635
4636 * sem_eval.adb (Check_Non_Static_Context): Use Is_RTE.
4637
4638 2020-06-18 Arnaud Charlet <charlet@adacore.com>
4639
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
4645 function.
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
4655 involved.
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.
4661
4662 2020-06-18 Bob Duff <duff@adacore.com>
4663
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.
4670
4671 2020-06-18 Javier Miranda <miranda@adacore.com>
4672
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.
4677
4678 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4679
4680 * exp_attr.adb (Get_Integer_Type): Pick an unsigned type based
4681 on the Esize of the base type of the input type.
4682
4683 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4684
4685 * exp_ch4.adb (Expand_Array_Equality): For the optimization of
4686 the 2-element case, build new expression lists for the indices.
4687
4688 2020-06-18 Richard Kenner <kenner@adacore.com>
4689
4690 * sem_util.adb (Enclosing_Subprogram): No longer need
4691 Convention_Protected.
4692
4693 2020-06-18 Claire Dross <dross@adacore.com>
4694
4695 * sem_util.adb (Is_OK_Volatile_Context): Return False on
4696 definitions of constants declared in declare expressions.
4697
4698 2020-06-18 Piotr Trojanek <trojanek@adacore.com>
4699
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.
4705
4706 2020-06-18 Javier Miranda <miranda@adacore.com>
4707
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
4717
4718 2020-06-18 Eric Botcazou <ebotcazou@adacore.com>
4719
4720 * exp_ch4.adb (Optimize_Length_Comparison): Accept 32-bit values
4721 in the full unsigned range.
4722
4723 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4724
4725 * checks.adb (Apply_Universal_Integer_Attribute_Checks): Do not do
4726 anything when the type of the node is already Universal_Integer.
4727
4728 2020-06-17 Arnaud Charlet <charlet@adacore.com>
4729
4730 * sem_ch10.adb (Expand_With_Clause): Add missing handling of
4731 N_Generic_Subprogram_Declaration, N_Subprogram_Declaration,
4732 N_Subprogram_Body.
4733
4734 2020-06-17 Ed Schonberg <schonberg@adacore.com>
4735
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.
4741
4742 2020-06-17 Gary Dismukes <dismukes@adacore.com>
4743
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
4752 Corresponding_Spec.
4753
4754 2020-06-17 Javier Miranda <miranda@adacore.com>
4755
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
4760 subprograms.
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):
4764 Add calls to Yield.
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
4769 Has_Yield_Aspect.
4770 * sem_ch8.adb (Analyze_Subprogram_Renaming): Check consistency
4771 of Has_Yield in the actual subprogram of a generic
4772 instantiation.
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.
4779
4780 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4781
4782 * exp_ch4.adb (Expand_N_Op_Expon): Replace all occurrences of
4783 the original right operand with the relocated version.
4784
4785 2020-06-17 Javier Miranda <miranda@adacore.com>
4786
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
4795 Extra_Formals.
4796
4797 2020-06-17 Bob Duff <duff@adacore.com>
4798
4799 * par.adb (P_Basic_Declarative_Items): Update comment about
4800 Declare_Expression.
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.
4804
4805 2020-06-17 Arnaud Charlet <charlet@adacore.com>
4806
4807 * sem_res.adb (Valid_Conversion): Change error message to make
4808 it more user-friendly.
4809
4810 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4811
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.
4818
4819 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
4820
4821 * einfo.adb (Is_Relaxed_Initialization_State): Add reference to
4822 SPARK RM.
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.
4828
4829 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4830
4831 * cstand.adb (Stloc): Change to a renaming.
4832 (Staloc): Likewise.
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.
4850
4851 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4852
4853 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
4854 Remove condition added for scalar types.
4855
4856 2020-06-17 Gary Dismukes <dismukes@adacore.com>
4857
4858 * exp_ch3.ads (Build_Access_Subprogram_Wrapper_Body): Adjust
4859 colon columns; reformat comment.
4860 * exp_ch3.adb
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
4866 comment.
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.
4870
4871 2020-06-17 Bob Duff <duff@adacore.com>
4872
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
4886 checks earlier.
4887
4888 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
4889
4890 * exp_attr.adb (Get_Integer_Type): Use standard types without
4891 a specific size.
4892 * sem_res.adb (Resolve_Unchecked_Type_Conversion): Remove a
4893 redundant intermediate conversion to Universal_Integer.
4894
4895 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
4896
4897 * sem_util.ads, sem_util.adb (Get_Iterable_Type_Primitive): Fix
4898 comment and enforce it with an assertion in the body.
4899
4900 2020-06-17 Ed Schonberg <schonberg@adacore.com>
4901
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
4917 subprogram.
4918 * sem_prag.adb (Build_Access_Subprogram_Wrapper / _Body): Moved
4919 to sem_ch3.adb and exp_ch3.adb.
4920
4921 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
4922
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.
4928
4929 2020-06-17 Arnaud Charlet <charlet@adacore.com>
4930
4931 * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Remove obsolete
4932 comments.
4933
4934 2020-06-17 Gary Dismukes <dismukes@adacore.com>
4935
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
4972 function.
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
4991 Static.
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
5006 enabled.
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
5015 expression.
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
5050 static expressions.
5051
5052 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
5053
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.
5061
5062 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
5063
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.
5068
5069 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
5070
5071 * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
5072 Do not replace the bound for an array type if it is public.
5073
5074 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
5075
5076 * exp_ch4.adb (Optimize_Length_Comparison): Make sure the base
5077 types are the same when comparing Y'Last and X'Last directly.
5078
5079 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
5080
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
5084 for scalar types.
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.
5093
5094 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
5095
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.
5100
5101 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
5102
5103 * checks.adb (Generate_Range_Check): Simplify redundant
5104 condition.
5105 * sem_ch3.adb (Check_Initialization, Process_Discriminants):
5106 Likewise.
5107 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Likewise.
5108
5109 2020-06-17 Eric Botcazou <ebotcazou@adacore.com>
5110
5111 * exp_fixd.adb (Build_Conversion): Also preserve the
5112 Conversion_OK flag of an inner conversion.
5113
5114 2020-06-17 Piotr Trojanek <trojanek@adacore.com>
5115
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
5120 GNAT).
5121
5122 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5123
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.
5133
5134 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5135
5136 * sem_ch4.adb (Common_Type): Go to Underlying_Full_View, if any.
5137
5138 2020-06-16 Richard Kenner <kenner@adacore.com>
5139
5140 * exp_unst.adb (Subp_Index): Change way we detect internal
5141 protected subprograms.
5142
5143 2020-06-16 Richard Kenner <kenner@adacore.com>
5144
5145 * comperr.adb (Compiler_Abort): Clarify message displayed to
5146 customers.
5147
5148 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5149
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.
5155
5156 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5157
5158 * einfo.adb, exp_spark.adb, exp_util.adb, sem_eval.adb: Replace
5159 "Ekind ... in Object_Kind" with "Is_Object (...)".
5160
5161 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5162
5163 * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix typo in
5164 comment.
5165
5166 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5167
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
5171 indexed component.
5172
5173 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5174
5175 * freeze.adb (Freeze_Expression): Use consistent style and
5176 formatting in a couple of cases.
5177
5178 2020-06-16 Steve Baird <baird@adacore.com>
5179
5180 * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Uncomment the
5181 commented-out Integer_Literal aspect specification for type
5182 Big_Integer.
5183
5184 2020-06-16 Javier Miranda <miranda@adacore.com>
5185
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.
5198
5199 2020-06-16 Bob Duff <duff@adacore.com>
5200
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
5210 Tok_Declare.
5211 * par.adb (P_Basic_Declarative_Items): Add parameter
5212 Declare_Expression so we can tailor the error message about
5213 incorrect bodies.
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
5241 Nkind_In.
5242
5243 2020-06-16 Arnaud Charlet <charlet@adacore.com>
5244
5245 * sem_aux.ads, sem_aux.adb (Is_Record_Or_Limited_Type): New
5246 function.
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.
5250
5251 2020-06-16 Ed Schonberg <schonberg@adacore.com>
5252
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.
5258
5259 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5260
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.
5264
5265 2020-06-16 Steve Baird <baird@adacore.com>
5266
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
5272 Sem_Util.
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
5295 making this check.
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.
5300
5301 2020-06-16 Arnaud Charlet <charlet@adacore.com>
5302
5303 * sem_aggr.adb (Resolve_Extension_Aggregate): Fix implementation
5304 of AI05-0115 by checking the correct type.
5305
5306 2020-06-16 Arnaud Charlet <charlet@adacore.com>
5307
5308 * sem_ch6.adb (Analyze_Subprogram_Specification): Generate error
5309 message for functions returning interfaces.
5310
5311 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5312
5313 * sem_ch13.adb (Membership_Entry): Relax assertion to also
5314 recognize qualified identifiers.
5315
5316 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5317
5318 * exp_util.adb (Evaluate_Name): Force evaluation of operators.
5319
5320 2020-06-16 Arnaud Charlet <charlet@adacore.com>
5321
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
5328 equality node.
5329 * sem_type.ads: Fix typo in comment.
5330
5331 2020-06-16 Ghjuvan Lacambre <lacambre@adacore.com>
5332
5333 * sem_attr.adb (Analyze_Attribute): Add
5334 Check_Not_Incomplete_Type call.
5335
5336 2020-06-16 Gary Dismukes <dismukes@adacore.com>
5337
5338 * sem_ch6.adb: Add closing paren in a comment.
5339 * sem_util.adb: Correct comment typo (aggreate => aggregate).
5340
5341 2020-06-16 Javier Miranda <miranda@adacore.com>
5342
5343 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
5344 Code cleanup.
5345
5346 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5347
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.
5352
5353 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5354
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.
5358
5359 2020-06-16 Javier Miranda <miranda@adacore.com>
5360
5361 * restrict.adb (Global_No_Tasking): Adding
5362 Targparm.Restrictions_On_Target Fixes regressions with zfp.
5363
5364 2020-06-16 Ed Schonberg <schonberg@adacore.com>
5365
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.
5371
5372 2020-06-16 Piotr Trojanek <trojanek@adacore.com>
5373
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.
5380
5381 2020-06-16 Eric Botcazou <ebotcazou@adacore.com>
5382
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.
5397
5398 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
5399
5400 * sem_eval.ads (Predicates_Match): Fix description.
5401 * sem_eval.adb (Predicates_Match): Rewrite.
5402
5403 2020-06-15 Ed Falis <falis@adacore.com>
5404
5405 * Makefile.rtl: Change name of hie/g-io__vxworks-ppc-cert.adb.
5406
5407 2020-06-15 Arnaud Charlet <charlet@adacore.com>
5408
5409 * sem_ch8.adb (Premature_Usage): Add support for subtype
5410 references and replace set of if-then-else by a case statement.
5411
5412 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5413
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.
5417
5418 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
5419
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.
5445
5446 2020-06-15 Bob Duff <duff@adacore.com>
5447
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
5452 Put_Image.
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.
5462
5463 2020-06-15 Gary Dismukes <dismukes@adacore.com>
5464
5465 * exp_ch9.ads (Build_Master_Declaration): Add commas.
5466 * exp_ch9.adb (Build_Master_Entity): Spelling fix ("build" =>
5467 "built").
5468 (Build_Task_Activation_Call): Fix word order.
5469
5470 2020-06-15 Arnaud Charlet <charlet@adacore.com>
5471
5472 * libgnat/a-nbnbin.ads (Big_Positive, Big_Natural): Fix
5473 predicate.
5474
5475 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5476
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
5480 mistake.
5481
5482 2020-06-15 Javier Miranda <miranda@adacore.com>
5483
5484 * restrict.ads (Set_Global_No_Tasking, Global_No_Tasking): New
5485 subprograms.
5486 * restrict.adb (Set_Global_No_Tasking, Global_No_Tasking): New
5487 subprograms.
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
5508 pragmas file.
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.
5541
5542 2020-06-15 Arnaud Charlet <charlet@adacore.com>
5543
5544 * sem_attr.adb (Eval_Attribute): Protect against previous
5545 errors.
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,
5552 dead code.
5553 * aspects.ads (Is_Representation_Aspect): Default_Value is a
5554 representation aspect.
5555
5556 2020-06-15 Arnaud Charlet <charlet@adacore.com>
5557
5558 * libgnat/a-wichha.ads, libgnat/a-wichha.adb,
5559 libgnat/a-wichun.ads, libgnat/a-wichun.adb (Is_Basic, To_Basic):
5560 New.
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.
5564
5565 2020-06-15 Gary Dismukes <dismukes@adacore.com>
5566
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.
5572
5573 2020-06-15 Justin Squirek <squirek@adacore.com>
5574
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.
5592
5593 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5594
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.
5598
5599 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5600
5601 * contracts.adb (Analyze_Object_Contract): Do not expect
5602 Global/Depends on single protected units.
5603
5604 2020-06-15 Justin Squirek <squirek@adacore.com>
5605
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.
5609
5610 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5611
5612 * exp_ch6.adb (Expand_Call_Helper): Replace repeated Ekind with
5613 Ekind_In.
5614
5615 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5616
5617 * exp_ch6.adb, sem_util.adb: Remove excessive parents,
5618 especially since they don't make the code any easier to read.
5619
5620 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5621
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
5625 argument.
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
5637 expression.
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
5643 routine.
5644 (Analyze_Aspect_Specifications): Analyze new aspect in a
5645 dedicated routine.
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.
5653
5654 2020-06-15 Bob Duff <duff@adacore.com>
5655
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.
5662
5663 2020-06-15 Bob Duff <duff@adacore.com>
5664
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
5674 nonscalar).
5675
5676 2020-06-15 Bob Duff <duff@adacore.com>
5677
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.
5684
5685 2020-06-15 Bob Duff <duff@adacore.com>
5686
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.
5695
5696 2020-06-15 Bob Duff <duff@adacore.com>
5697
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
5702 that feature.
5703 (Build_String_Put_Image_Call): Set Conversion_OK flag.
5704 (Make_Component_List_Attributes): Remove unchecked union
5705 processing.
5706 (Enable_Put_Image): Disable for unchecked unions. Enable for
5707 nonscalar types (which were mistakenly disabled in earlier
5708 changes).
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.
5717
5718 2020-06-15 Piotr Trojanek <trojanek@adacore.com>
5719
5720 * sem_util.ads, sem_util.adb (Is_Renaming_Declaration): Remove.
5721
5722 2020-06-15 Ed Schonberg <schonberg@adacore.com>
5723
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
5728 error.
5729
5730 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
5731
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.
5735
5736 2020-06-15 Steve Baird <baird@adacore.com>
5737
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.
5741
5742 2020-06-15 Eric Botcazou <ebotcazou@adacore.com>
5743
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.
5748
5749 2020-06-12 Steve Baird <baird@adacore.com>
5750
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.
5761
5762 2020-06-12 Bob Duff <duff@adacore.com>
5763
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
5768 this version.
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.
5787
5788 2020-06-12 Arnaud Charlet <charlet@adacore.com>
5789
5790 * sem_res.adb (Resolve_Actuals): Check for AI12-0074.
5791
5792 2020-06-12 Olivier Hainque <hainque@adacore.com>
5793
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.
5799
5800 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5801
5802 * par-prag.adb: Fix ordering.
5803 * snames.ads-tmpl (Name_Test_Case, Pragma_Test_Case): Likewise.
5804 * sem_prag.adb (Sig_Flags): Likewise.
5805
5806 2020-06-12 Arnaud Charlet <charlet@adacore.com>
5807
5808 * sem_res.adb (Resolve_Entity_Name): Fix handling of expressions
5809 containing array attributes wrt Ada 83 detection.
5810
5811 2020-06-12 Steve Baird <baird@adacore.com>
5812
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
5832 names.
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.
5838
5839 2020-06-12 Ed Schonberg <schonberg@adacore.com>
5840
5841 * sem_ch12.adb (Find_Matching_Actual): Add guard on search loops
5842 to detect a compilation error when using a compiler built
5843 without assertions.
5844 (Instantiate_Formal_Subprogram): Create a new subprogram name
5845 for the actual only if formal has contract aspects and expansion
5846 is enabled.
5847
5848 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
5849
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.
5864
5865 2020-06-12 Dmitriy Anisimkov <anisimko@adacore.com>
5866
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
5870 Boolean constant.
5871 * libgnat/g-socket.adb (Set_Socket_Option): Use
5872 Minus_500ms_Windows_Timeout constant instead of function call.
5873
5874 2020-06-12 Arnaud Charlet <charlet@adacore.com>
5875
5876 * libgnat/a-coinho.ads, libgnat/a-coinho.adb,
5877 libgnat/a-coinho__shared.ads, libgnat/a-coinho__shared.adb
5878 (Swap): New procedure.
5879
5880 2020-06-12 Arnaud Charlet <charlet@adacore.com>
5881
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
5891 version.
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
5897 copy on the spec.
5898
5899 2020-06-12 Ed Schonberg <schonberg@adacore.com>
5900
5901 * sem_ch6.adb (Check_Overriding_Indicatior): Reject an
5902 overriding indicator on a subprogram declared within a protected
5903 body.
5904
5905 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5906
5907 * contracts.adb, einfo.adb, sem_ch4.adb, sem_ch6.adb,
5908 sem_res.adb, sem_util.adb: Replace Ekind_In with Is_Entry.
5909
5910 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5911
5912 * sem_res.adb (Resolve_Entry_Call): Add call to
5913 Warn_On_Overlapping_Actuals.
5914
5915 2020-06-12 Arnaud Charlet <charlet@adacore.com>
5916
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.
5920
5921 2020-06-12 Bob Duff <duff@adacore.com>
5922
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
5932 Put_Image.
5933 * sem_ch10.adb (Analyze_Compilation_Unit): Call Preload_Sink.
5934
5935 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5936
5937 * sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify.
5938
5939 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5940
5941 * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove suppression
5942 for internal units.
5943
5944 2020-06-12 Arnaud Charlet <charlet@adacore.com>
5945
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
5951 types.
5952 * libgnat/s-stratt.ads, libgnat/s-stratt.adb,
5953 libgnat/s-stratt__xdr.adb: Add support for signed and unsigned
5954 24 bits integers.
5955
5956 2020-06-12 Piotr Trojanek <trojanek@adacore.com>
5957
5958 * sem_ch3.adb (Get_Discr_Value): Cleanup.
5959
5960 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
5961
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.
5986
5987 2020-06-12 Bob Duff <duff@adacore.com>
5988
5989 * stringt.ads: Remove "use System;".
5990
5991 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
5992
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.
6002
6003 2020-06-12 Ed Schonberg <schonberg@adacore.com>
6004
6005 * sem_ch12.adb (Has_Contracts): New predicate to check whether a
6006 formal subprogram carries an aspect specification for a pre- or
6007 postcondition.
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
6013 call.
6014 (Build_Subprogram_Decl_Wrapper): Build profile of wrapper from
6015 the profile of formal, and reset type entities for subsequent
6016 analysis.
6017
6018 2020-06-12 Bob Duff <duff@adacore.com>
6019
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.
6025
6026 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
6027
6028 * sem_elab.adb: Fix typos in comments.
6029
6030 2020-06-12 Justin Squirek <squirek@adacore.com>
6031
6032 * sem_util.adb (Object_Access_Level): Add processing of implicit
6033 dereferences.
6034
6035 2020-06-12 Bob Duff <duff@adacore.com>
6036
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.
6044
6045 2020-06-12 Eric Botcazou <ebotcazou@adacore.com>
6046
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.
6064
6065 2020-06-11 Eric Botcazou <ebotcazou@adacore.com>
6066
6067 * sem_res.adb (Resolve_Implicit_Dereference): In an instance,
6068 reset the type of the prefix if it is private before building
6069 the dereference.
6070
6071 2020-06-11 Eric Botcazou <ebotcazou@adacore.com>
6072
6073 * exp_util.adb (Safe_Unchecked_Type_Conversion): Add missing
6074 Is_Type guard before calling Has_Discriminants on Etype.
6075
6076 2020-06-11 Bob Duff <duff@adacore.com>
6077
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.
6081
6082 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6083
6084 * sem_aggr.adb (Get_Value): Refine type of the Compon parameter.
6085
6086 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6087
6088 * sem_aggr.adb (Resolve_Record_Aggregate): Refine type of
6089 Others_Box.
6090
6091 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6092
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.
6097
6098 2020-06-11 Eric Botcazou <ebotcazou@adacore.com>
6099
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.
6110
6111 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6112
6113 * sem_ch4.adb, sem_ch6.adb, sem_res.adb, sem_util.ads: Fix
6114 references to SPARK RM 7.1.3 rule numbers.
6115
6116 2020-06-11 Ed Schonberg <schonberg@adacore.com>
6117
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.
6122
6123 2020-06-11 Steve Baird <baird@adacore.com>
6124
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
6137 by that call.
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;
6146 support this case.
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
6153 as being volatile.
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.
6182
6183 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6184
6185 * sem_aggr.adb (Add_Association): Add assertion about the formal
6186 parameters.
6187 (Propagate_Discriminants): Always add an explicit component
6188 association, so that an "others => <>" association is never
6189 needed.
6190
6191 2020-06-11 Bob Duff <duff@adacore.com>
6192
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
6196 Put_Image_Unknown.
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
6200 it open.
6201
6202 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6203
6204 * sem_ch3.adb (Build_Constrained_Array_Type,
6205 Build_Constrained_Discriminated_Type): Skip unnecessary loop
6206 iterations.
6207
6208 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6209
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
6215 Build_Subtype.
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
6219 updated.
6220
6221 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6222
6223 * sem_aggr.adb (Case_Table_Type): Change index type from Nat to
6224 Pos.
6225
6226 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6227
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
6236 aggregates as well.
6237
6238 2020-06-11 Eric Botcazou <ebotcazou@adacore.com>
6239
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
6251 dereferences.
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
6257 dereferences.
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.
6294
6295 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6296
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.
6302
6303 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6304
6305 * exp_disp.adb (Make_Secondary_DT): Internally generated OSD
6306 tables are now constant.
6307
6308 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6309
6310 * exp_aggr.adb (Backend_Processing_Possible): Remove useless
6311 call.
6312
6313 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6314
6315 * opt.ads (Building_Static_Dispatch_Tables): Fix punctuation in
6316 comment.
6317
6318 2020-06-11 Arnaud Charlet <charlet@adacore.com>
6319
6320 * libgnat/s-stposu.ads (Root_Storage_Pool_With_Subpools,
6321 Root_Subpool): Mark with Preelaborable_Initialization.
6322
6323 2020-06-11 Javier Miranda <miranda@adacore.com>
6324
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):
6329 New routines.
6330 * sem_util.adb (New_Copy_Separate_List, New_Copy_Separate_Tree):
6331 New routines.
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
6337 Etype.
6338
6339 2020-06-11 Bob Duff <duff@adacore.com>
6340
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
6346 unnesting to crash.
6347
6348 2020-06-11 Bob Duff <duff@adacore.com>
6349
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
6355 packages.
6356 * debug.adb: Document -gnatd_z switch.
6357 * exp_imgv.adb, libgnat/a-stteou.ads, opt.ads: Minor cleanups.
6358
6359 2020-06-11 Piotr Trojanek <trojanek@adacore.com>
6360
6361 * sem_warn.adb (Warn_On_Overlapping_Actuals): Add label to the
6362 outer loop and use it in the exit statement.
6363
6364 2020-06-11 Ghjuvan Lacambre <lacambre@adacore.com>
6365
6366 * exp_ch3.adb (Build_Assignment): Generate predicate check if
6367 subtype mark has predicate.
6368
6369 2020-06-11 Justin Squirek <squirek@adacore.com>
6370
6371 * sem_util.adb (Expand_N_Attribute_Reference): Use original
6372 nodes where required to avoid looking at the expanded tree.
6373
6374 2020-06-11 Arnaud Charlet <charlet@adacore.com>
6375
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.
6381
6382 2020-06-11 Arnaud Charlet <charlet@adacore.com>
6383
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
6387 machine type.
6388
6389 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6390
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.
6398
6399 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6400
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.
6411
6412 2020-06-10 Ghjuvan Lacambre <lacambre@adacore.com>
6413
6414 * exp_ch3.adb (Build_Equivalent_Record_Aggregate): Return Empty
6415 if Etype of record component has predicates.
6416
6417 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6418
6419 * exp_ch3.adb (Build_Init_Statements): Implement the notion of
6420 "require late initialization".
6421
6422 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
6423
6424 * sem_util.adb (Copy_And_Maybe_Dereference): Temporarily copy
6425 the parent node of the original tree when dereferencing.
6426
6427 2020-06-10 Ed Schonberg <schonberg@adacore.com>
6428
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.
6432
6433 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
6434
6435 * exp_ch4.adb (Expand_N_In): Use an expression with actions to
6436 insert the PE raise statement for the Unchecked_Union case.
6437
6438 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
6439
6440 * sem_ch4.adb (Analyze_Call): Use idiomatic condition.
6441 * sem_res.adb (Resolve_Call): Remove obsolete code.
6442
6443 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
6444
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.
6449
6450 2020-06-10 Bob Duff <duff@adacore.com>
6451
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
6456 spurious warnings.
6457 * exp_util.adb (Make_Invariant_Call): Avoid calling the
6458 invariant-checking procedure if the body is empty. This is an
6459 optimization.
6460
6461 2020-06-10 Vasiliy Fofanov <fofanov@adacore.com>
6462
6463 * doc/gnat_ugn/gnat_utility_programs.rst: Fix gnatmetric
6464 switches description.
6465
6466 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6467
6468 * repinfo-input.ads, repinfo-input.adb, repinfo.adb,
6469 repinfo.ads: Update header.
6470
6471 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
6472
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.
6479
6480 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6481
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.
6487
6488 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6489
6490 * libgnat/s-secsta.adb (Round_Up): Fix typo in exception
6491 message.
6492
6493 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
6494
6495 * par-ch4.adb (P_Membership_Test): Fix typo in a grammar rule.
6496
6497 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
6498
6499 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove
6500 expansion of First and Last attributes.
6501
6502 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
6503
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.
6512
6513 2020-06-10 Javier Miranda <miranda@adacore.com>
6514
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.
6518
6519 2020-06-10 Ed Schonberg <schonberg@adacore.com>
6520
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
6536 type.
6537
6538 2020-06-10 Ghjuvan Lacambre <lacambre@adacore.com>
6539
6540 * par-ch6.adb (P_Subprogram): Make sure the specification
6541 belongs to a procedure.
6542
6543 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
6544
6545 * sem_ch13.adb (All_Membership_Choices_Static): Assert an AST
6546 property documented in sinfo.ads and simplify an excessive
6547 condition.
6548
6549 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
6550
6551 * exp_attr.adb (Expand_N_Attribute_Reference): Fix a copy-paste
6552 mistake in comment.
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.
6556
6557 2020-06-10 Piotr Trojanek <trojanek@adacore.com>
6558
6559 * sem_aux.ads, sem_aux.adb (Get_Low_Bound): Remove.
6560
6561 2020-06-10 Arnaud Charlet <charlet@adacore.com>
6562
6563 * scn.adb (Determine_License): Remove.
6564
6565 2020-06-10 Justin Squirek <squirek@adacore.com>
6566
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
6579
6580 2020-06-10 Ghjuvan Lacambre <lacambre@adacore.com>
6581
6582 * par-ch6.adb (P_Subprogram): Reject duplicate subprogram
6583 declarations.
6584
6585 2020-06-10 Eric Botcazou <ebotcazou@adacore.com>
6586
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.
6589
6590 2020-06-10 Gary Dismukes <dismukes@adacore.com>
6591
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
6595 comments.
6596 * sem_ch12.adb: Fix three typos in comments.
6597
6598 2020-06-09 Javier Miranda <miranda@adacore.com>
6599
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
6608 documentation.
6609
6610 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
6611
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...
6616 (Get_B0): ...this.
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.
6620
6621 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
6622
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
6629 Stdcall to...
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.
6649
6650 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6651
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.
6656
6657 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6658
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.
6662
6663 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6664
6665 * exp_ch5.adb (Expand_N_Assignment): Remove kludge for
6666 AI05-0087.
6667 * sem_ch12.adb (Validate_Derived_Type_Instance): Implement
6668 AI05-0087 retroactively since it's a binding interpretation.
6669
6670 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
6671
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_*,
6693 Unknown_*.
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.
6705
6706 2020-06-09 Ed Schonberg <schonberg@adacore.com>
6707
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.
6711
6712 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6713
6714 * exp_util.adb (Side_Effect_Free): Improve handling of
6715 N_Aggregate.
6716
6717 2020-06-09 Ghjuvan Lacambre <lacambre@adacore.com>
6718
6719 * sem_res.adb (Resolve_Qualified_Expression): Use Subtype_Mark
6720 type.
6721
6722 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6723
6724 * exp_aggr.adb (Max_Aggregate_Size): New function to factorize
6725 code.
6726 (Convert_To_Positional, Aggr_Size_OK): Use Max_Aggregate_Size.
6727
6728 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6729
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
6732 relevant.
6733
6734 2020-06-09 Justin Squirek <squirek@adacore.com>
6735
6736 * einfo.ads (Returns_By_Ref): Modify documentation to reflect
6737 that Returns_By_Ref can be applied to E_Subprogram_Type
6738 entities.
6739
6740 2020-06-09 Justin Squirek <squirek@adacore.com>
6741
6742 * exp_attr.adb (Expand_N_Attribute_Reference): Modify expansion
6743 of 'Overlaps_Storage to take into account zero sized arrays.
6744
6745 2020-06-09 Bob Duff <duff@adacore.com>
6746
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
6754 graph parameters.
6755
6756 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
6757
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.
6792
6793 2020-06-09 Justin Squirek <squirek@adacore.com>
6794
6795 * exp_ch5.adb (Expand_Predicated_Loop): Perserve the original
6796 loop identifier within the expansion.
6797
6798 2020-06-09 Bob Duff <duff@adacore.com>
6799
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
6808 backwards.
6809
6810 2020-06-09 Bob Duff <duff@adacore.com>
6811
6812 * bindo-graphs.adb (Add_Edge_Kind_Check): Add the Image of the
6813 old and new Kinds to the raise Program_Error message.
6814
6815 2020-06-09 Eric Botcazou <ebotcazou@adacore.com>
6816
6817 * sem_ch3.adb (Is_Visible_Component): Do not special-case
6818 bodies of instances.
6819
6820 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6821
6822 * exp_ch4.adb (Expand_N_In): Fix handling of null exclusion.
6823
6824 2020-06-09 Ed Schonberg <schonberg@adacore.com>
6825
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.
6829
6830 2020-06-09 Bob Duff <duff@adacore.com>
6831
6832 * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
6833 the --no-separate-return switch of gnatpp.
6834
6835 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6836
6837 * sem_warn.adb (Warn_On_Constant_Valid_Condition): Add proper
6838 warning tag.
6839
6840 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6841
6842 * sem_type.adb (Covers): Fix implementation of AI05-0149.
6843 * sem_res.adb: Fix typo.
6844
6845 2020-06-09 Ed Schonberg <schonberg@adacore.com>
6846
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.
6852
6853 2020-06-09 Piotr Trojanek <trojanek@adacore.com>
6854
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.
6858
6859 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6860
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.
6864
6865 2020-06-09 Arnaud Charlet <charlet@adacore.com>
6866
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.
6870
6871 2020-06-09 Bob Duff <duff@adacore.com>
6872
6873 * bindo-graphs.adb (Add_Edge_Kind_Check): Disable failing part
6874 of the assertion.
6875
6876 2020-06-08 Steve Baird <baird@adacore.com>
6877
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).
6882
6883 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6884
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.
6888
6889 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6890
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
6896 Storage_Pool.
6897 * sem_attr.adb, exp_ch4.adb: Update comments.
6898
6899 2020-06-08 Justin Squirek <squirek@adacore.com>
6900
6901 * sem_ch4.adb (Analyze_One_Call): Add extra condition to the
6902 predicate for deciding when a given controlled call is visible.
6903
6904 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
6905
6906 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Port
6907 changes in frontend expander.
6908
6909 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
6910
6911 * sem_ch13.adb (All_Membership_Choices_Static): Fix style.
6912
6913 2020-06-08 Steve Baird <baird@adacore.com>
6914
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
6918 Profile_Info.
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.
6929
6930 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6931
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.
6939
6940 2020-06-08 Arnaud Charlet <charlet@adacore.com>
6941
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.
6948
6949 2020-06-08 Eric Botcazou <ebotcazou@adacore.com>
6950
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.
6972
6973 2020-06-08 Steve Baird <baird@adacore.com>
6974
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).
6991
6992 2020-06-08 Richard Kenner <kenner@adacore.com>
6993
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.
6997
6998 2020-06-08 Gary Dismukes <dismukes@adacore.com>
6999
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.
7007 error messages.
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
7027 errors.
7028
7029 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
7030
7031 * snames.ads-tmpl (Name_SPARK): Restore after being deleted.
7032
7033 2020-06-08 Arnaud Charlet <charlet@adacore.com>
7034
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.
7047
7048 2020-06-08 Arnaud Charlet <charlet@adacore.com>
7049
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
7055 confusion.
7056
7057 2020-06-08 Arnaud Charlet <charlet@adacore.com>
7058
7059 * libgnat/a-textio.ads (File_Mode): Fix typo in comment.
7060
7061 2020-06-08 Eric Botcazou <ebotcazou@adacore.com>
7062
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.
7067
7068 2020-06-08 Philippe Gil <gil@adacore.com>
7069
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
7073 refactoring.
7074 * gnat_ugn.texi: Regenerate.
7075
7076 2020-06-08 Arnaud Charlet <charlet@adacore.com>
7077
7078 * doc/gnat_rm/implementation_defined_attributes.rst:
7079 Enum_Rep/Enum_Val are standard Ada 202x attributes.
7080 * gnat_rm.texi: Regenerate.
7081
7082 2020-06-08 Javier Miranda <miranda@adacore.com>
7083
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.
7088
7089 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
7090
7091 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
7092 standard expansion to attributes First and Last.
7093
7094 2020-06-08 Piotr Trojanek <trojanek@adacore.com>
7095
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
7098 spec.
7099 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Replace
7100 duplicated code with a call to Get_Index_Subtype.
7101
7102 2020-06-08 Arnaud Charlet <charlet@adacore.com>
7103
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
7110 from sources.
7111
7112 2020-06-08 Claire Dross <dross@adacore.com>
7113
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
7117 Warnings.
7118
7119 2020-06-08 Bob Duff <duff@adacore.com>
7120
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
7127 that the message:
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
7142 it.
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.
7150
7151 2020-06-08 Ed Schonberg <schonberg@adacore.com>
7152
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.
7159
7160 2020-06-08 Dmitriy Anisimkov <anisimko@adacore.com>
7161
7162 * socket.c (__gnat_minus_500ms): Remove
7163 IsWindowsVersionOrGreater from condition.
7164
7165 2020-06-08 Claire Dross <dross@adacore.com>
7166
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.
7170
7171 2020-06-08 Arnaud Charlet <charlet@adacore.com>
7172
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.
7177
7178 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7179
7180 * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Use ??.
7181
7182 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7183
7184 * cstand.adb (Create_Standard): Update comments.
7185
7186 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7187
7188 * scng.adb (Scan): Fix typo to take into account all future
7189 versions of Ada.
7190 * sem_attr.ads (Attribute_Impl_Def): Add Attribute_Reduce for
7191 now.
7192 * sem_attr.adb (Analyze_Attribute): Only allow 'Reduce under
7193 -gnatX.
7194 * snames.ads-tmpl (Name_Reduce): Update comment.
7195
7196 2020-06-05 Thomas Quinot <quinot@adacore.com>
7197
7198 * exp_disp.adb (Expand_Interface_Thunk): Add comment about
7199 gnatcov reliance on specific name used for thunks.
7200
7201 2020-06-05 Ed Schonberg <schonberg@adacore.com>
7202
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.
7206
7207 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
7208
7209 * doc/gnat_rm/implementation_defined_attributes.rst (Enum_Rep):
7210 Remove extra colon.
7211 * gnat_rm.texi: Regenerate.
7212
7213 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
7214
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.
7230
7231 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
7232
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.
7236
7237 2020-06-05 Dmitriy Anisimkov <anisimko@adacore.com>
7238
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
7242 one.
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.
7246
7247 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7248
7249 * sem.adb (Assert_Done): Relax check for main unit, as it was
7250 overzealous in the case of the main unit itself.
7251
7252 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
7253
7254 * exp_ch3.adb, sem_ch8.adb, sem_util.adb: Use Is_Incomplete_Type
7255 to make the code easier to read.
7256
7257 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
7258
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.
7264
7265 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
7266
7267 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use
7268 Expr_Rep_Value instead of Expr_Value to obtain the equivalent
7269 integer value.
7270 * sem_eval.ads (Expr_Value): Document more supported cases.
7271 * sem_eval.adb (Expr_Rep_Value): Copy missing cases from
7272 Exp_Value.
7273
7274 2020-06-05 Bob Duff <duff@adacore.com>
7275
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.
7282
7283 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
7284
7285 * rtsfind.ads, rtsfind.adb (Is_Text_IO_Special_Package): Moved
7286 from the GNATprove backend to the frontend.
7287
7288 2020-06-05 Yannick Moy <moy@adacore.com>
7289
7290 * sem_util.ads: Add comment about function only used in
7291 CodePeer.
7292
7293 2020-06-05 Ed Schonberg <schonberg@adacore.com>
7294
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.
7304
7305 2020-06-05 Piotr Trojanek <trojanek@adacore.com>
7306
7307 * libgnat/a-cofuve.ads (First): Add Global contract.
7308
7309 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7310
7311 * sem_prag.adb (Set_Convention_From_Pragma): Set the convention
7312 of anonymous access array components.
7313
7314 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7315
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.
7319
7320 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
7321
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.
7329
7330 2020-06-05 Bob Duff <duff@adacore.com>
7331
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.
7334
7335 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7336
7337 * libgnat/a-nudira.ads, libgnat/a-nudira.adb (Random): New
7338 function.
7339
7340 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7341
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.
7345
7346 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7347
7348 * restrict.ads (Unit_Array): Add a-direct.
7349
7350 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7351
7352 * libgnat/s-stopoo.ads: Mark package Pure and leave room for
7353 Nonblocking once this aspect is supported.
7354
7355 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
7356
7357 * exp_attr.adb (Expand_N_Attribute_Reference) <Valid_Scalars>:
7358 Set the No_Truncation flag on the unchecked conversion built for
7359 scalar types.
7360
7361 2020-06-05 Bob Duff <duff@adacore.com>
7362
7363 * einfo.adb, einfo.ads, exp_util.adb: Remove Invariants_Ignored
7364 flag.
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.
7368
7369 2020-06-05 Eric Botcazou <ebotcazou@adacore.com>
7370
7371 * checks.ads (Apply_Length_Check): Rename Ck_Node parameter to
7372 Expr.
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
7380 child procedures.
7381 (Selected_Range_Checks): Likewise.
7382
7383 2020-06-05 Arnaud Charlet <charlet@adacore.com>
7384
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
7388 of -gnatX switch.
7389
7390 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7391
7392 * libgnat/i-c.ads (long_long, unsigned_long_long): New
7393 definitions.
7394
7395 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7396
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.
7403
7404 2020-06-04 Ed Schonberg <schonberg@adacore.com>
7405
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
7416 wrapper.
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.
7423
7424 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7425
7426 * exp_ch7.adb (Make_Final_Call): Set the type of the object, if
7427 it is unanalyzed, before calling Convert_View on it.
7428
7429 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7430
7431 * adabkend.adb, back_end.ads, opt.ads, sem_ch6.adb: Get rid of
7432 Disable_FE_Inline_Always.
7433
7434 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7435
7436 * exp_ch7.adb (Make_Final_Call): Add missing guard.
7437 * sem_ch3.adb (Copy_And_Build): Adjust recursive call for
7438 private types.
7439 (Build_Derived_Private_Type): Deal with underlying full views.
7440
7441 2020-06-04 Bob Duff <duff@adacore.com>
7442
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
7454 exp_put_image.o.
7455 * exp_put_image.adb, exp_put_image.ads: New compiler package
7456 that generates calls to runtime routines that implement
7457 Put_Image.
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
7463 in Exp_Put_Image.
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
7474 TSS_Put_Image.
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
7478 System.Put_Images.
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.
7490
7491 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7492
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.
7511
7512 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7513
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.
7521
7522 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7523
7524 * checks.adb (Generate_Discriminant_Check): Remove obsolete
7525 comment.
7526
7527 2020-06-04 Gary Dismukes <dismukes@adacore.com>
7528
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
7542 explicit subtype.
7543
7544 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7545
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.
7550
7551 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7552
7553 * adaint.c: Avoid redefining IS_DIR_SEPARATOR macro.
7554
7555 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7556
7557 * sem.adb (Walk_Library_Items): Defer processing of main spec
7558 after all other specs and before processing bodies.
7559
7560 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7561
7562 * bindgen.adb (Gen_Adafinal): Adafinal is convention Ada, not C.
7563
7564 2020-06-04 Ed Schonberg <schonberg@adacore.com>
7565
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.
7573
7574 2020-06-04 Alexandre Oliva <oliva@adacore.com>
7575
7576 * switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
7577 dumpbase-ext. Mark auxbase and auxbase-strip for removal.
7578
7579 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7580
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.
7586
7587 2020-06-04 Justin Squirek <squirek@adacore.com>
7588
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
7595 generated function.
7596
7597 2020-06-04 Dmitriy Anisimkov <anisimko@adacore.com>
7598
7599 * adaint.c (__gnat_is_absolute_path): Check for directory
7600 separator after drive and colon.
7601 (IS_DIR_SEPARATOR): Define new inline substitution.
7602
7603 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7604
7605 * checks.ads: Update documentation about range checks and fix
7606 minor other things.
7607
7608 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7609
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.
7613
7614 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7615
7616 * libgnat/a-exextr.adb (Global_Unhandled_Action): New global
7617 variable.
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
7621 be atomic.
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.
7631
7632 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7633
7634 * comperr.adb (Compiler_Abort): Update URL and bug report
7635 instructions.
7636
7637 2020-06-04 Steve Baird <baird@adacore.com>
7638
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.
7649
7650 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7651
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
7669 and Global_Lock.
7670
7671 2020-06-04 Arnaud Charlet <charlet@adacore.com>
7672
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).
7676
7677 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7678
7679 * sem_ch12.adb (Copy_Generic_Node): Add special handling for a
7680 conversion between access types.
7681
7682 2020-06-04 Eric Botcazou <ebotcazou@adacore.com>
7683
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.
7688
7689 2020-06-04 Gary Dismukes <dismukes@adacore.com>
7690
7691 * sem_ch12.adb: Minor editorial fixes.
7692
7693 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7694
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.
7707
7708 2020-06-03 Justin Squirek <squirek@adacore.com>
7709
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.
7713
7714 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7715
7716 * sem_ch12.adb (Check_Private_View): Clean up implementation of
7717 second main case, when the generic sees the private declaration.
7718
7719 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7720
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.
7724
7725 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7726
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
7730 statement.
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
7734 effects.
7735
7736 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7737
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.
7744
7745 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7746
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.
7754
7755 2020-06-03 Vadim Godunko <godunko@adacore.com>
7756
7757 * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
7758 libgnat/s-parame__hpux.ads: Fix typos.
7759
7760 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7761
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.
7765
7766 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7767
7768 * libgnat/s-aotase.ads, libgnat/s-atoope.ads,
7769 libgnat/s-atopar.ads, libgnat/s-atopex.ads: Update header.
7770
7771 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7772
7773 * exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Also fold the
7774 conversion for literals of enumeration types.
7775
7776 2020-06-03 Yannick Moy <moy@adacore.com>
7777
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
7781 without prior On.
7782 * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise.
7783 * sem_prag.adb (Analyze_Pragma): Always take into account
7784 SPARK_Mode Off.
7785
7786 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7787
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.
7792
7793 2020-06-03 Justin Squirek <squirek@adacore.com>
7794
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
7811 object.
7812 (Object_Access_Level): Remove incorrect condition leading to
7813 overly permissive accessibility levels being returned on
7814 explicitly aliased parameters.
7815
7816 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7817
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.
7822 <Succ>: Likewise.
7823 <Val>: Likewise.
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.
7828
7829 2020-06-03 Gary Dismukes <dismukes@adacore.com>
7830
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.
7837
7838 2020-06-03 Bob Duff <duff@adacore.com>
7839
7840 * libgnat/s-regexp.ads: Fix comment
7841
7842 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7843
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.
7851 <To_Any>: Likewise.
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
7857 a mere conversion.
7858
7859 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7860
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.
7864
7865 2020-06-03 Gary Dismukes <dismukes@adacore.com>
7866
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.
7870
7871 2020-06-03 Yannick Moy <moy@adacore.com>
7872
7873 * inline.adb (Expand_Inlined_Call): Do not suppress checks on
7874 inlined code in GNATprove mode.
7875
7876 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7877
7878 * einfo.ads (Has_Contiguous_Rep): Fix typo in comment.
7879
7880 2020-06-03 Piotr Trojanek <trojanek@adacore.com>
7881
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.
7889
7890 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7891
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.
7895
7896 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7897
7898 * libgnat/s-auxdec.ads (Address_Int): New.
7899
7900 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7901
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.
7917
7918 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7919
7920 * opt.ads (Disable_FE_Inline): Move around.
7921 (Disable_FE_Inline_Always): Likewise.
7922
7923 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7924
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.
7932
7933 2020-06-03 Arnaud Charlet <charlet@adacore.com>
7934
7935 * switch-c.adb (Scan_Front_End_Switches): Remove processing of
7936 -gnatt.
7937 * usage.adb (Usage): Remove mention of -gnatt.
7938
7939 2020-06-03 Eric Botcazou <ebotcazou@adacore.com>
7940
7941 * sinfo.ads: Minor tweaks in commentary.
7942
7943 2020-06-02 Alexandre Oliva <oliva@adacore.com>
7944
7945 * lib.ads (Compilation_Switches): Remove -auxbase from
7946 comments.
7947 * switch.ads (Is_Internal_GCC_Switch): Likewise.
7948
7949 2020-06-02 Arnaud Charlet <charlet@adacore.com>
7950
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.
7960
7961 2020-06-02 Javier Miranda <miranda@adacore.com>
7962
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
7967 the target type.
7968
7969 2020-06-02 Arnaud Charlet <charlet@adacore.com>
7970
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.
7985 * argv.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.
8024 * cal.c: Likewise.
8025 * casing.adb: Likewise.
8026 * casing.ads: Likewise.
8027 * ceinfo.adb: Likewise.
8028 * checks.adb: Likewise.
8029 * checks.ads: Likewise.
8030 * cio.c: 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.
8053 * env.c: Likewise.
8054 * env.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.
8065 * exit.c: 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.
8132 * fe.h: 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.
8187 * init.c: 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.
9640 * link.c: 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.
9740 * scos.h: 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.
9908
9909 2020-06-02 Javier Miranda <miranda@adacore.com>
9910
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
9917 sem_ch3.adb
9918
9919 2020-06-02 Javier Miranda <miranda@adacore.com>
9920
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.
9925
9926 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9927
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.
9950
9951 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9952
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.
9964
9965 2020-06-02 Bob Duff <duff@adacore.com>
9966
9967 * doc/gnat_ugn/gnat_utility_programs.rst: Update documentation
9968 for --RM-style-spacing.
9969
9970 2020-06-02 Bob Duff <duff@adacore.com>
9971
9972 * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
9973 --[no-]compact switch.
9974
9975 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
9976
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
9988 literal.
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.
9993
9994 2020-06-02 Thomas Quinot <quinot@adacore.com>
9995
9996 * par_sco.adb (Traverse_Degenerate_Subprogram): Set statement
9997 code to 'X'.
9998 * scos.ads: Update comment documenting SCO data.
9999
10000 2020-06-02 Gary Dismukes <dismukes@adacore.com>
10001
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.
10006
10007 2020-06-02 Justin Squirek <squirek@adacore.com>
10008
10009 * sem_ch6.adb (Check_Return_Obj_Accessibility): Avoid use of
10010 parent node pointers so we are not relying on expansion done in
10011 GNATprove mode.
10012
10013 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
10014
10015 * exp_attr.adb (Expand_N_Attribute_Reference)
10016 <Attribute_Alignment>: Adjust comment and compare against proper
10017 type.
10018
10019 2020-06-02 Gary Dismukes <dismukes@adacore.com>
10020
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
10028 function.
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
10031 subtypes.
10032
10033 2020-06-02 Bob Duff <duff@adacore.com>
10034
10035 * snames.ads-tmpl: Add comments explaining that enumeration
10036 types have to be kept in synch with subtypes of Name_Id.
10037
10038 2020-06-02 Piotr Trojanek <trojanek@adacore.com>
10039
10040 * sem_util.adb (Check_No_Hidden_State): Remove dead code.
10041
10042 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
10043
10044 * exp_pakd.adb (Expand_Packed_Bit_Reference): Change type of
10045 reference from Universal_Integer to Standard_Natural.
10046
10047 2020-06-02 Piotr Trojanek <trojanek@adacore.com>
10048
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.
10053
10054 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
10055
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.
10068
10069 2020-06-02 Gary Dismukes <dismukes@adacore.com>
10070
10071 * sem_ch3.adb: Two typo fixes.
10072
10073 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
10074
10075 * sem_ch3.adb (Replace_Discriminants): Preserve the Etype of the
10076 Name of N_Variant_Part nodes when rewriting it.
10077
10078 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
10079
10080 * sem_ch3.adb (Signed_Integer_Type_Declaration): Change the type
10081 of the bounds from Universal_Integer to Implicit_Base.
10082
10083 2020-06-02 Arnaud Charlet <charlet@adacore.com>
10084
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.
10105
10106 2020-06-02 Eric Botcazou <ebotcazou@adacore.com>
10107
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.
10113
10114 2020-06-02 Piotr Trojanek <trojanek@adacore.com>
10115
10116 * lib-xref-spark_specific.adb (Create_Heap): use a new variant
10117 of Name_Enter to directly converts String to Make_Id.
10118
10119 2020-06-02 Gary Dismukes <dismukes@adacore.com>
10120
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
10123 reformatting.
10124
10125 2020-06-02 Arnaud Charlet <charlet@adacore.com>
10126
10127 * snames.ads-tmpl (Name_Img, Attribute_Img): Make it an
10128 attribute returning renamable functions.
10129
10130 2020-06-02 Yannick Moy <moy@adacore.com>
10131
10132 * sem_prag.adb, sem_prag.ads (Set_Overflow_Mode): New procedure
10133 to set overflow mode.
10134
10135 2020-06-02 Piotr Trojanek <trojanek@adacore.com>
10136
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).
10142
10143 2020-05-30 Arnaud Charlet <charlet@adacore.com>
10144
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.
10157
10158 2020-05-27 Martin Liska <mliska@suse.cz>
10159
10160 * gnatvsn.ads: Bump Library_Version to 11.
10161
10162 2020-05-26 Eric Botcazou <ebotcazou@adacore.com>
10163
10164 PR ada/95333
10165 * gcc-interface/decl.c (gnat_to_gnu_param): Never make a variant of
10166 the type.
10167
10168 2020-05-26 Alexandre Oliva <oliva@adacore.com>
10169
10170 * gcc-interface/lang-specs.h (ADA_DUMPS_OPTIONS): Define in
10171 terms of DUMPS_OPTIONS. Replace occurrences of %{d*} %:dumps
10172 with it.
10173
10174 2020-05-26 Alexandre Oliva <oliva@adacore.com>
10175
10176 * gcc-interface/lang-specs.h: Drop auxbase and auxbase-strip.
10177 Use %:dumps instead of -dumpbase. Add %w for implicit .s
10178 primary output.
10179 * switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
10180 dumpbase-ext. Drop auxbase and auxbase-strip.
10181
10182 2020-05-25 Yannick Moy <moy@adacore.com>
10183
10184 * sem_util.adb (Check_No_Hidden_State): Stop propagation at
10185 first block/task/entry.
10186
10187 2020-05-25 Yannick Moy <moy@adacore.com>
10188
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
10194 known statically.
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
10200 and _r.
10201 * warnsw.ads: Update comment.
10202
10203 2020-05-25 Justin Squirek <squirek@adacore.com>
10204
10205 * sem_ch6.adb (Check_Return_Obj_Accessibility): Use original
10206 node to avoid looking at expansion done in GNATprove mode.
10207
10208 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
10209
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.
10216
10217 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
10218
10219 * gcc-interface/misc.c (get_array_bit_stride): Get to the debug type,
10220 if any, before calling gnat_get_array_descr_info.
10221
10222 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
10223
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.
10231
10232 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
10233
10234 * gcc-interface/decl.c (gnat_to_gnu_component_type): Cap the alignment
10235 of the component type according to the component size.
10236
10237 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
10238
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.
10251
10252 2020-05-25 Eric Botcazou <ebotcazou@adacore.com>
10253
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.
10259
10260 2020-05-12 Eric Botcazou <ebotcazou@adacore.com>
10261
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.
10270
10271 2020-05-12 Eric Botcazou <ebotcazou@adacore.com>
10272
10273 PR ada/95035
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.
10278
10279 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10280
10281 * gcc-interface/*.[ch]: Update copyright year.
10282
10283 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10284
10285 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Assert that
10286 the prefix is not a type.
10287
10288 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10289
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
10297 to maybe_pad_type.
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
10312 maybe_pad_type.
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.
10331
10332 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10333
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.
10336
10337 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10338
10339 * gcc-interface/misc.c (gnat_init_gcc_eh): Do not override the user
10340 for -fnon-call-exceptions in default mode.
10341
10342 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10343
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.
10351
10352 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10353
10354 * gcc-interface/trans.c (gnat_to_gnu): Do not wrap boolean values if
10355 they appear in any kind of attribute references.
10356
10357 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10358
10359 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Deal
10360 with qualified "others" aggregates in the memset case.
10361
10362 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10363
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.
10366
10367 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10368
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.
10383
10384 2020-05-09 Eric Botcazou <ebotcazou@adacore.com>
10385
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.
10389
10390 2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
10391
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.
10395
10396 2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
10397
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.
10410
10411 2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
10412
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.
10416
10417 2020-05-08 Eric Botcazou <ebotcazou@adacore.com>
10418
10419 * gcc-interface/decl.c (gnat_to_gnu_param): Do not make a variant of
10420 the type in LTO mode.
10421
10422 2020-05-04 Mikael Pettersson <mikpelinux@gmail.com>
10423
10424 PR bootstrap/94918
10425 * mingw32.h: Prevent windows.h from including emmintrin.h on Cygwin64.
10426 * s-oscons-tmplt.c (Serial_Port_Descriptor): Use System.Win32.HANDLE
10427 also on Cygwin.
10428
10429 2020-03-11 Richard Wai <richard@annexi-strayline.com>
10430
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.
10433
10434 2020-02-06 Alexandre Oliva <oliva@adacore.com>
10435
10436 * raise-gcc.c (personality_body) [__ARM_EABI_UNWINDER__]:
10437 Initialize barrier_cache.sp when ending phase1.
10438
10439 2020-01-04 Eric Botcazou <ebotcazou@adacore.com>
10440
10441 * gnatvsn.ads: Bump copyright year.
10442
10443 2020-01-01 Jakub Jelinek <jakub@redhat.com>
10444
10445 Update copyright years.
10446
10447 * gnat_ugn.texi: Bump @copying's copyright year.
10448 * gnat_rm.texi: Likewise.
10449 \f
10450 Copyright (C) 2020 Free Software Foundation, Inc.
10451
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.