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