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