ada: Rename Is_Constr_Subt_For_UN_Aliased flag
[official-gcc.git] / gcc / ada / ChangeLog-2020
blob5ce188d14fa11ff783d5f08e7e551d5fb2b2fe88
1 2020-12-17  Arnaud Charlet  <charlet@adacore.com>
3         * libgnat/a-tags.ads, libgnat/a-tags.adb (CW_Membership): Move
4         to spec to allow inlining.
6 2020-12-17  Arnaud Charlet  <charlet@adacore.com>
8         * checks.adb: Remove, not used.
9         * checks.ads: Likewise.
10         * exp_ch6.adb: Likewise.
11         * exp_ch7.adb: Likewise.
12         * exp_ch7.ads: Likewise.
13         * exp_fixd.adb: Likewise.
14         * exp_tss.adb: Likewise.
15         * exp_tss.ads: Likewise.
16         * exp_util.adb: Likewise.
17         * exp_util.ads: Likewise.
18         * gnat1drv.adb: Likewise.
19         * libgnat/s-finmas.adb: Likewise.
20         * libgnat/s-finmas.ads: Likewise.
21         * libgnat/system-aix.ads: Likewise.
22         * libgnat/system-darwin-arm.ads: Likewise.
23         * libgnat/system-darwin-ppc.ads: Likewise.
24         * libgnat/system-darwin-x86.ads: Likewise.
25         * libgnat/system-djgpp.ads: Likewise.
26         * libgnat/system-dragonfly-x86_64.ads: Likewise.
27         * libgnat/system-freebsd.ads: Likewise.
28         * libgnat/system-hpux-ia64.ads: Likewise.
29         * libgnat/system-hpux.ads: Likewise.
30         * libgnat/system-linux-alpha.ads: Likewise.
31         * libgnat/system-linux-arm.ads: Likewise.
32         * libgnat/system-linux-hppa.ads: Likewise.
33         * libgnat/system-linux-ia64.ads: Likewise.
34         * libgnat/system-linux-m68k.ads: Likewise.
35         * libgnat/system-linux-mips.ads: Likewise.
36         * libgnat/system-linux-ppc.ads: Likewise.
37         * libgnat/system-linux-riscv.ads: Likewise.
38         * libgnat/system-linux-s390.ads: Likewise.
39         * libgnat/system-linux-sh4.ads: Likewise.
40         * libgnat/system-linux-sparc.ads: Likewise.
41         * libgnat/system-linux-x86.ads: Likewise.
42         * libgnat/system-lynxos178-ppc.ads: Likewise.
43         * libgnat/system-lynxos178-x86.ads: Likewise.
44         * libgnat/system-mingw.ads: Likewise.
45         * libgnat/system-qnx-aarch64.ads: Likewise.
46         * libgnat/system-rtems.ads: Likewise.
47         * libgnat/system-solaris-sparc.ads: Likewise.
48         * libgnat/system-solaris-x86.ads: Likewise.
49         * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
50         * libgnat/system-vxworks-arm-rtp.ads: Likewise.
51         * libgnat/system-vxworks-arm.ads: Likewise.
52         * libgnat/system-vxworks-e500-kernel.ads: Likewise.
53         * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
54         * libgnat/system-vxworks-e500-rtp.ads: Likewise.
55         * libgnat/system-vxworks-e500-vthread.ads: Likewise.
56         * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
57         * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
58         * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
59         * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
60         * libgnat/system-vxworks-ppc-vthread.ads: Likewise.
61         * libgnat/system-vxworks-ppc.ads: Likewise.
62         * libgnat/system-vxworks-x86-kernel.ads: Likewise.
63         * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
64         * libgnat/system-vxworks-x86-rtp.ads: Likewise.
65         * libgnat/system-vxworks-x86-vthread.ads: Likewise.
66         * libgnat/system-vxworks-x86.ads: Likewise.
67         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
68         * libgnat/system-vxworks7-aarch64.ads: Likewise.
69         * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
70         * libgnat/system-vxworks7-arm.ads: Likewise.
71         * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
72         * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
73         * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
74         * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
75         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
76         * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
77         * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
78         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
79         * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
80         * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
81         * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
82         * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
83         * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
84         * repinfo.adb: Likewise.
85         * repinfo.ads: Likewise.
86         * rtsfind.ads: Likewise.
87         * sem_aux.adb: Likewise.
88         * sem_aux.ads: Likewise.
89         * sem_ch13.adb: Likewise.
90         * sem_ch13.ads: Likewise.
91         * sem_util.adb (Validity_Checks_Suppressed, TSS,
92         Is_All_Null_Statements, Known_Non_Negative,
93         Non_Limited_Designated_Type, Get_Binary_Nkind, Get_Unary_Nkind,
94         Is_Protected_Operation, Number_Components, Package_Body,
95         Validate_Independence, Independence_Checks): Likewise; update
96         comments.
97         * targparm.adb: Likewise.
98         * targparm.ads (AAM, AAM_Str, Fractional_Fixed_Ops,
99         Frontend_Layout, Make_Detach_Call, Target_Has_Fixed_Ops, Detach,
100         Back_End_Layout, Create_Dynamic_SO_Ref, Get_Dynamic_SO_Entity,
101         Is_Dynamic_SO_Ref, Is_Static_SO_Ref,
102         Fractional_Fixed_Ops_On_Target): Likewise.
103         * validsw.adb (Save_Validity_Check_Options,
104         Set_Default_Validity_Check_Options): Likewise.
105         * validsw.ads: Likewise.
107 2020-12-17  Arnaud Charlet  <charlet@adacore.com>
109         * symbols.ads, symbols.adb: Removed no longer used.
111 2020-12-17  Arnaud Charlet  <charlet@adacore.com>
113         * sem_util.adb (New_Requires_Transient_Scope): Renamed
114         Requires_Transient_Scope.
115         (Requires_Transient_Scope, Old_Requires_Transient_Scope,
116         Results_Differ): Removed.
117         * debug.adb: Remove -gnatdQ.
119 2020-12-17  Eric Botcazou  <ebotcazou@adacore.com>
121         * libgnat/s-valrea.adb (Need_Extra): Fix comment.
123 2020-12-17  Piotr Trojanek  <trojanek@adacore.com>
125         * sem_ch5.adb (Analyze_Case_Statement): Move modification of
126         Unblocked_Exit_Count after early return statements; fix typo in
127         comment.
129 2020-12-17  Piotr Trojanek  <trojanek@adacore.com>
131         * sem_ch5.adb (Analyze_Case_Statement): Change local variable
132         Exp to constant; remove unreferenced Last_Choice variable;
133         reduce scope of other variables.
134         (Analyze_If_Statement): Reduce scope of a local variable; add
135         comment.
137 2020-12-17  Piotr Trojanek  <trojanek@adacore.com>
139         * opt.ads (Multiple_Unit_Index): Refine type from Int to Nat.
141 2020-12-17  Piotr Trojanek  <trojanek@adacore.com>
143         * sem_util.adb (In_Check_Node): Add guard and rename Node to
144         Par, just like it is done in surrounding routines, e.g.
145         In_Assertion_Expression_Pragma and In_Generic_Formal_Package.
147 2020-12-17  Bob Duff  <duff@adacore.com>
149         * libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
150         libgnat/a-cdlili.adb, libgnat/a-cdlili.ads,
151         libgnat/a-cidlli.adb, libgnat/a-cidlli.ads,
152         libgnat/a-cobove.adb, libgnat/a-cobove.ads,
153         libgnat/a-coinve.adb, libgnat/a-coinve.ads,
154         libgnat/a-convec.adb, libgnat/a-convec.ads: Add *_Vector
155         operations, remove default for Count, rename Append_One to be
156         Append.
158 2020-12-17  Arnaud Charlet  <charlet@adacore.com>
160         * sem_res.adb (Resolve_Declare_Expression): Need to establish a
161         transient scope in case Expression (N) requires actions to be
162         wrapped.  Code cleanup.
163         * exp_ch7.adb, exp_ch11.adb: Code cleanup.
165 2020-12-17  Piotr Trojanek  <trojanek@adacore.com>
167         * par-ch3.adb (P_Identifier_Declarations): Reuse
168         Error_Msg_Ada_2020_Feature for object renaming without subtype.
169         * par-ch4.adb (P_Primary): Likewise for target name.
170         (P_Iterated_Component_Association): Likewise for iterated
171         component.
172         (P_Declare_Expression): Likewise for declare expression.
173         * par-ch6.adb (P_Formal_Part): Likewise for aspect on formal
174         parameter.
175         * sem_aggr.adb (Resolve_Delta_Aggregate): Ditto.
176         * sem_ch8.adb (Analyze_Object_Renaming): Reuse
177         Error_Msg_Ada_2020_Feature.
178         * sem_ch13.adb (Validate_Aspect_Aggregate): Reuse
179         Error_Msg_Ada_2020_Feature; use lower case for "aspect" and
180         don't use underscore for "Ada_2020"; don't give up on analysis
181         in Ada 2012 mode.
182         (Validate_Aspect_Stable_Properties): Reuse
183         Error_Msg_Ada_2020_Feature; use lower case for "aspect"; minor
184         style fixes.
186 2020-12-17  Arnaud Charlet  <charlet@adacore.com>
188         * sem_ch4.adb (Analyze_Selected_Component): Request a compile
189         time error replacement in Apply_Compile_Time_Constraint_Error
190         in case of an invalid field.
191         * sem_ch3.adb (Create_Constrained_Components): Take advantage of
192         Gather_Components also in the case of a record extension and
193         also constrain records in the case of compile time known discriminant
194         values, as already done in gigi.
195         * sem_util.ads, sem_util.adb (Gather_Components): New parameter
196         Allow_Compile_Time to allow compile time known (but non static)
197         discriminant values, needed by Create_Constrained_Components,
198         and new parameter Include_Interface_Tag.
199         (Is_Dependent_Component_Of_Mutable_Object): Use Original_Node to
200         perform check on the original tree.
201         (Is_Object_Reference): Likewise.  Only call Original_Node when
202         relevant via a new function Safe_Prefix.
203         (Is_Static_Discriminant_Component, In_Check_Node): New.
204         (Is_Actual_Out_Or_In_Out_Parameter): New.
205         * exp_ch4.adb (Expand_N_Selected_Component): Remove no longer needed
206         code preventing evaluating statically discriminants in more cases.
207         * exp_ch5.adb (Expand_N_Loop_Statement): Simplify expansion of loops
208         with an N_Raise_xxx_Error node to avoid confusing the code generator.
209         (Make_Component_List_Assign): Try to find a constrained type to
210         extract discriminant values from, so that the case statement
211         built gets an opportunity to be folded by
212         Expand_N_Case_Statement.
213         (Expand_Assign_Record): Update comments, code cleanups.
214         * sem_attr.adb (Analyze_Attribute): Perform most of the analysis
215         on the original prefix node to deal properly with a prefix rewritten
216         as a N_Raise_xxx_Error.
217         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Handle properly
218         a discrete subtype definition being rewritten as N_Raise_xxx_Error.
219         * sem_ch8.adb (Analyze_Object_Renaming): Handle N_Raise_xxx_Error
220         nodes as part of the expression being renamed.
221         * sem_eval.ads, sem_eval.adb (Fold, Eval_Selected_Component): New.
222         (Compile_Time_Known_Value, Expr_Value, Expr_Rep_Value): Evaluate
223         static discriminant component values.
224         * sem_res.adb (Resolve_Selected_Component): Call
225         Eval_Selected_Component.
227 2020-12-17  Piotr Trojanek  <trojanek@adacore.com>
229         * exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Remove
230         folding of discrete values.
231         * exp_intr.adb (Expand_Unc_Conversion): Analyze, resolve and
232         evaluate (if possible) calls to instances of
233         Ada.Unchecked_Conversion after they have been expanded into
234         N_Unchecked_Type_Conversion.
235         * sem_eval.adb (Eval_Unchecked_Conversion): Add folding of
236         discrete values.
238 2020-12-17  Eric Botcazou  <ebotcazou@adacore.com>
240         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Likewise.
241         * exp_imgv.adb (Expand_Value_Attribute): Use RE_Value_Long_Float in
242         lieu of RE_Value_Long_Long_Float as fallback for fixed-point types.
243         Also use it for Long_Long_Float if it has same size as Long_Float.
244         * libgnat/s-imgrea.adb: Replace Powten_Table with Powen_LLF.
245         * libgnat/s-powflt.ads: New file.
246         * libgnat/s-powlfl.ads: Likewise.
247         * libgnat/s-powtab.ads: Rename to...
248         * libgnat/s-powllf.ads: ...this.
249         * libgnat/s-valflt.ads: Add with clause for System.Powten_Flt and
250         pass its table as actual parameter to System.Val_Real.
251         * libgnat/s-vallfl.ads: Likewise for System.Powten_LFlt.
252         * libgnat/s-valllf.ads: Likewise for System.Powten_LLF.
253         * libgnat/s-valrea.ads: Add Maxpow and Powten_Address parameters.
254         * libgnat/s-valrea.adb: Add pragma Warnings (Off).
255         (Need_Extra): New boolean constant.
256         (Precision_Limit): Set it according to Need_Extra.
257         (Impl): Adjust actual parameter.
258         (Integer_to_Rea): Add assertion on the machine radix. Take into
259         account the extra digit only if Need_Extra is true.  Reimplement
260         the computation of the final value for bases 2, 4, 8, 10 and 16.
261         * libgnat/s-valued.adb (Impl): Adjust actual parameter.
262         (Scan_Decimal): Add pragma Unreferenced.
263         (Value_Decimal): Likewise.
264         * libgnat/s-valuef.adb (Impl): Adjust actual parameter.
265         * libgnat/s-valuer.ads (Floating): Remove.
266         (Round): New formal parameter.
267         * libgnat/s-valuer.adb (Round_Extra): New procedure.
268         (Scan_Decimal_Digits): Use it to round the extra digit if Round
269         is set to True in the instantiation.
270         (Scan_Integral_Digits): Likewise.
272 2020-12-17  Erwan Le Guillou  <leguillou@adacore.com>
274         * libgnat/system-lynxos178-ppc.ads,
275         libgnat/system-lynxos178-x86.ads: Fix small typo in comments.
277 2020-12-17  Eric Botcazou  <ebotcazou@adacore.com>
279         * exp_dbug.adb (Get_Encoded_Name): Generate encodings for fixed
280         point types only if -fgnat-encodings=all is specified.
282 2020-12-17  Justin Squirek  <squirek@adacore.com>
284         * checks.adb (Build_Discriminant_Checks): Add condition to
285         replace references to the current instance of the type when we
286         are within an Init_Proc.
287         (Replace_Current_Instance): Examine a given node and replace the
288         current instance of the type with the corresponding _init
289         formal.
290         (Search_And_Replace_Current_Instance): Traverse proc which calls
291         Replace_Current_Instance in order to replace all references
292         within a given expression.
294 2020-12-17  Piotr Trojanek  <trojanek@adacore.com>
296         * par-ch12.adb (P_Formal_Derived_Type_Definition): Complain
297         about formal type with aspect specification, which only become
298         legal in Ada 2020.
299         * par-ch9.adb (P_Protected_Operation_Declaration_Opt): Reuse
300         Error_Msg_Ada_2005_Extension.
301         (P_Entry_Declaration): Likewise.
302         * scng.adb (Scan): Improve diagnostics for target_name; emit
303         error, but otherwise continue in earlier than Ada 2020 modes.
305 2020-12-17  Ed Schonberg  <schonberg@adacore.com>
307         * libgnat/a-cbsyqu.ads (Implementation): Provide a box
308         initialization for the element array used internally to
309         represent the queue, so that its components are properly
310         initialized if the given element type has default
311         initialization. Suppress warnings on the rest of the package in
312         case the element type has no default or discriminant, because it
313         is bound to be confusing to the user.
315 2020-12-17  Arnaud Charlet  <charlet@adacore.com>
317         * sem_util.adb (Inherit_Predicate_Flags): No-op before Ada 2012.
319 2020-12-17  Arnaud Charlet  <charlet@adacore.com>
321         * exp_ch7.adb (Make_Final_Call, Make_Init_Call): Take protected
322         types into account.
323         * sem_util.ads: Fix typo.
325 2020-12-17  Yannick Moy  <moy@adacore.com>
327         * checks.adb: Rework error messages.
328         * exp_ch3.adb: Likewise.
329         * freeze.adb: Likewise.
330         * lib-load.adb: Likewise.
331         * par-ch12.adb: Likewise.
332         * par-ch3.adb: Likewise.
333         * par-ch4.adb: Likewise.
334         * par-ch9.adb: Likewise.
335         * sem_aggr.adb: Likewise.
336         * sem_attr.adb: Likewise.
337         * sem_cat.adb: Likewise.
338         * sem_ch10.adb: Likewise.
339         * sem_ch12.adb: Likewise.
340         (Instantiate_Type): Fix CODEFIX comment, applicable only on
341         continuation message, and identify the second message as a
342         continuation.
343         * sem_ch13.adb: Rework error messages.
344         * sem_ch3.adb: Likewise.
345         * sem_ch4.adb: Likewise.
346         * sem_ch5.adb: Likewise.
347         * sem_ch6.adb: Likewise.
348         * sem_ch8.adb: Likewise.
349         * sem_ch9.adb: Likewise.
350         * sem_prag.adb: Likewise.
351         * sem_res.adb: Likewise.
352         * sem_util.adb: Likewise.
353         (Wrong_Type): Fix CODEFIX comment, applicable only on
354         continuation message, and identify the second message as a
355         continuation.
356         * symbols.adb: Rework error messages.
358 2020-12-17  Arnaud Charlet  <charlet@adacore.com>
360         * sem_attr.adb (OK_Self_Reference): Return True if node does not
361         come from source (e.g. a rewritten aggregate).
363 2020-12-17  Piotr Trojanek  <trojanek@adacore.com>
365         * sem_ch13.adb (Parse_Aspect_Stable_Properties): Fix style;
366         limit the scope of local variables; remove extra assignment in
367         Extract_Entity.
368         (Validate_Aspect_Stable_Properties): Simplify with procedural
369         Next.
371 2020-12-16  Arnaud Charlet  <charlet@adacore.com>
373         * ali.ads, ali.adb, bindo-writers.adb, lib-writ.adb (Scope):
374         Renamed to IS_Scope.
376 2020-12-16  Joffrey Huguet  <huguet@adacore.com>
378         * libgnat/a-strfix.ads: Add postconditions and contract cases to
379         subprograms.
381 2020-12-16  Ed Schonberg  <schonberg@adacore.com>
383         * sem_ch5.adb (Analyze_Iterator_Specification): If iterator
384         filter is present, preanalyze filter without expansion.
385         (Analyze_Loop_Parameter_Specification): When
386         loop_Parameter_Specification is rewritten as
387         Iterator_Specification, transfer Iterator_Filter if present.
389 2020-12-16  Doug Rupp  <rupp@adacore.com>
391         * libgnat/s-objrea.ads (Object_Arch): Add ARM enum
392         * libgnat/s-objrea.adb (Initialize): Add EM_ARM case.
393         (Read_Address): Add ARM case to 32bit read.
394         * Makefile.rtl: Add trasym units to the runtime for armhf-linux.
396 2020-12-16  Dmitriy Anisimkov  <anisimko@adacore.com>
398         * libgnat/g-expect.adb (Non_Blocking_Spawn): Deallocate elements
399         on Arg_List after calling Set_Up_Child_Communications.
401 2020-12-16  Piotr Trojanek  <trojanek@adacore.com>
403         * par-ch3.adb (P_Modular_Type_Definition): Remove colon from
404         error message.
405         * sem_ch11.adb (Check_Duplication): Likewise.
406         * sem_ch3.adb (Derived_Type_Declaration): Likewise.
408 2020-12-16  Piotr Trojanek  <trojanek@adacore.com>
410         * par-ch12.adb (P_Formal_Object_Declarations): Refine types to
411         Pos.
413 2020-12-16  Piotr Trojanek  <trojanek@adacore.com>
415         * impunit.adb (Not_Impl_Defined_Unit): Fix typo in iteration
416         over Non_Imp_File_Names_12 array.
418 2020-12-16  Piotr Trojanek  <trojanek@adacore.com>
420         * exp_ch9.adb, sem_warn.adb: Simplify membership test.
422 2020-12-16  Piotr Trojanek  <trojanek@adacore.com>
424         * exp_ch6.adb, exp_util.adb, sem_ch4.adb, sem_disp.adb,
425         sem_elab.adb: Simplify membership test.
427 2020-12-16  Eric Botcazou  <ebotcazou@adacore.com>
429         * libgnat/s-powtab.ads (Maxpow): Use explicit formula in comment.
431 2020-12-16  Philippe Gil  <gil@adacore.com>
433         * libgnarl/s-tporft.adb (Register_Foreign_Thread): Set
434         Global_Task_Lock_Nesting before using allocator.
436 2020-12-16  Eric Botcazou  <ebotcazou@adacore.com>
438         * libgnat/s-valrea.adb (Maxexp32): New constant array.
439         (Maxexp64): Likewise.
440         (Maxexp80): Likewise.
441         (Integer_to_Real): New local constants Maxexp and B.
442         When the exponent is too negative, do the divison in two steps.
444 2020-12-16  Piotr Trojanek  <trojanek@adacore.com>
446         * doc/gnat_rm/implementation_defined_pragmas.rst
447         (Test_Case): Change integer to float literals.
448         * gnat_rm.texi: Regenerate.
450 2020-12-16  Piotr Trojanek  <trojanek@adacore.com>
452         * sem_ch13.adb (Analyze_Aspect_Specifications): Add a codefix
453         for extra parentheses around aspect Annotate expression; reject
454         "(null record)" aggregate and extra parentheses around aspect
455         Test_Case expression.
456         * sem_prag.adb (Analyze_Pragma): Reject "null", "(null record)"
457         and extra parentheses around pragma Contract_Cases; likewise for
458         pragma Subprogram_Variant.
460 2020-12-16  Dmitriy Anisimkov  <anisimko@adacore.com>
462         * adaint.h (__gnat_in_child_after_fork): New flag to express
463         child process side after fork call.
464         * adaint.c (__gnat_portable_spawn): Set flag
465         __gnat_in_child_after_fork.
466         * expect.c (__gnat_expect_fork): Set __gnat_in_child_after_fork
467         to one on child side.
468         * libgnat/memtrack.adb
469         (In_Child_After_Fork): Flag to disable memory tracking.
470         (Allow_Trace): New routine defining if memory should be tracked.
471         (Alloc, Realloc, Free): Use Allow_Trace in "if" condition
472         instead of First_Call.
474 2020-12-16  Yannick Moy  <moy@adacore.com>
476         * libgnat/a-tifiio.adb: Mark body not in SPARK.
477         * libgnat/a-tifiio.ads: Mark spec in SPARK.
478         * libgnat/a-tifiio__128.adb: Mark body not in SPARK.
480 2020-12-16  Eric Botcazou  <ebotcazou@adacore.com>
482         * libgnat/s-valuer.adb (Scan_Decimal_Digits): Tweak overflow test.
483         (Scan_Integral_Digits): Likewise.
485 2020-12-16  Pascal Obry  <obry@adacore.com>
487         * s-oscons-tmplt.c: Add some OS constants.
489 2020-12-15  Pascal Obry  <obry@adacore.com>
491         * libgnat/g-sercom__linux.adb (Set): Use cfsetospeed and
492         cfsetispeed to set the baud rate. Clear non-blocking serial port
493         status when blocking is requested.
495 2020-12-15  Eric Botcazou  <ebotcazou@adacore.com>
497         * libgnat/s-valrea.adb (Integer_to_Real): Always use Extra.
499 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
501         * par-ch5.adb (P_Condition): Simplify condition for warning
502         about extra parens and make it easier to understand.
504 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
506         * errout.ads (Error_Msg_Ada_2005_Extension): New routine (spec).
507         * errout.adb (Error_Msg_Ada_2005_Extension): New routine (body).
508         * par-ch10.adb: Reuse new routine; correct casing for "LIMITED
509         WITH".
510         * par-ch11.adb: Likewise.
511         * par-ch12.adb: Likewise.
512         * par-ch3.adb: Likewise.
513         * par-ch4.adb: Likewise; replace "box" with "<>".
514         * par-ch6.adb: Likewise.
515         * par-ch9.adb: Likewise; correct casing for "THEN ABORT".
517 2020-12-15  Eric Botcazou  <ebotcazou@adacore.com>
519         * doc/gnat_ugn/gnat_and_program_execution.rst: Minor fix.
520         * gnat_ugn.texi: Regenerate.
521         * libgnat/s-valuer.ads (Precision_Limit): New formal parameter.
522         * libgnat/s-valuer.adb (Precision_Limit): Remove.
523         (Scan_Decimal_Digits): Robustify overflow check.
524         (Scan_Integral_Digits): Likewise.
525         * libgnat/s-valrea.adb: Add assertion on the size of the unsigned
526         type and instantiate System.Value_R with the mantissa limit.
527         (Integer_to_Real): Add Extra parameter and take it into account.
528         (Scan_Real): Pass Extra to Integer_to_Real.
529         (Value_Real): Likewise.
530         * libgnat/s-valued.adb: Add assertion on the size of the unsigned
531         type and instantiate System.Value_R with the mantissa limit.
532         * libgnat/s-valuef.adb: Likewise.
534 2020-12-15  Justin Squirek  <squirek@adacore.com>
536         * contracts.adb, contracts.ads (Build_Postconditions_Procedure):
537         Add declarations for Postcond_Enabled,
538         Result_Object_For_Postcondition, and
539         Return_Success_For_Postcond, and place all postconditions within
540         an if statement to control their execution for interactions when
541         cleanup actions get generated.
542         (Get_Postcond_Enabled): Created to fetch object declared to
543         handle new expansion of postconditions.
544         (Get_Result_Object_For_Postcond): Created to fetch object
545         declared to handle new expansion of postconditions.
546         (Get_Return_Success_For_Postcond): Created to fetch object
547         declared to handle new expansion of postconditions.
548         * einfo.adb, einfo.ads: Modify flag Stores_Attribute_Old_Prefix
549         to apply to constants, variables, and types.
550         * exp_ch6.adb (Add_Return): Add assignment to
551         Return_Success_For_Postcond.
552         (Expand_Non_Function_Return): Add assignment to
553         Return_Success_For_Postcond
554         (Expand_Simple_Function_Return): Add assignment to
555         Result_Object_For_Postcond and Return_Success_For_Postcond.
556         * exp_ch7.adb (Build_Finalization_Master): Mark finalization
557         masters which finalize types created store 'Old objects as
558         storing 'Old objects.
559         (Build_Finalizer): Created to generated a unified and special
560         expansion for finalization when postconditions are present.
561         (Build_Finalizer_Helper): Renamed Build_Finalizer and added
562         parameter to facilitate the creation of separate finalization
563         routines for 'Old objects and general objects.
564         (Create_Finalizer): Add condition for the insertion of the
565         finalizer spec to avoid malformed trees.
566         (Expand_Cleanup_Actions): Move _postconditions and related
567         declarations to the new declarative section.  Fix the loop to
568         properly stop at the subprogram declaration for the
569         postconditions procedure and exclude its body from being moved
570         to the new list of declarations to avoid freezing issues.
571         * exp_prag.adb (Expand_Attributes): Mark temporary created to
572         store 'Old objects as storing a 'Old attribute.
573         * sem_ch6.adb (Find_What_Applies_To): Remove strange exception
574         to postconditions when traversing the scope stack.
575         * sem_prag.adb (Find_Related_Declaration_Or_Body): Use the newly
576         created Enclosing_HSS function to find the HSS for a potentially
577         nested statement.
578         * sem_util.adb, sem_util.ads (Declare_Indirect_Temp): Mark types
579         created to store 'Old objects as storing 'Old attributes.
580         (Enclosing_HSS): Created to find the enclosing handled sequence
581         of statements for a given statement.
582         * snames.ads-tmpl: Add multiple names to aid in the expansion of
583         finalization and to control the evaluation of postconditions.
584         Including _finalization_controller, a new routine to centralize
585         finalization actions and postcondition evaluation.
587 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
589         * par-ch5.adb (P_Loop_Parameter_Specification): Complain about
590         missing -gnat2020 switch.
591         (P_Iterator_Specification): Likewise.
593 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
595         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify with
596         Append_New.
598 2020-12-15  Eric Botcazou  <ebotcazou@adacore.com>
600         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Remove s-fatsfl$(objext)
601         and add s-valflt$(objext), s-vallfl$(objext), s-valllf$(objext).
602         * exp_attr.adb (Find_Fat_Info): Merge Short_Float and Float cases.
603         * exp_imgv.adb (Expand_Value_Attribute): Replace RE_Value_Real with
604         RE_Value_Long_Long_Float for fixed-point types and use appropriate
605         base type for floating-point types.
606         * rtsfind.ads (RTU_Id): Remove System_Fat_IEEE_Long_Float,
607         System_Fat_IEEE_Short_Float and System_Val_Real, add System_Val_Flt,
608         System_Val_LFlt and System_Val_LLF.
609         (RE_Id): Remove RE_Attr_IEEE_Long, RE_Fat_IEEE_Long,
610         RE_Attr_IEEE_Short, RE_Fat_IEEE_Short, RE_Attr_Short_Float, add
611         RE_Value_Float, RE_Value_Long_Float, RE_Value_Long_Long_Float,
612         (RE_Unit_Table): Likewise.
613         * libgnat/a-ticoau.ads: Add with clause for Float_Aux and make the
614         package generic.
615         (Get): Change parameter types to Num.
616         (Put): Likewise.
617         (Gets): Likewise.
618         (Puts): Likewise.
619         * libgnat/a-ticoau.adb: Remove clause and renaming for Float_Aux.
620         (Get): Change parameter types to Num.
621         (Gets): Likewise.
622         (Put): Likewise.
623         (Puts): Likewise.  Add conversion to Long_Long_Float.
624         * libgnat/a-ticoio.adb: Remove with clause for Ada.Text_IO, add with
625         clause for Float_Aux, add with and use clauses for System.Val_Flt,
626         System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux and
627         Complex_Aux on Float, Long_Float, and Long_Long_Float.
628         (OK_Float): New boolean constant.
629         (OK_Long_Float): Likewise.
630         (Get): Call appropriate Get routine from auxiliary package.
631         (Get): Call appropriate Gets routine from auxiliary package.
632         (Put): Call appropriate Put routine from auxiliary package.
633         (Put): Call appropriate Puts routine from auxiliary package.
634         * libgnat/a-tideau.adb: Remove with and use clause for Float_Aux.
635         * libgnat/a-tifiau.adb: Likewise.
636         * libgnat/a-tifiio.adb: Add with and use clause for System.Val_LLF.
637         Instantiate Float_Aux on Long_Long_Float.
638         (Get): Adjust call to Get routine from auxiliary package.
639         (Get): Adjust call to Gets routine from auxiliary package.
640         (Put): Adjust call to Put routine from auxiliary package.
641         (Put): Adjust call to Puts routine from auxiliary package.
642         * libgnat/a-tifiio__128.adb: Likewise.
643         (Get): Likewise.
644         (Get): Likewise.
645         (Put): Likewise.
646         (Put): Likewise.
647         * libgnat/a-tiflau.ads: Make the package generic.
648         (Get): Change parameter type to Num.
649         (Put): Likewise.
650         (Gets): Likewise.
651         (Puts): Likewise.
652         * libgnat/a-tiflau.adb: Remove clauses for System.Val_Real.
653         (Get): Change parameter type to Num and call Scan routine.
654         (Gets): Likewise.
655         (Load_Real): Move to...
656         (Put): Change parameter type and add conversion to Long_Long_Float.
657         (Puts): Likewise.
658         * libgnat/a-tiflio.adb: Add with and use clauses for System.Val_Flt,
659         System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
660         Long_Float and Long_Long_Float.
661         (OK_Float): New boolean constant.
662         (OK_Long_Float): Likewise.
663         (Get): Call appropriate Get routine from auxiliary package.
664         (Get): Call previous variant.
665         (Get): Call appropriate Gets routine from auxiliary package.
666         (Put): Call appropriate Put routine from auxiliary package.
667         (Put): Call previous variant.
668         (Put): Call appropriate Puts routine from auxiliary package.
669         * libgnat/a-tigeau.ads (Load_Real): New procedure.
670         * libgnat/a-tigeau.adb (Load_Real): ...here.
671         * libgnat/a-wtcoau.ads: Add with clause for Float_Aux and make the
672         package generic.
673         (Get): Change parameter types to Num.
674         (Put): Likewise.
675         (Gets): Likewise.
676         (Puts): Likewise.
677         * libgnat/a-wtcoau.adb: Remove clause and renaming for Float_Aux.
678         (Get): Change parameter types to Num.
679         (Gets): Likewise.
680         (Put): Likewise.
681         (Puts): Likewise.  Add conversion to Long_Long_Float.
682         * libgnat/a-wtcoio.ads: Remove use clause for Complex_Types and use
683         qualified names throughout accordingly.
684         * libgnat/a-wtcoio.adb: Remove clause for Ada.Unchecked_Conversion,
685         add with clause for Float_Aux, add clauses for System.Val_Flt,
686         System.Val_LFlt and System.Val_LLF. Add clause for Complex_Types.
687         Instantiate Float_Aux and Complex_Aux on Float, Long_Float, and
688         Long_Long_Float.  Remove LLF subtype and TFT instantiation.
689         (OK_Float): New boolean constant.
690         (OK_Long_Float): Likewise.
691         (Get): Call appropriate Get routine from auxiliary package.
692         (Get): Call appropriate Gets routine from auxiliary package.
693         (Put): Call appropriate Put routine from auxiliary package.
694         (Put): Call appropriate Puts routine from auxiliary package.
695         * libgnat/a-wtdeau.adb: Remove with and use clause for Float_Aux.
696         * libgnat/a-wtfiau.adb: Likewise.
697         * libgnat/a-wtfiio.adb: Add with and use clause for System.Val_LLF.
698         Instantiate Float_Aux on Long_Long_Float.
699         (Get): Adjust call to Get routine from auxiliary package.
700         (Get): Adjust call to Gets routine from auxiliary package.
701         (Put): Adjust call to Put routine from auxiliary package.
702         (Put): Adjust call to Puts routine from auxiliary package.
703         * libgnat/a-wtfiio__128.adb: Likewise.
704         (Get): Likewise.
705         (Get): Likewise.
706         (Put): Likewise.
707         (Put): Likewise.
708         * libgnat/a-wtflau.ads: Make the package generic.
709         (Get): Change parameter type to Num.
710         (Put): Likewise.
711         (Gets): Likewise.
712         (Puts): Likewise.
713         * libgnat/a-wtflau.adb: Remove clauses for System.Val_Real.
714         (Get): Change parameter type to Num and call Scan routine. Set
715         Ptr parameter lazily.
716         (Gets): Likewise.
717         (Load_Real): Move to...
718         (Put): Change parameter type and add conversion to Long_Long_Float.
719         Bump buffer length to Max_Real_Image_Length.
720         (Puts): Likewise.
721         * libgnat/a-wtflio.adb: Add with and use clauses for System.Val_Flt,
722         System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
723         Long_Float and Long_Long_Float.
724         (OK_Float): New boolean constant.
725         (OK_Long_Float): Likewise.
726         (Get): Call appropriate Get routine from auxiliary package.  Add
727         pragma Unsuppress (Range_Check) and manual validity check.
728         (Get): Call appropriate Gets routine from auxiliary package. Add
729         pragma Unsuppress (Range_Check) and manual validity check.
730         (Put): Call appropriate Put routine from auxiliary package.
731         (Put): Call appropriate Puts routine from auxiliary package.
732         * libgnat/a-wtgeau.ads (Load_Real): New procedure.
733         * libgnat/a-wtgeau.adb (Load_Real): ...here.
734         * libgnat/a-ztcoau.ads: Add with clause for Float_Aux and make the
735         package generic.
736         (Get): Change parameter types to Num.
737         (Put): Likewise.
738         (Gets): Likewise.
739         (Puts): Likewise.
740         * libgnat/a-ztcoau.adb: Remove clause and renaming for Float_Aux.
741         (Get): Change parameter types to Num.
742         (Gets): Likewise.
743         (Put): Likewise.
744         (Puts): Likewise.  Add conversion to Long_Long_Float.
745         * libgnat/a-ztcoio.ads: Remove use clause for Complex_Types and use
746         qualified names throughout accordingly.
747         * libgnat/a-ztcoio.adb: Remove clause for Ada.Unchecked_Conversion,
748         add with clause for Float_Aux, add clauses for System.Val_Flt,
749         System.Val_LFlt and System.Val_LLF. Add clause for Complex_Types.
750         Instantiate Float_Aux and Complex_Aux on Float, Long_Float, and
751         Long_Long_Float. Remove LLF subtype and TFT instantiation.
752         (OK_Float): New boolean constant.
753         (OK_Long_Float): Likewise.
754         (Get): Call appropriate Get routine from auxiliary package.
755         (Get): Call appropriate Gets routine from auxiliary package.
756         (Put): Call appropriate Put routine from auxiliary package.
757         (Put): Call appropriate Puts routine from auxiliary package.
758         * libgnat/a-ztdeau.adb: Remove with and use clause for Float_Aux.
759         * libgnat/a-ztfiau.adb: Likewise.
760         * libgnat/a-ztfiio.adb: Add with and use clause for System.Val_LLF.
761         Instantiate Float_Aux on Long_Long_Float.
762         (Get): Adjust call to Get routine from auxiliary package.
763         (Get): Adjust call to Gets routine from auxiliary package.
764         (Put): Adjust call to Put routine from auxiliary package.
765         (Put): Adjust call to Puts routine from auxiliary package.
766         * libgnat/a-ztfiio__128.adb: Likewise.
767         (Get): Likewise.
768         (Get): Likewise.
769         (Put): Likewise.
770         (Put): Likewise.
771         * libgnat/a-ztflau.ads: Make the package generic.
772         (Get): Change parameter type to Num.
773         (Put): Likewise.
774         (Gets): Likewise.
775         (Puts): Likewise.
776         * libgnat/a-ztflau.adb: Remove clauses for System.Val_Real.
777         (Get): Change parameter type to Num and call Scan routine. Set
778         Ptr parameter lazily.
779         (Gets): Likewise.
780         (Load_Real): Move to...
781         (Put): Change parameter type and add conversion to Long_Long_Float.
782         Bump buffer length to Max_Real_Image_Length.
783         (Puts): Likewise.
784         * libgnat/a-ztflio.adb: Add with and use clauses for System.Val_Flt,
785         System.Val_LFlt and System.Val_LLF. Instantiate Float_Aux on Float,
786         Long_Float and Long_Long_Float.
787         (OK_Float): New boolean constant.
788         (OK_Long_Float): Likewise.
789         (Get): Call appropriate Get routine from auxiliary package.  Add
790         pragma Unsuppress (Range_Check) and manual validity check.
791         (Get): Call appropriate Gets routine from auxiliary package. Add
792         pragma Unsuppress (Range_Check) and manual validity check.
793         (Put): Call appropriate Put routine from auxiliary package.
794         (Put): Call appropriate Puts routine from auxiliary package.
795         * libgnat/a-ztgeau.ads (Load_Real): New procedure.
796         * libgnat/a-ztgeau.adb (Load_Real): ...here.
797         * libgnat/s-fatsfl.ads: Delete.
798         * libgnat/s-valflt.ads: New package.
799         * libgnat/s-vallfl.ads: Likewise.
800         * libgnat/s-valllf.ads: Likewise.
801         * libgnat/s-valrea.ads: Make generic. Add assertions, defensive
802         code and clarify intent.
803         (Scan_Real): Change parameter type to Num.
804         (Value_Real): Likewise.
805         * libgnat/s-valrea.adb: Instantiate Value_R on Uns.
806         (Integer_to_Real): Change parameter and result to Num.
807         Call Float_Control.Reset only if the mantissa is 64 bits.  Use
808         a divide to compute the final value if the scale is negative.
809         (Scan_Real): Change result to Num.
810         (Value_Real): Likewise.
811         * libgnat/s-valuer.adb: Add assertions, defensive code and
812         clarify intent.
813         (F_Limit): Delete.
814         (I_Limit): Likewise.
815         (Precision_Limit): Always use the integer limit.
816         * libgnat/s-fatgen.adb: Add pragma Annotate.
818 2020-12-15  Yannick Moy  <moy@adacore.com>
820         * libgnat/a-tiflio.adb: Mark body not in SPARK.
821         * libgnat/a-tiflio.ads: Mark spec in SPARK.
823 2020-12-15  Arnaud Charlet  <charlet@adacore.com>
825         * exp_ch6.adb (Build_Procedure_Body_Form): Adjust, the
826         declaration of the procedure form is now insert before the
827         original function body rather than after.
828         (Expand_N_Subprogram_Declaration): Deal with private types whose
829         full views are arrays.
830         * exp_unst.adb (Unnest_Subprogram): Deal with private types.
831         (Needs_Fat_Pointer): Code cleanup.
832         * freeze.adb (Freeze_Subprogram): Ditto.
833         * exp_util.adb (Build_Procedure_Form): Insert the procedure form
834         decl before and not after.
835         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build missing
836         spec when needed for Transform_Function_Array.
837         * sem_util.adb (Get_Fullest_View): Deal with null entity.
839 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
841         * sem_ch13.adb (Analyze_Aspect_Specifications): Simplify code
842         for aspect Priority.
843         * sem_prag.adb (Analyze_Pragma): Simplify code for pragma
844         Priority.
846 2020-12-15  Arnaud Charlet  <charlet@adacore.com>
848         * exp_ch7.adb (Reset_Scopes_To_Block_Elab_Proc): Do not crash on
849         a block with no Identifier. Code cleanups.
851 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
853         * sem_attr.adb (Analyze_Attribute): Reuse existing code for
854         attribute Value when analyzing attributes Wide_Value and
855         Wide_Wide_Value.
857 2020-12-15  Pascal Obry  <obry@adacore.com>
859         * libgnat/g-diopit.adb (Find): Fix possible infinite recursion
860         in Find iterator.
861         * libgnat/g-diopit.ads (Find): Update comments accordingly.
863 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
865         * sem_attr.adb (Analyze_Attribute): Merge identical code for
866         Callable and Terminated attributes; refactor calls to Set_Etype
867         occurring in both THEN and ELSE branches of an IF statement for
868         attribute Storage_Size.
870 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
872         * sem_attr.adb (Analyze_Attribute): Merge identical code for
873         Wide_Wide_Width, Wide_Width and Width attributes.
875 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
877         * sem_attr.adb (Analyze_Attribute): Merge identical code for
878         Pred and Succ attributes.
880 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
882         * sem_attr.adb (Analyze_Attribute): Merge identical code for
883         Size, Object_Size and Value_Size attributes.
885 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
887         * sem_attr.adb (Analyze_Attribute): Consistently call
888         Check_Fixed_Point_Type before checking the number of attribute
889         expressions (like it is done for floating point types); reuse
890         Check_Fixed_Point_Type_0.
892 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
894         * exp_disp.adb (Make_Tags): Remove call to UI_To_Int.
895         * sem_attr.adb (Check_Array_Type): Likewise; also, refine type
896         of a local variable.
897         (Analyze_Attribute): Likewise.
898         (Get_Enclosing_Object): Likewise.
899         * sem_util.adb (Get_Enum_Lit_From_Pos): Likewise.
901 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
903         * sem_attr.adb (Analyze_Attribute): Merge identical code for
904         First_Bit/Last_Bit and Position attributes.
906 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
908         * sem_attr.adb (Analyze_Attribute): Merge identical code for
909         Machine_Radix and Mantissa attributes.
911 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
913         * sem_attr.adb (Analyze_Attribute): Merge identical code for
914         Machine_Overflows and Machine_Rounds attributes.
916 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
918         * sem_attr.adb (Analyze_Attribute): Merge identical code for
919         Large, Small, Safe_Large and Safe_Small attributes.
921 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
923         * sem_attr.adb (Analyze_Attribute): Merge identical code for
924         Epsilon, Model_Epsilon, Model_Small, Safe_First and Safe_Las
925         attributes.
927 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
929         * sem_attr.adb (Analyze_Attribute): Merge identical code for
930         Emax, Machine_Emax, Machine_Emin, Machine_Mantissa, Model_Emin,
931         Model_Mantissa and Safe_Emax attributes.
933 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
935         * sem_attr.adb (Analyze_Attribute): Merge identical code for
936         Denorm and Signed_Zeros attributes.
938 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
940         * sem_attr.adb (Analyze_Attribute): Merge identical code for
941         Adjacent, Copy_Sign and Remainder attributes.
942         (Check_Floating_Point_Type_2): Fix style in comment.
944 2020-12-15  Piotr Trojanek  <trojanek@adacore.com>
946         * sem_attr.adb (Analyze_Attribute): Merge identical code for
947         Compose, Leading_Part and Scaling attributes.
949 2020-12-14  Piotr Trojanek  <trojanek@adacore.com>
951         * sem_attr.adb (Analyze_Attribute): Resolve second parameter of
952         attribute Scaling just like it is resolved for a similar
953         attribute Compose.
955 2020-12-14  Piotr Trojanek  <trojanek@adacore.com>
957         * sem_attr.adb (Analyze_Attribute): Merge identical code for
958         First/Last, First_Bit/Last_Bit and First_Valid/Last_Valid
959         attributes.
961 2020-12-14  Piotr Trojanek  <trojanek@adacore.com>
963         * sem_attr.adb (Analyze_Attribute): Merge similar code for
964         Truncation and other floating point attributes.
966 2020-12-14  Piotr Trojanek  <trojanek@adacore.com>
968         * sem_attr.adb (Analyze_Attribute): Merge identical code for
969         Ceiling, Floor, Fraction, Machine, Machine_Rounding, Model,
970         Rounding and Unbiased_Rounding.
972 2020-12-14  Eric Botcazou  <ebotcazou@adacore.com>
974         * libgnat/a-tifiio.adb: Adjust documentation.
975         (OK_Get_32): Compare the object size of the base type.
976         (OK_Put_32): Likewise.
977         (OK_Get_64): Likewise.
978         (OK_Put_64): Likewise.
979         * libgnat/a-tifiio__128.adb: Adjust documentation.
980         (OK_Get_32): Compare the object size of the base type.
981         (OK_Put_32): Likewise.
982         (OK_Get_64): Likewise.
983         (OK_Put_64): Likewise.
984         (OK_Get_128): Likewise.
985         (OK_Put_128): Likewise.
986         * libgnat/a-wtfiio.adb (OK_Get_32): Likewise.
987         (OK_Put_32): Likewise.
988         (OK_Get_64): Likewise.
989         (OK_Put_64): Likewise
990         * libgnat/a-wtfiio__128.adb (OK_Get_32): Likewise.
991         (OK_Put_32): Likewise.
992         (OK_Get_64): Likewise.
993         (OK_Put_64): Likewise.
994         (OK_Get_128): Likewise.
995         (OK_Put_128): Likewise.
996         * libgnat/a-ztfiio.adb (OK_Get_32): Likewise.
997         (OK_Put_32): Likewise.
998         (OK_Get_64): Likewise.
999         (OK_Put_64): Likewise
1000         * libgnat/a-ztfiio__128.adb (OK_Get_32): Likewise.
1001         (OK_Put_32): Likewise.
1002         (OK_Get_64): Likewise.
1003         (OK_Put_64): Likewise.
1004         (OK_Get_128): Likewise.
1005         (OK_Put_128): Likewise.
1007 2020-12-14  Eric Botcazou  <ebotcazou@adacore.com>
1009         * libgnat/a-tifiio.adb (Get): Replace Current_Input with Current_In.
1010         * libgnat/a-tifiio__128.adb: (Get): Likewise.
1011         * libgnat/a-wtcoio.adb (Get): Likewise.
1012         (Put): Replace Current_Output with Current_Out.
1013         * libgnat/a-wtdeio.adb (Get): Likewise.
1014         (Put): Likewise.
1015         * libgnat/a-wtdeio__128.adb (Get): Likewise.
1016         (Put): Likewise.
1017         * libgnat/a-wtenio.adb (Get): Likewise.
1018         (Put): Likewise.
1019         * libgnat/a-wtfiio.adb (Get): Likewise.
1020         (Put): Likewise.
1021         * libgnat/a-wtfiio__128.adb (Get): Likewise.
1022         (Put): Likewise.
1023         * libgnat/a-wtflio.adb (Get): Likewise.
1024         (Put): Likewise.
1025         * libgnat/a-wtinio.adb (Get): Likewise.
1026         (Put): Likewise.
1027         * libgnat/a-wtinio__128.adb (Get): Likewise.
1028         (Put): Likewise.
1029         * libgnat/a-wtmoio.adb (Get): Likewise.
1030         (Put): Likewise.
1031         * libgnat/a-wtmoio__128.adb (Get): Likewise.
1032         (Put): Likewise.
1033         * libgnat/a-ztcoio.adb (Get): Likewise.
1034         (Put): Likewise.
1035         * libgnat/a-ztdeio.adb (Get): Likewise.
1036         (Put): Likewise.
1037         * libgnat/a-ztdeio__128.adb (Get): Likewise.
1038         (Put): Likewise.
1039         * libgnat/a-ztenio.adb (Get): Likewise.
1040         (Put): Likewise.
1041         * libgnat/a-ztfiio.adb (Get): Likewise.
1042         (Put): Likewise.
1043         * libgnat/a-ztfiio__128.adb (Get): Likewise.
1044         (Put): Likewise.
1045         * libgnat/a-ztflio.adb (Get): Likewise.
1046         (Put): Likewise.
1047         * libgnat/a-ztinio.adb (Get): Likewise.
1048         (Put): Likewise.
1049         * libgnat/a-ztinio__128.adb (Get): Likewise.
1050         (Put): Likewise.
1051         * libgnat/a-ztmoio.adb (Get): Likewise.
1052         (Put): Likewise.
1053         * libgnat/a-ztmoio__128.adb (Get): Likewise.
1054         (Put): Likewise.
1056 2020-12-14  Justin Squirek  <squirek@adacore.com>
1058         * sem_util.adb, sem_util.ads (In_Generic_Formal_Package):
1059         Created to identify type declarations occurring within generic
1060         formal packages.
1061         * sem_res.adb (Resolve_Allocator): Add condition to avoid
1062         emitting an error for allocators when the type being allocated
1063         is class-wide and from a generic formal package.
1065 2020-12-14  Eric Botcazou  <ebotcazou@adacore.com>
1067         * libgnat/s-fatgen.adb (Tiny80): Add alignment clause.
1069 2020-12-14  Arnaud Charlet  <charlet@adacore.com>
1071         * exp_util.adb (Process_Current_Value_Condition): Add assertion.
1072         * libgnat/s-fatgen.adb (Scaling): Add annotation.
1074 2020-12-14  Arnaud Charlet  <charlet@adacore.com>
1076         * sem_eval.adb (Fold_Shift): Compute values using the base type.
1078 2020-12-14  Eric Botcazou  <ebotcazou@adacore.com>
1080         * libgnat/s-fatgen.adb: Add with clause for Interfaces and use
1081         type clause for Interfaces.Unsigned_64.
1082         (Small): Comment out.
1083         (Tiny): Likewise.
1084         (Tiny16): New integer constant.
1085         (Tiny32): Likewise.
1086         (Tiny64): Likewise.
1087         (Tiny80): New integer array constant.
1088         (Pred): Declare a local overlay for Tiny.
1089         (Succ): Likewise.
1091 2020-12-14  Eric Botcazou  <ebotcazou@adacore.com>
1093         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix again packed
1094         array type in complex cases where array is Volatile.
1095         * exp_util.adb (Remove_Side_Effects): Do not force a renaming to
1096         be handled by the back-end.
1098 2020-12-14  Eric Botcazou  <ebotcazou@adacore.com>
1100         * libgnat/s-fatgen.adb: Remove use clause for
1101         System.Unsigned_Types.
1102         (Scaling): Add renaming of System.Unsigned_Types and use type
1103         clause for Long_Long_Unsigned.
1105 2020-12-14  Eric Botcazou  <ebotcazou@adacore.com>
1107         * libgnat/s-fatgen.ads (Compose): Add pragma Inline.
1108         (Copy_Sign): Likewise.
1109         (Exponent): Likewise.
1110         (Fraction): Likewise.
1111         * libgnat/s-fatgen.adb: Remove with clause for System, add
1112         with and use clauses for System.Unsigned_Types.
1113         Add pragma Warnings (Off) for non-static constants.
1114         Remove precomputed tables of powers of radix and add a few
1115         constants describing the floating-point format.
1116         (Gradual_Scaling): Delete.
1117         (Copy_Sign): Reimplement directly.
1118         (Decompose): Likewise.
1119         (Scaling): Likewise.
1120         (Pred): Speed up.
1121         (Succ): Likewise.
1122         (Truncation): Tidy up.
1123         (Valid): Move constants to library level.
1125 2020-12-14  Piotr Trojanek  <trojanek@adacore.com>
1127         * sem_eval.adb (CV_Cache): Remove initialization at elaboration.
1129 2020-12-14  Gary Dismukes  <dismukes@adacore.com>
1131         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1132         Correct documentation of the -gnatw.K switch to say that it
1133         disables rather than activates the warning.
1134         * gnat_ugn.texi: Regenerate.
1136 2020-12-14  Doug Rupp  <rupp@adacore.com>
1138         * tracebak.c: Add a section for ARM Linux.
1140 2020-12-14  Ghjuvan Lacambre  <lacambre@adacore.com>
1142         * par-ch3.adb (P_Discriminant_Part_Opt): Parse aspects, update
1143         documentation.
1144         * par-ch6.adb (P_Return_Statement): Likewise.
1145         * par-ch9.adb (P_Entry_Index_Specification): Likewise.
1147 2020-12-14  Gary Dismukes  <dismukes@adacore.com>
1149         * exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Move
1150         generation of the call for DIC check past the optional
1151         generation of calls to controlled Initialize procedures.
1152         * exp_ch3.adb
1153         (Build_Array_Init_Proc.Init_One_Dimension.Possible_DIC_Call):
1154         Suppress generation of a DIC call when the array component type
1155         is controlled.  The call will now be generated later inside the
1156         array's DI (Deep_Initialize) procedure.
1157         * exp_ch7.adb
1158         (Make_Deep_Array_Body.Build_Initialize_Statements): Generate a
1159         DIC call (when needed by the array component type) after any
1160         call to the component type's controlled Initialize procedure, or
1161         generate the DIC call by itself if there's no Initialize to
1162         call.
1163         * sem_aggr.adb (Resolve_Record_Aggregate.Add_Association):
1164         Simplify condition to only test Is_Box_Init_By_Default (previous
1165         condition was overkill, as well as incorrect in some cases).
1166         * sem_elab.adb (Active_Scenarios.Output_Call): For
1167         Default_Initial_Condition, suppress call to
1168         Output_Verification_Call when the subprogram is a partial DIC
1169         procedure.
1171 2020-12-14  Eric Botcazou  <ebotcazou@adacore.com>
1173         * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Round>:
1174         Adjust commentary and set the Rounded_Result flag on the type
1175         conversion node when the node is needed.
1176         * exp_ch4.adb (Expand_N_Type_Conversion): Minor tweak.
1177         (Fixup_Universal_Fixed_Operation): Look through the type conversion
1178         only when it is to Universal_Real.
1179         * exp_fixd.adb: Remove with and use clauses for Snames.
1180         (Build_Divide): Remove redundant test.
1181         (Expand_Convert_Float_To_Fixed): Use Rounded_Result flag on the
1182         node to set the truncation parameter.
1184 2020-12-14  Piotr Trojanek  <trojanek@adacore.com>
1186         * sem_prag.adb (Analyze_Refinement_Clause): Simplify recently
1187         added code for preventing cascaded errors.
1189 2020-12-14  Bob Duff  <duff@adacore.com>
1191         * exp_ch6.adb (Is_Build_In_Place_Result_Type): Further narrow
1192         the conditions under which we enable build-in-place for
1193         controlled types.
1195 2020-12-14  Yannick Moy  <moy@adacore.com>
1197         * sem_warn.adb (Output_Non_Modified_In_Out_Warnings): Use right
1198         warning control character 'k' in both comment and call to
1199         Errout_Msg_N.
1201 2020-12-14  Yannick Moy  <moy@adacore.com>
1203         * sem_prag.adb (Analyze_Refined_State_In_Decl_Part): Refine the
1204         error message for missing Part_Of on constituent. Avoid
1205         cascading error.
1207 2020-12-14  Piotr Trojanek  <trojanek@adacore.com>
1209         * sem_prag.adb (Analyze_Depends_In_Decl_Part): Replace early
1210         returns with goto Leave.
1211         (Collect_Subprogram_Inputs_Outputs): Fix style in comment.
1213 2020-12-14  Eric Botcazou  <ebotcazou@adacore.com>
1215         * libgnat/s-fatgen.ads (Valid): Add again pragma Inline.
1216         * libgnat/s-fatgen.adb (Valid): Improve commentary, tidy up left
1217         and right, and remove superfluous trick for denormalized numbers.
1219 2020-12-14  Piotr Trojanek  <trojanek@adacore.com>
1221         * sem_prag.adb (Find_Role): Constant object of
1222         access-to-constant and access-to-subprogram types are not
1223         writable.
1224         (Collect_Subprogram_Inputs_Outputs): In-parameters of
1225         access-to-variable type can act as outputs of the Depends
1226         contracts.
1228 2020-12-14  Piotr Trojanek  <trojanek@adacore.com>
1230         * sa_messages.ads: Reference Subprogram_Variant in the comment
1231         for Assertion_Check.
1232         * sem_prag.adb (Analyze_Pragma): Add Subprogram_Variant as an
1233         ID_ASSERTION_KIND; move Default_Initial_Condition as an
1234         RM_ASSERTION_KIND.
1236 2020-12-14  Yannick Moy  <moy@adacore.com>
1238         * inline.adb (Cannot_Inline): Add No_Info parameter to disable
1239         info message.
1240         * inline.ads (Cannot_Inline): When No_Info is set to True, do
1241         not issue info message in GNATprove mode, but still mark the
1242         subprogram as not always inlined.
1243         * sem_res.adb (Resolve_Call): Always call Cannot_Inline inside
1244         an assertion expression.
1246 2020-12-14  Eric Botcazou  <ebotcazou@adacore.com>
1248         * libgnat/s-imguti.ads (Set_Decimal_Digits): Adjust documentation.
1250 2020-12-10  Ed Schonberg  <schonberg@adacore.com>
1252         PR ada/98230
1253         * exp_attr.adb (Expand_N_Attribute_Reference, case Mod): Use base
1254         type of argument to obtain static bound and required size.
1256 2020-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1258         * gcc-interface/Make-lang.in: Remove ^L characters.
1259         * gcc-interface/decl.c (create_concat_name): Add cast.
1261 2020-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1263         * gcc-interface/trans.c (maybe_make_gnu_thunk): Return false if the
1264         target is local and thunk and target do not have the same context.
1266 2020-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1268         * gcc-interface/trans.c (lvalue_for_aggregate_p): Also return true
1269         for return statements.
1270         * gcc-interface/utils.c (gnat_write_global_declarations): Use the
1271         maximum index for the dummy object to avoid a name collision.
1273 2020-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1275         * gcc-interface/decl.c (gnat_to_gnu_entity) <Fixed_Point_Type>: Put
1276         back the "else" unduly removed.
1278 2020-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1280         * gcc-interface/trans.c (Call_to_gnu): Also create a temporary for
1281         the return value if the LHS is a bit-field and the return type is
1282         a type padding a self-referential type.
1283         (gnat_to_gnu): Do not remove the padding on the result if it is too
1284         small with regard to the natural padding size.
1286 2020-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1288         * gcc-interface/utils.c (convert) <INTEGER_TYPE>: Call fold_convert
1289         in the cases where convert_to_integer is not called.
1290         <BOOLEAN_TYPE>: Call fold_convert instead of convert_to_integer.
1292 2020-12-07  Matthias Klose  <doko@ubuntu.com>
1294         PR ada/97504
1295         * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <mips*-*-linux*>: Use wraplf
1296         version of Aux_Long_Long_Float.
1298 2020-11-30  Pierre-Marie de Rodat  <derodat@adacore.com>
1300         * libgnat/s-trasym.ads: Update the list of supported platforms.
1302 2020-11-30  Arnaud Charlet  <charlet@adacore.com>
1304         * gcc-interface/Makefile.in, gcc-interface/trans.c: Remove ^L
1305         characters.
1307 2020-11-30  Arnaud Charlet  <charlet@adacore.com>
1309         * gcc-interface/Makefile.in (GNATLIBFLAGS): Enable checks by
1310         default.
1311         * libgnat/s-bitfie.ads: Suppress alignment checks.
1312         * libgnat/s-bituti.adb: Minor reformatting.
1313         * libgnat/s-secsta.adb (SS_Allocate): Support Size = 0.
1315 2020-11-30  Arnaud Charlet  <charlet@adacore.com>
1317         * exp_ch3.adb (Replace_Discr_Ref): Removed, no longer needed.
1319 2020-11-30  Piotr Trojanek  <trojanek@adacore.com>
1321         * sem_ch5.adb (Process_Statements): Replace low-level membership
1322         test with a high-level wrapper.
1324 2020-11-30  Piotr Trojanek  <trojanek@adacore.com>
1326         * sem_ch5.adb (Set_Assignment_Type): Combine calls to Ekind
1327         using membership test.
1328         (Should_Transform_BIP_Assignment): Replace assignment to a
1329         "Result" variable with simple return statements; avoid repeated
1330         calls to Unqual_Conv by declaring a local constant.
1332 2020-11-30  Piotr Trojanek  <trojanek@adacore.com>
1334         * lib-xref.adb (Generate_Reference): Fix reference to
1335         Analyze_Assignment.
1336         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Reuse existing
1337         utility function.
1339 2020-11-30  Eric Botcazou  <ebotcazou@adacore.com>
1341         * contracts.adb (Check_Type_Or_Object_External_Properties): Make
1342         sure to exclude all return objects from the SPARK legality rule
1343         on effectively volatile variables.
1344         * exp_ch6.adb (Expand_N_Extended_Return_Statement): Use the fast
1345         track only when the declaration of the return object can be
1346         dropped.
1348 2020-11-30  Gary Dismukes  <dismukes@adacore.com>
1350         * einfo.ads (Is_Partial_DIC_Procedure): New function.
1351         (Partial_DIC_Procedure): New procedure.
1352         * einfo.adb (Is_Partial_DIC_Procedure): New function to return
1353         whether a subprogram is a partial Default_Initial_Condition
1354         procedure by checking the name (to avoid adding a new field).
1355         (DIC_Procedure): Add a test that excludes partial DIC procedures
1356         from being returned.
1357         (Partial_DIC_Procedure): New procedure to return the partial DIC
1358         procedure of a type, if it has one (otherwise returns Empty).
1359         (Set_DIC_Procedure): Remove check for duplicate DIC procedures.
1360         * exp_aggr.adb (Gen_Assign): Generate a call to the type's DIC
1361         procedure in the case where an array component is default
1362         initialized (due to an association with a box).
1363         (Build_Record_Aggr_Code): For an extension aggregate, generate a
1364         call to the ancestor type's DIC procedure (if any) when the
1365         ancestor part is a subtype mark. For a record component
1366         association that was specified with a box (tested for by
1367         checking the new flag Was_Default_Init_Box_Association),
1368         generate a call to the component type's DIC procedure (if it has
1369         one).
1370         * exp_ch4.adb (Expand_N_Allocator): When the allocated object is
1371         default initialized and the designated type has a DIC aspect,
1372         generate a call to the DIC procedure.
1373         * exp_util.ads (Build_DIC_Call): Change the formal Obj_Id to
1374         name Obj_Name, and change its type from Entity_Id to Node_Id
1375         (and update comment).
1376         (Build_DIC_Procedure_Body): Add formal Partial_DIC, remove
1377         formal For_Freeze, and update comment accordingly.
1378         (Build_DIC_Procedure_Declaration): Add formal Partial_DIC and
1379         update comment.
1380         * exp_util.adb
1381         (Build_DIC_Call): Revised to use its Obj_Name (formerly Obj_Id)
1382         formal directly rather than calling New_Occurrence_Of on it, to
1383         allow arbitrary names to be passed rather than being limited to
1384         Entity_Ids.
1385         (Build_DIC_Procedure_Body): Call Add_Parent_DICs to generate
1386         checks for DICs associated with any parent types, implementing
1387         the required "additive" semantics for DICs. When building a DIC
1388         procedure body for a partial view (when Partial_DIC is True),
1389         call Add_Own_DIC when the type has its own DIC.  In the case of
1390         "full" DIC procedures, a call is generated to any partial DIC
1391         procedure of the type (unless the procedure has a null body),
1392         along with checks for any DICs inherited by the full view.
1393         (Build_DIC_Procedure_Declaration): Add handling for partial DIC
1394         procedures.  For the suffix of a regular DIC procedure's name,
1395         use "DIC" (instead of "Default_Initial_Condition"), and for the
1396         suffix of a partial DIC procedure's name, use "Partial_DIC".
1397         (Add_DIC_Check): Add the DIC pragma to the list of seen pragmas
1398         (Pragmas_Seen).
1399         (Add_Inherited_Tagged_DIC): Remove the formals Par_Typ,
1400         Deriv_Typ, and Obj_Id, and add formal Expr, which denotes DIC's
1401         expression. Remove the call to Replace_References (which is now
1402         done in Add_Inherited_DICs).
1403         (Add_Inherited_DICs): New procedure to locate a DIC pragma
1404         associated with a parent type, replace its references
1405         appropriately (such as any current instance references), and add
1406         a check for the DIC.
1407         (Add_Own_DIC): Add an Obj_Id formal to allow caller to pass the
1408         _init formal of the generated DIC procedure.
1409         (Add_Parent_DICs): New procedure to traverse a type's parents,
1410         looking for DICs associated with those and calling
1411         Add_Inherited_DICs to apply the appropriate DIC checks.
1412         (Is_Verifiable_DIC_Pragma): Treat pragmas that have an Empty
1413         first argument the same as a pragma without any arguments
1414         (returning False for that case).
1415         * exp_ch3.adb (Init_One_Dimension): Generate calls to the
1416         component's DIC procedure when needed.
1417         (Possible_DIC_Call): New function nested in Init_One_Dimension
1418         to build a call to the array component type's DIC-checking
1419         function when appropriate.
1420         (Build_Array_Init_Proc): The presence of a DIC on the component
1421         type is an additional condition for generating an init proc for
1422         an array type.
1423         (Build_Init_Statements): When the record component's type has a
1424         DIC, and the component declaration does not have an
1425         initialization expression, generate a call to the component
1426         type's DIC procedure.
1427         (Expand_N_Object_Declaration): Modify the call to Build_DIC_Call
1428         to pass a new occurrence of the object's defining id rather than
1429         the id itself.
1430         (Freeze_Type): Only build a type's DIC procedure (if it has one)
1431         for types that are not interfaces.
1432         * exp_spark.adb (Expand_SPARK_N_Freeze_Type): Remove From_Freeze
1433         actual and add a ??? comment.
1434         (Expand_SPARK_N_Object_Declaration): Modify call to
1435         Build_DIC_Call to pass a new occurrence of the object id rather
1436         than the object id itself.
1437         * sem_aggr.adb (Resolve_Record_Aggregate): Declare local flag
1438         Is_Box_Init_By_Default and set it in cases where the component
1439         association has a box and the component is being initialized by
1440         default (as opposed to initialized by an initialization
1441         expression associated with the component's declaration).
1442         (Add_Association): If the association has a box for a component
1443         initialized by default, the flag
1444         Was_Default_Init_Box_Association is set on the new component
1445         association (for later testing during expansion).
1446         (Get_Value): Reset Is_Box_Init_By_Default to False.
1447         * sem_ch3.adb (Build_Assertion_Bodies_For_Type): Rearrange code
1448         to build DIC procedure bodies for a (noninterface) type that
1449         Has_Own_DIC (for partial type views) or Has_DIC (for full type
1450         views) as appropriate.
1451         * sem_ch13.adb (Analyze_Aspect_Specifications,
1452         Aspect_Default_Initial_Condition): Add an extra argument to the
1453         DIC pragma to denote the type associated with the pragma (for
1454         use in Build_DIC_Procedure_Body).
1455         * sem_prag.adb (Analyze_Pragma): Allow two arguments for pragma
1456         Default_Initial_Condition.  If not already present, add an extra
1457         argument denoting the type that the pragma is associated with.
1458         * sem_util.adb (Propagate_DIC_Attributes): Retrieve any partial
1459         DIC procedure associated with the type and add it to the type's
1460         list of subprograms (Subprograms_For_Type).
1461         * sinfo.ads (Was_Default_Init_Box_Association): New flag on
1462         N_Component_Association nodes.  Add subprograms to get and set
1463         flag, as well as updating the documentation.
1464         * sinfo.adb (Was_Default_Init_Box_Association): New function to
1465         retrieve the corresponding flag (Flag14).
1466         (Set_Was_Default_Init_Box_Association): New procedure to set the
1467         corresponding flag (Flag14).
1469 2020-11-30  Arnaud Charlet  <charlet@adacore.com>
1471         * par-ch6.adb (P_Formal_Part): Remove extra call to Scan.
1472         * par-tchk.adb: Minor reformatting.
1474 2020-11-30  Eric Botcazou  <ebotcazou@adacore.com>
1476         * libgnat/a-nbnbre.adb (Float_Conversions): Instantiate Conv
1477         package only once in the body.
1478         (Fixed_Conversions.Float_Aux): New instance.
1479         (Fixed_Conversions.Conv_I): Likewise.
1480         (Fixed_Conversions.Conv_U): Likewise.
1481         (Fixed_Conversions.LLLI): New subtype.
1482         (Fixed_Conversions.LLLU): Likewise.
1483         (Fixed_Conversions.Too_Large): New constant.
1484         (Fixed_Conversions.To_Big_Real): Reimplement.
1485         (Fixed_Conversions.From_Big_Real): Likewise.
1487 2020-11-30  Bob Duff  <duff@adacore.com>
1489         * exp_ch3.adb (Expand_N_Object_Declaration): Avoid crash in case
1490         of conditional expression.
1492 2020-11-30  Eric Botcazou  <ebotcazou@adacore.com>
1494         * doc/gnat_rm/implementation_defined_attributes.rst (Pool_Address):
1495         Fix pasto.
1496         (Small_Denominator): New entry.
1497         (Small_Numerator): Likewise.
1498         * doc/gnat_rm/implementation_defined_characteristics.rst (3.5.9):
1499         Relax conditions on 128-bit smalls and integer-only implementation.
1500         * gnat_rm.texi: Regenerate.
1501         * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Fore>:
1502         Relax conditions on integer implementation for ordinary fixed-point
1503         types and pass a third parameter to the routine.
1504         <Attribute_Small_Denominator>: Raise Program_Error.
1505         <Attribute_Small_Numerator>: Likewise.
1506         * exp_fixd.adb (Expand_Convert_Fixed_To_Fixed): Use a scaled divide
1507         if the numerator and denominator of the small ratio are sufficiently
1508         small integers.
1509         (Expand_Convert_Fixed_To_Integer): Use a scaled divide if numerator
1510         and denominator of the small value are sufficiently small integers.
1511         (Expand_Convert_Integer_To_Fixed): Likewise.
1512         * exp_imgv.adb (Expand_Image_Attribute): Relax the conditions on the
1513         integer implementation for ordinary fixed-point types.
1514         (Expand_Value_Attribute): Likewise.
1515         * freeze.adb (Freeze_Fixed_Point_Type): Relax conditions on 128-bit
1516         smalls.
1517         * sem_attr.adb (Analyze_Attribute) <Attribute_Small_Denominator>:
1518         Check no arguments, fixed-point and set type to Universal_Integer.
1519         <Attribute_Small_Numerator>: Likewise.
1520         (Eval_Attribute) <Attribute_Small_Denominator>: Fold statically.
1521         <Attribute_Small_Numerator>: Likewise.
1522         * snames.ads-tmpl (Name_Small_Denominator): New attribute name.
1523         (Name_Small_Numerator): Likewise.
1524         (Attribute_Id): Add Attribute_Small_{Denominator,Numerator}.
1525         * libgnat/a-tifiio.adb (Exact): Delete.
1526         (Need_64): Likewise.
1527         (OK_Get_32): New boolean constant.
1528         (OK_Put_32): Likewise.
1529         (OK_Get_64): Likewise.
1530         (OK_Put_64): Likewise.
1531         (E): Adjust.
1532         (Get procedures): Likewise.
1533         (Put procedures): Likewise.
1534         * libgnat/a-tifiio__128.adb (Exact): Delete.
1535         (Need_64): Likewise.
1536         (Need_128): Likewise.
1537         (OK_Get_32): New boolean constant.
1538         (OK_Put_32): Likewise.
1539         (OK_Get_64): Likewise.
1540         (OK_Put_64): Likewise.
1541         (OK_Get_128): Likewise.
1542         (OK_Put_128): Likewise.
1543         (E): Adjust.
1544         (Get procedures): Likewise.
1545         (Put procedures): Likewise.
1546         * libgnat/a-wtfiio.adb (Exact): Delete.
1547         (Need_64): Likewise.
1548         (OK_Get_32): New boolean constant.
1549         (OK_Put_32): Likewise.
1550         (OK_Get_64): Likewise.
1551         (OK_Put_64): Likewise.
1552         (E): Adjust.
1553         (Get procedures): Likewise.
1554         (Put procedures): Likewise.
1555         * libgnat/a-wtfiio__128.adb (Exact): Delete.
1556         (Need_64): Likewise.
1557         (Need_128): Likewise.
1558         (OK_Get_32): New boolean constant.
1559         (OK_Put_32): Likewise.
1560         (OK_Get_64): Likewise.
1561         (OK_Put_64): Likewise.
1562         (OK_Get_128): Likewise.
1563         (OK_Put_128): Likewise.
1564         (E): Adjust.
1565         (Get procedures): Likewise.
1566         (Put procedures): Likewise.
1567         * libgnat/a-ztfiio.adb (Exact): Delete.
1568         (Need_64): Likewise.
1569         (OK_Get_32): New boolean constant.
1570         (OK_Put_32): Likewise.
1571         (OK_Get_64): Likewise.
1572         (OK_Put_64): Likewise.
1573         (E): Adjust.
1574         (Get procedures): Likewise.
1575         (Put procedures): Likewise.
1576         * libgnat/a-ztfiio__128.adb (Exact): Delete.
1577         (Need_64): Likewise.
1578         (Need_128): Likewise.
1579         (OK_Get_32): New boolean constant.
1580         (OK_Put_32): Likewise.
1581         (OK_Get_64): Likewise.
1582         (OK_Put_64): Likewise.
1583         (OK_Get_128): Likewise.
1584         (OK_Put_128): Likewise.
1585         (E): Adjust.
1586         (Get procedures): Likewise.
1587         (Put procedures): Likewise.
1588         * libgnat/s-fore_f.ads (Fore_Fixed): Adjust signature.
1589         * libgnat/s-fore_f.adb (Fore_Fixed): Reimplement.
1590         * libgnat/s-fofi32.ads (Fore_Fixed32): Adjust signature.
1591         * libgnat/s-fofi64.ads (Fore_Fixed64): Likewise.
1592         * libgnat/s-fofi128.ads (Fore_Fixed128): Likewise.
1593         * libgnat/s-imagef.ads: Adjust description.
1594         * libgnat/s-imagef.adb (Maxdigs): Move around.
1595         (Set_Image_Integer): Remove assertion.
1596         * libgnat/s-valuef.ads: Adjust description.
1597         * libgnat/s-valuef.adb (Integer_To_Fixed): Minor tweak.
1599 2020-11-30  Ghjuvan Lacambre  <lacambre@adacore.com>
1601         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1602         Describe -gnateb switch.
1603         * doc/gnat_ugn/the_gnat_compilation_model.rst: Mention -gnateb
1604         switch in configuration pragma files section.
1605         * gnat_ugn.texi: Regenerate.
1606         * lib-writ.adb (Write_ALI): Strip directories from configuration
1607         files path if needed.
1608         * opt.ads: Declare Config_Files_Store_Basename option.
1609         * par.adb (Par): Save configuration file checksum.
1610         * switch-c.adb (Scan_Front_End_Switches): Set
1611         Config_Files_Store_Basename true if -gnateb is present.
1613 2020-11-30  Arnaud Charlet  <charlet@adacore.com>
1615         * exp_dist.adb (RCI_Cache): Initialize.
1617 2020-11-30  Arnaud Charlet  <charlet@adacore.com>
1619         * terminals.c (allocate_pty_desc): Copy one less byte since the
1620         last byte will always be set to 0.
1622 2020-11-30  Eric Botcazou  <ebotcazou@adacore.com>
1624         * doc/gnat_ugn/building_executable_programs_with_gnat.rst (-xdr):
1625         Document that XDR is not supported for 128-bit integer types.
1626         * gnat_ugn.texi: Regenerate.
1627         * exp_strm.adb (Build_Elementary_Input_Call): Deal with types
1628         larger than Long_Long_Integer.
1629         (Build_Elementary_Write_Call): Likewise.
1630         * rtsfind.ads (RE_Id): Add RE_I_LLL{I,U] and RE_W_LLL{I,U}.
1631         (RE_Unit_Table): Add entries for them.
1632         * libgnat/s-stratt.ads (I_LLLI): New inline function.
1633         (I_LLLU): Likewise.
1634         (W_LLLI): New inline procedure.
1635         (W_LLLU): Likewise.
1636         * libgnat/s-stratt.adb (S_LLLI): New subtype of SEA.
1637         (S_LLLU): Likewise.
1638         (From_LLLI): New instance of Unchecked_Conversion.
1639         (From_LLLU): Likewise.
1640         (To_LLLI): Likewise.
1641         (To_LLLU): Likewise.
1642         (I_LLLI): Implement.
1643         (I_LLLU): Likewise.
1644         (W_LLLI): Likewise.
1645         (W_LLLU): Likewise.
1647 2020-11-30  Ed Schonberg  <schonberg@adacore.com>
1649         * exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Check the
1650         signature of the private operation Get_Element_Access to prevent
1651         accidental use of a user-defined homonym subprogram.
1653 2020-11-30  Yannick Moy  <moy@adacore.com>
1655         * spark_xrefs.ads: Add comment for Heap that it may remain
1656         Empty.
1658 2020-11-30  Pascal Obry  <obry@adacore.com>
1660         * libgnat/g-sercom__linux.adb (Set): Fix control flags of the
1661         serial port setting.
1663 2020-11-30  Pascal Obry  <obry@adacore.com>
1665         * libgnat/g-sercom__linux.adb: Minor style fixes.
1667 2020-11-30  Piotr Trojanek  <trojanek@adacore.com>
1669         * exp_util.adb (Get_Current_Value_Condition): Don't use current
1670         value tracking in GNATprove mode.
1671         * sem_res.adb (Resolve_Comparison_Op): Remove incomplete
1672         special-casing for folding in GNATprove mode.
1674 2020-11-30  Bob Duff  <duff@adacore.com>
1676         * errout.adb (Error_Msg_NEL): Do not call Set_Posted if errors
1677         are being ignored.
1678         (Error_Msg): Change Errors_Must_Be_Ignored to use the getter.
1679         * sem_ch8.adb (Find_Direct_Name): Do not skip all the error
1680         checks when ignoring errors, but instead do not add an entry to
1681         the Urefs table if errors are being ignored.
1682         * exp_ch5.adb: Minor comment fix.
1684 2020-11-30  Yannick Moy  <moy@adacore.com>
1686         * sem_aggr.adb (Resolve_Array_Aggregate): Improve error message.
1688 2020-11-30  Eric Botcazou  <ebotcazou@adacore.com>
1690         * libgnat/s-valuef.adb (Integer_To_Fixed): Do not modify numerator
1691         or denominator in order to reduce the exponent.
1693 2020-11-30  Arnaud Charlet  <charlet@adacore.com>
1695         * ali-util.adb (Get_File_Checksum): Remove dead code.
1696         * exp_ch4.adb (Expand_Boolean_Operator, Expand_N_Op_Not,
1697         Make_Boolean_Array_Op): Take Transform_Function_Array into
1698         account.
1699         * exp_ch6.adb (Expand_Call_Helper): Update comment. Code
1700         cleanup.
1701         * exp_util.adb (Build_Procedure_Form): Use new predefined name
1702         Name_UP_RESULT.
1703         * snames.ads-tmpl (Name_UP_RESULT): New predefined name.  Code
1704         cleanup: remove unused names from the project parser, moved to
1705         gprbuild sources.
1706         * xsnamest.adb: Add support for uppercase names.
1708 2020-11-30  Ed Schonberg  <schonberg@adacore.com>
1710         * sem_util.adb (Enter_Name): When an inherited operation for a
1711         local derived type is hidden by an explicit declaration of a
1712         non-overloadable entity in the same scope, make the inherited
1713         operation non-visible to prevent its accidental use elsewhere.
1715 2020-11-29  John David Anglin  <danglin@gcc.gnu.org>
1717         PR ada/97504
1718         * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <hppa*-*-hpux*>: Use wraplf
1719         version of Aux_Long_Long_Float.
1721 2020-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1723         * libgnat/s-valuef.adb (Integer_To_Fixed): Take into account the
1724         extra digit when scaling up the input.
1725         * libgnat/s-valuer.adb (Scan_Decimal_Digits): Restrict previous
1726         change to fixed-point types.
1727         (Scan_Integral_Digits): Likewise.
1729 2020-11-27  Piotr Trojanek  <trojanek@adacore.com>
1731         * sem_res.adb (Parent_Is_Boolean): Simplify.
1732         (Resolve_Op_Not): Reduce scope of a local variable.
1734 2020-11-27  Piotr Trojanek  <trojanek@adacore.com>
1736         * cstand.adb: Simplify with Append_New_Elmt.
1737         * sem_util.adb: Likewise.
1739 2020-11-27  Arnaud Charlet  <charlet@adacore.com>
1741         * sem_eval.adb (Fold_Shift): Fix evaluation of Shift_Right on
1742         negative values.
1744 2020-11-27  Arnaud Charlet  <charlet@adacore.com>
1746         * exp_ch6.adb (Expand_Call): Properly split
1747         Transform_Function_Array and Modify_Tree_For_C.
1749 2020-11-27  Piotr Trojanek  <trojanek@adacore.com>
1751         * sem_eval.ads (Compile_Time_Compare): Restore parameter Diff to
1752         be of an access type.
1753         * sem_eval.adb (Compile_Time_Compare): Adapt body and callers.
1754         * sem_attr.adb (Eval_Attribute): Adapt callers.
1756 2020-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1758         * libgnat/s-valuer.adb (Scan_Decimal_Digits): Round Extra.
1759         (Scan_Integral_Digits): Likewise.
1761 2020-11-27  Yannick Moy  <moy@adacore.com>
1763         * checks.adb (Selected_Range_Checks): Adapt the condition for
1764         applying range checks so that it is not done inside generics.
1766 2020-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1768         * exp_fixd.adb (Build_Double_Divide): Only use a 128-bit
1769         division if one of the operands is larger than 64 bits.
1770         (Build_Double_Divide_Code): Likewise.
1771         (Build_Scaled_Divide): Likewise.
1772         (Build_Scaled_Divide_Code): Likewise.
1774 2020-11-27  Arnaud Charlet  <charlet@adacore.com>
1776         * libgnat/s-os_lib.adb (To_GM_Time): Return valid and consistent
1777         values for Invalid_Time.
1779 2020-11-27  Steve Baird  <baird@adacore.com>
1781         * snames.ads-tmpl: Define new Name_Stable_Properties Name_Id
1782         value.
1783         * aspects.ads, aspects.adb: Add new Aspect_Stable_Properties
1784         enumeration literal to Aspect_Id type. Add Class_Present
1785         parameter to Find_Aspect and related
1786         functions (Find_Value_Of_Aspect and Has_Aspect).
1787         * sem_util.adb (Has_Nontrivial_Precondition): Fix
1788         previously-latent bug uncovered by adding Class_Present
1789         parameter to Aspect.Find_Aspect. The code was wrong before, but
1790         with the change the bug was more likely to make a user-visible
1791         difference.
1792         * sem_ch6.adb (Analyze_Operator_Symbol): If a string literal
1793         like "abs" or "-" occurs in a Stable_Properties aspect
1794         specification, then it is to be interpreted as an operator
1795         symbol and not as a string literal.
1796         * sem_ch13.ads: Export new Parse_Aspect_Stable_Properties
1797         function, analogous to the existing Parse_Aspect_Aggregate
1798         exported procedure.
1799         * sem_ch13.adb: (Parse_Aspect_Stable_Properties): New function;
1800         analogous to existing Parse_Aspect_Aggregate.
1801         (Validate_Aspect_Stable_Properties): New procedure; analogous to
1802         existing Validate_Aspect_Aggregate. Called from the same case
1803         statement (casing on an Aspect_Id value) where
1804         Validate_Aspect_Aggregate is called.
1805         (Resolve_Aspect_Stable_Properties): New procedure; analogous to
1806         existing Resolve_Aspect_Aggregate. Called from the same two case
1807         statements (each casing on an Aspect_Id value) where
1808         Resolve_Aspect_Aggregate is called.
1809         (Analyze_Aspect_Specifications): Set Has_Delayed_Aspects and
1810         Is_Delayed_Aspect attributes for Aspect_Stable_Properties aspect
1811         specifications.
1812         (Check_Aspect_At_End_Of_Declarations): The syntactic
1813         "expression" for a Stable_Properties aspect specification is not
1814         semantically an expression; it doesn't have a type. Thus, force
1815         T to be empty in this case.
1816         * contracts.adb (Expand_Subprogram_Contract): Add call to new
1817         local procedure,
1818         Expand_Subprogram_Contract.Add_Stable_Property_Contracts, which
1819         generates Postcondition pragmas corresponding to stable property
1820         checks.
1822 2020-11-27  Piotr Trojanek  <trojanek@adacore.com>
1824         * doc/gnat_rm/implementation_defined_pragmas.rst:
1825         (Assertion_Policy): Move "Default_Initial_Condition" from
1826         ID_ASSERTION_KIND to RM_ASSERTION_KIND section.
1827         * gnat_rm.texi: Regenerate.
1829 2020-11-27  Piotr Trojanek  <trojanek@adacore.com>
1831         * doc/gnat_rm/implementation_defined_pragmas.rst
1832         (Assertion_Policy): Add "Default_Initial_Condition",
1833         "Initial_Condition" and "Subprogram_Variant".
1834         * gnat_rm.texi: Regenerate.
1836 2020-11-27  Piotr Trojanek  <trojanek@adacore.com>
1838         * sem_prag.adb (Is_Valid_Assertion_Kind): Return False on
1839         "Assertion_Policy"
1841 2020-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1843         * make.adb (GNAT_Flag): Change to "-gnatg".
1844         (Compile): Adjust comments accordingly.
1846 2020-11-27  Piotr Trojanek  <trojanek@adacore.com>
1848         * exp_ch4.adb (Rewrite_Comparison): Add assertion to confirm
1849         that evaluation folds comparisons with static operands; when
1850         folding comparison with non-static operands, the resulting
1851         literal is non-static.
1852         * sem_eval.adb (Eval_Relational_Op): Refactor nested IF
1853         statement for the special case in the THEN branch; move code for
1854         the "general case" out of the ELSE branch.
1855         * sem_res.adb (Resolve_Comparison_Op): Only apply a dubious
1856         special-case for GNATprove in the GNATprove_Mode.
1858 2020-11-27  Piotr Trojanek  <trojanek@adacore.com>
1860         * sem_eval.ads (Compile_Time_Compare): Change parameter Diff
1861         from access to mode out.
1862         * sem_eval.adb (Compile_Time_Compare): Adapt body and callers.
1863         * sem_attr.adb (Eval_Attribute): Adapt callers.
1865 2020-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1867         * exp_ch4.adb (Expand_N_Op_Multiply): Move down block calling
1868         Narrow_Large_Operation if the type is Universal_Integer.
1870 2020-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1872         * libgnat/a-nbnbre.adb: Remove clauses for System.Img_Real and
1873         add them for System.Unsigned_Types.
1874         (Float_Conversions.To_Big_Real): Reimplement.
1875         (Float_Conversions.From_Big_Real): Likewise.
1877 2020-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1879         * checks.ads (Determine_Range_To_Discrete): New procedure.
1880         * checks.adb (Apply_Scalar_Range_Check): Call it to determine
1881         a range for the expression when the target type is discrete.
1882         And also apply the tests for discrete types to fixed-point
1883         types when they are treated as integers.
1884         (Apply_Type_Conversion_Checks): Apply checks to conversions
1885         involving fixed-point types when they are treated as integers.
1886         (Determine_Range) <N_Type_Conversion>: Factor out code into...
1887         (Determine_Range_To_Discrete): ...this new procedure and add
1888         support for fixed-point types when they are treated as integers.
1889         * einfo.ads (Type_High_Bound): Remove obsolete sentence.
1890         (Type_Low_Bound): Likewise.
1891         * exp_ch4.adb (Discrete_Range_Check): Remove obsolete code.
1892         (Real_Range_Check): Likewise.
1893         (Expand_N_Type_Conversion): In case of a no-op conversion, clear
1894         the Do_Range_Check flag on the operand before substituting it.
1895         Remove calls to Real_Range_Check and Discrete_Range_Check that
1896         are not guarded by the Do_Range_Check flag, and an assertion.
1897         * sem_res.adb (Resolve_Type_Conversion): Always apply range
1898         checks in GNATprove mode; in normal mode, use the updated type
1899         of the operand in the test against Universal_Fixed.  Remove
1900         obsolete code setting the Do_Range_Check flag at the end.
1902 2020-11-27  Piotr Trojanek  <trojanek@adacore.com>
1904         * sem_prag.adb (Analyze_Pragma): Change "Ref Manual" to RM;
1905         replace uses of an unnecessary "Ok" variable with RETURN
1906         statements; replace nested IF with ELSIF.
1908 2020-11-27  Arnaud Charlet  <charlet@adacore.com>
1910         * libgnarl/s-tasren.adb (Local_Complete_Rendezvous): Always call
1911         Defer_Abort.
1912         * libgnat/a-except.adb: Abort does not need to be deferred.
1913         * libgnarl/s-tpobop.adb (Exceptional_Complete_Entry_Body): Abort
1914         never needs to be undeferred here.
1915         * exp_ch11.adb (Expand_Exception_Handlers): Remove difference
1916         between ZCX and SJLJ.
1917         * exp_ch9.adb (Expand_N_Asynchronous_Select): Remove different
1918         handling for sjlj.
1919         * exp_sel.ads, exp_sel.adb (Build_Abort_Block,
1920         Build_Abort_Block_Handler): Ditto.
1922 2020-11-27  Ghjuvan Lacambre  <lacambre@adacore.com>
1924         * sem_prag.adb (Analyze_Pragma): declare new Check_No_Return
1925         function and call it.
1927 2020-11-27  Arnaud Charlet  <charlet@adacore.com>
1929         * sem_ch12.adb (Instantiate_Object): Consistently use
1930         New_Copy_Tree instead of New_Copy.
1932 2020-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1934         * exp_fixd.adb (Build_Conversion): Adjust head comment.
1935         (Build_Divide): Likewise.
1936         (Build_Double_Divide): Likewise.
1937         (Build_Multiply): Likewise.
1938         (Build_Rem): Likewise.
1939         (Build_Scaled_Divide): Likewise.
1941 2020-11-27  Arnaud Charlet  <charlet@adacore.com>
1943         * libgnat/s-genbig.ads, libgnat/s-genbig.adb (To_Bignum): New
1944         variant taking an Unsigned_128.
1945         * libgnat/a-nbnbin.adb (To_Big_Integer): Add support for 128
1946         bits signed and unsigned types.
1948 2020-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1950         * libgnat/s-imagef.adb (Set_Image_Fixed): Pass the full value
1951         of the quotient to Set_Image_Integer during the first round and
1952         adjust the handling of the minus sign.
1954 2020-11-27  Arnaud Charlet  <charlet@adacore.com>
1956         * libgnat/a-nbnbre.adb ("=", "<"): Fix.
1958 2020-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1960         * libgnat/s-valuer.adb (Scan_Raw_Real): Move pragma Annotate around
1961         and adjust its parameters.
1963 2020-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1965         * exp_fixd.adb (Build_Double_Divide): Use the RM size of types and
1966         a more precise estimate for the size of the denominator.
1967         (Build_Double_Divide_Code): Likewise.
1968         (Build_Multiply): Use a more precise estimate for the size of the
1969         result.
1970         (Build_Scaled_Divide):  Use the RM size of types and a more precise
1971         estimate for the size of the numerator.
1972         (Build_Scaled_Divide_Code): Likewise.
1974 2020-11-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1976         * Makefile.rtl <sparc*-sun-solaris*> (THREADSLIB): Remove.
1977         (MISCLIB): Remove -lposix4.
1978         <*86-*-solaris2*>: Likewise.
1979         * libgnarl/s-osinte__solaris.ads (System.OS_Interface): Remove
1980         -lposix4 -lthread.
1982 2020-11-26  Arnaud Charlet  <charlet@adacore.com>
1984         * libgnat/a-nbnbre.adb (To_Big_Real): Do not loose precision.
1986 2020-11-26  Arnaud Charlet  <charlet@adacore.com>
1988         * sem_ch8.adb (Analyze_Object_Renaming): Check for AI12-0401.
1990 2020-11-26  Eric Botcazou  <ebotcazou@adacore.com>
1992         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Likewise.
1993         (GNATRTL_128BIT_OBJS): Likewise.
1994         (GNATRTL_128BIT_PAIRS): Add new 128-bit variants.
1995         * cstand.adb (Create_Standard): Create Standard_Integer_128.
1996         * doc/gnat_rm/implementation_defined_characteristics.rst: Document
1997         new limits on 64-bit platforms in entry for 3.5.9(10).
1998         * gnat_rm.texi: Regenerate.
1999         * exp_attr.adb: Add with and use clauses for Urealp.
2000         (Expand_N_Attribute_Reference) <Attribute_Fore>: Call new routines
2001         for decimal fixed-point types and common ordinary fixed-point types.
2002         * exp_ch4.adb (Real_Range_Check): Extend conversion trick to all
2003         ordinary fixed-point types and use Small_Integer_Type_For.
2004         * exp_fixd.adb: Add with and use clauses for Ttypes.
2005         (Build_Divide): Add special case for 32-bit values and deal with
2006         128-bit types.
2007         (Build_Double_Divide): Deal with 128-bit types.
2008         (Build_Double_Divide_Code): Likewise.  Do not apply conversions
2009         before calling Build_Multiply.
2010         (Build_Multiply): Likewise.  Add special case for 32-bit values.
2011         (Build_Scaled_Divide): Deal with 128-bit types.
2012         (Build_Scaled_Divide_Code): Likewise.  Fix size computation.  Do not
2013         apply conversions before calling Build_Multiply.
2014         (Do_Multiply_Fixed_Fixed): Minor tweak.
2015         (Integer_Literal): Deal with 128-bit values.
2016         * exp_imgv.adb (Has_Decimal_Small): Delete.
2017         (Expand_Image_Attribute): Call new routines for common ordinary
2018         fixed-point types.
2019         (Expand_Value_Attribute): Likewise.
2020         (Expand_Width_Attribute): Add new expansion for fixed-point types.
2021         * freeze.adb (Freeze_Entity): Move error checks for ordinary
2022         fixed-point types to...
2023         (Freeze_Fixed_Point_Type): ...here.  Deal with 128-bit types and
2024         adjust limitations for 32-bnt and 64-bit types.
2025         * rtsfind.ads (RTU_Id): Add entries for new System_Fore, System_Img,
2026         and System_Val units and remove them for obsolete units.
2027         (RE_Id): Add entries for Double_Divide128, Scaled_Divide128, the new
2028         Fore, Image, Value routines and remove them for obsolete units.
2029         (RE_Unit_Table): Likewise.
2030         * sem_ch3.adb (Decimal_Fixed_Point_Type_Declaration): Deal with
2031         128-bit types.
2032         * stand.ads (Standard_Entity_Type): Add Standard_Integer_128.
2033         * uintp.ads (Uint_31): New deferred constant.
2034         (Uint_Minus_18): Likewise.
2035         (Uint_Minus_31): Likewise.
2036         (Uint_Minus_76): Likewise.
2037         (Uint_Minus_127): Likewise.
2038         * urealp.ads (Ureal_2_31): New function.
2039         (Ureal_2_63): Likewise.
2040         (Ureal_2_127): Likewise.
2041         (Ureal_2_M_127): Likewise.
2042         (Ureal_2_10_18): Likewise.
2043         (Ureal_M_2_10_18): Likewise.
2044         (Ureal_9_10_36): Likewise.
2045         (Ureal_M_9_10_36): Likewise.
2046         (Ureal_10_76): Likewise.
2047         (Ureal_M_10_76): Likewise.
2048         (Ureal_10_36): Delete.
2049         (Ureal_M_10_36): Likewise.
2050         * urealp.adb (UR_2_10_18): New variable.
2051         (UR_9_10_36): Likewise.
2052         (UR_10_76): Likewise.
2053         (UR_M_2_10_18): Likewise.
2054         (UR_M_9_10_36): Likewise.
2055         (UR_M_10_76): Likewise.
2056         (UR_2_31): Likewise.
2057         (UR_2_63): Likewise.
2058         (UR_2_127): Likewise.
2059         (UR_2_M_127): Likewise.
2060         (UR_10_36): Delete.
2061         (UR_M_10_36): Likewise.
2062         (Initialize): Initialize them.
2063         (UR_Write): Do not use awkward Ada literal style.
2064         (Ureal_2_10_18): New function.
2065         (Ureal_9_10_36): Likewise.
2066         (Ureal_10_76): Likewise.
2067         (Ureal_2_31): Likewise.
2068         (Ureal_2_63): Likewise.
2069         (Ureal_2_127): Likewise.
2070         (Ureal_2_M_127): Likewise.
2071         (Ureal_M_2_10_18): Likewise.
2072         (Ureal_M_9_10_36): Likewise.
2073         (Ureal_10_76): Likewise.
2074         (Ureal_M_10_76): Likewise.
2075         (Ureal_10_36): Delete.
2076         (Ureal_M_10_36): Likewise.
2077         * libgnat/a-decima__128.ads: New file.
2078         * libgnat/a-tideau.ads, libgnat/a-tideau.adb: Reimplement as
2079         generic unit.
2080         * libgnat/a-tideio.adb: Reimplement.
2081         * libgnat/a-tideio__128.adb: New file.
2082         * libgnat/a-tifiau.ads, libgnat/a-tifiau.adb: New generic unit.
2083         * libgnat/a-tifiio.adb: Move bulk of implementation to s-imagef
2084         and reimplement.
2085         * libgnat/a-tifiio__128.adb: New file.
2086         * libgnat/a-tiflau.adb (Get): Minor consistency fix.
2087         (Gets): Likewise.
2088         * libgnat/a-wtdeau.ads, libgnat/a-wtdeau.adb: Reimplement as
2089         generic unit.
2090         * libgnat/a-wtdeio.adb: Reimplement.
2091         * libgnat/a-wtdeio__128.adb: New file.
2092         * libgnat/a-wtfiau.ads, libgnat/a-wtfiau.adb: New generic unit.
2093         * libgnat/a-wtfiio.adb: Reimplement.
2094         * libgnat/a-wtfiio__128.adb: New file.
2095         * libgnat/a-ztdeau.ads, libgnat/a-ztdeau.adb: Reimplement as
2096         generic unit.
2097         * libgnat/a-ztdeio.adb: Reimplement.
2098         * libgnat/a-ztdeio__128.adb: New file.
2099         * libgnat/a-ztfiau.ads, libgnat/a-ztfiau.adb: New generic unit.
2100         * libgnat/a-ztfiio.adb: Reimplement.
2101         * libgnat/a-ztfiio__128.adb: New file.
2102         * libgnat/g-rannum.adb (Random_Decimal_Fixed): Use a subtype of the
2103         appropiate size for the instantiation.
2104         (Random_Ordinary_Fixed): Likewise.
2105         * libgnat/s-arit32.ads, libgnat/s-arit32.adb: New support unit.
2106         * libgnat/s-fode128.ads: New instantiation.
2107         * libgnat/s-fode32.ads: Likewise.
2108         * libgnat/s-fode64.ads: Likewise.
2109         * libgnat/s-fofi128.ads: Likewise.
2110         * libgnat/s-fofi32.ads: Likewise.
2111         * libgnat/s-fofi64.ads: Likewise.
2112         * libgnat/s-fore_d.ads, libgnat/s-fore_d.adb: New generic unit.
2113         * libgnat/s-fore_f.ads, libgnat/s-fore_f.adb: Likewise.
2114         * libgnat/s-fore.ads, libgnat/s-fore.adb: Rename into...
2115         * libgnat/s-forrea.ads, libgnat/s-forrea.adb: ...this.
2116         * libgnat/s-imaged.ads, libgnat/s-imaged.adb: New generic unit.
2117         * libgnat/s-imagef.ads, libgnat/s-imagef.adb: Likewise, taken
2118         from a-tifiio.adb.
2119         * libgnat/s-imde128.ads: New instantiation.
2120         * libgnat/s-imde32.ads: Likewise.
2121         * libgnat/s-imde64.ads: Likewise.
2122         * libgnat/s-imfi128.ads: Likewise.
2123         * libgnat/s-imfi32.ads: Likewise.
2124         * libgnat/s-imfi64.ads: Likewise.
2125         * libgnat/s-imgdec.ads, libgnat/s-imgdec.adb: Delete.
2126         * libgnat/s-imglld.ads, libgnat/s-imglld.adb: Likewise.
2127         * libgnat/s-imgrea.adb (Set_Image_Real): Replace Sign local variable
2128         with Minus local variable for the sake of consistency.
2129         * libgnat/s-imguti.ads, libgnat/s-imguti.adb: New support unit.
2130         * libgnat/s-vade128.ads: New instantiation.
2131         * libgnat/s-vade32.ads: Likewise.
2132         * libgnat/s-vade64.ads: Likewise.
2133         * libgnat/s-vafi128.ads: Likewise.
2134         * libgnat/s-vafi32.ads: Likewise.
2135         * libgnat/s-vafi64.ads: Likewise.
2136         * libgnat/s-valdec.ads, libgnat/s-valdec.adb: Delete.
2137         * libgnat/s-vallld.ads, libgnat/s-vallld.adb: Likewise.
2138         * libgnat/s-valued.ads, libgnat/s-valued.adb: New generic unit.
2139         * libgnat/s-valuef.ads, libgnat/s-valuef.adb: Likewise.
2140         * libgnat/s-valuei.adb: Minor rewording.
2141         * libgnat/s-valrea.adb: Move bulk of implementation to...
2142         * libgnat/s-valuer.ads, libgnat/s-valuer.adb: ...here.  New
2143         generic unit.
2144         * libgnat/system-aix.ads (Max_Mantissa): Adjust.
2145         * libgnat/system-darwin-arm.ads (Max_Mantissa): Likewise.
2146         * libgnat/system-darwin-ppc.ads (Max_Mantissa): Likewise.
2147         * libgnat/system-darwin-x86.ads (Max_Mantissa): Likewise.
2148         * libgnat/system-djgpp.ads (Max_Mantissa): Likewise.
2149         * libgnat/system-dragonfly-x86_64.ads (Max_Mantissa): Likewise.
2150         * libgnat/system-freebsd.ads (Max_Mantissa): Likewise.
2151         * libgnat/system-hpux-ia64.ads (Max_Mantissa): Likewise.
2152         * libgnat/system-hpux.ads (Max_Mantissa): Likewise.
2153         * libgnat/system-linux-alpha.ads (Max_Mantissa): Likewise.
2154         * libgnat/system-linux-arm.ads (Max_Mantissa): Likewise.
2155         * libgnat/system-linux-hppa.ads (Max_Mantissa): Likewise.
2156         * libgnat/system-linux-ia64.ads (Max_Mantissa): Likewise.
2157         * libgnat/system-linux-m68k.ads (Max_Mantissa): Likewise.
2158         * libgnat/system-linux-mips.ads (Max_Mantissa): Likewise.
2159         * libgnat/system-linux-ppc.ads (Max_Mantissa): Likewise.
2160         * libgnat/system-linux-riscv.ads (Max_Mantissa): Likewise.
2161         * libgnat/system-linux-s390.ads (Max_Mantissa): Likewise.
2162         * libgnat/system-linux-sh4.ads (Max_Mantissa): Likewise.
2163         * libgnat/system-linux-sparc.ads (Max_Mantissa): Likewise.
2164         * libgnat/system-linux-x86.ads (Max_Mantissa): Likewise.
2165         * libgnat/system-lynxos178-ppc.ads (Max_Mantissa): Likewise.
2166         * libgnat/system-lynxos178-x86.ads (Max_Mantissa): Likewise.
2167         * libgnat/system-mingw.ads (Max_Mantissa): Likewise.
2168         * libgnat/system-qnx-aarch64.ads (Max_Mantissa): Likewise.
2169         * libgnat/system-rtems.ads (Max_Mantissa): Likewise.
2170         * libgnat/system-solaris-sparc.ads (Max_Mantissa): Likewise.
2171         * libgnat/system-solaris-x86.ads (Max_Mantissa): Likewise.
2172         * libgnat/system-vxworks-arm-rtp-smp.ads (Max_Mantissa): Likewise.
2173         * libgnat/system-vxworks-arm-rtp.ads (Max_Mantissa): Likewise.
2174         * libgnat/system-vxworks-arm.ads (Max_Mantissa): Likewise.
2175         * libgnat/system-vxworks-e500-kernel.ads (Max_Mantissa): Likewise.
2176         * libgnat/system-vxworks-e500-rtp-smp.ads (Max_Mantissa): Likewise.
2177         * libgnat/system-vxworks-e500-rtp.ads (Max_Mantissa): Likewise.
2178         * libgnat/system-vxworks-e500-vthread.ads (Max_Mantissa): Likewise.
2179         * libgnat/system-vxworks-ppc-kernel.ads (Max_Mantissa): Likewise.
2180         * libgnat/system-vxworks-ppc-ravenscar.ads (Max_Mantissa): Likewise.
2181         * libgnat/system-vxworks-ppc-rtp-smp.ads (Max_Mantissa): Likewise.
2182         * libgnat/system-vxworks-ppc-rtp.ads (Max_Mantissa): Likewise.
2183         * libgnat/system-vxworks-ppc-vthread.ads (Max_Mantissa): Likewise.
2184         * libgnat/system-vxworks-ppc.ads (Max_Mantissa): Likewise.
2185         * libgnat/system-vxworks-x86-kernel.ads (Max_Mantissa): Likewise.
2186         * libgnat/system-vxworks-x86-rtp-smp.ads (Max_Mantissa): Likewise.
2187         * libgnat/system-vxworks-x86-rtp.ads (Max_Mantissa): Likewise.
2188         * libgnat/system-vxworks-x86-vthread.ads (Max_Mantissa): Likewise.
2189         * libgnat/system-vxworks-x86.ads (Max_Mantissa): Likewise.
2190         * libgnat/system-vxworks7-aarch64-rtp-smp.ads (Max_Mantissa):
2191         Likewise.
2192         * libgnat/system-vxworks7-aarch64.ads (Max_Mantissa): Likewise.
2193         * libgnat/system-vxworks7-arm-rtp-smp.ads (Max_Mantissa): Likewise.
2194         * libgnat/system-vxworks7-arm.ads (Max_Mantissa): Likewise.
2195         * libgnat/system-vxworks7-e500-kernel.ads (Max_Mantissa): Likewise.
2196         * libgnat/system-vxworks7-e500-rtp-smp.ads (Max_Mantissa): Likewise.
2197         * libgnat/system-vxworks7-e500-rtp.ads (Max_Mantissa): Likewise.
2198         * libgnat/system-vxworks7-ppc-kernel.ads (Max_Mantissa): Likewise.
2199         * libgnat/system-vxworks7-ppc-rtp-smp.ads (Max_Mantissa): Likewise.
2200         * libgnat/system-vxworks7-ppc-rtp.ads (Max_Mantissa): Likewise.
2201         * libgnat/system-vxworks7-ppc64-kernel.ads (Max_Mantissa): Likewise.
2202         * libgnat/system-vxworks7-ppc64-rtp-smp.ads (Max_Mantissa): Likewise.
2203         * libgnat/system-vxworks7-x86-kernel.ads (Max_Mantissa): Likewise.
2204         * libgnat/system-vxworks7-x86-rtp-smp.ads (Max_Mantissa): Likewise.
2205         * libgnat/system-vxworks7-x86-rtp.ads (Max_Mantissa): Likewise.
2206         * libgnat/system-vxworks7-x86_64-kernel.ads (Max_Mantissa): Likewise.
2207         * libgnat/system-vxworks7-x86_64-rtp-smp.ads (Max_Mantissa): Likewise.
2209 2020-11-26  Liaiss Merzougue  <merzougue@adacore.com>
2211         * libgnat/s-imgrea.ads (Image_Ordinary_Fixed_Point): Add a
2212         remark concerning the irrelevant use of Inf and -0.0
2214 2020-11-26  Arnaud Charlet  <charlet@adacore.com>
2216         * osint-c.adb (Set_Output_Object_File_Name): Add support for
2217         .c output file.
2219 2020-11-26  Piotr Trojanek  <trojanek@adacore.com>
2221         * lib-writ.adb, sem_ch8.adb, sem_prag.adb: Use
2222         Is_Generic_Subprogram instead of low-level membership tests.
2224 2020-11-26  Gary Dismukes  <dismukes@adacore.com>
2226         * sem_ch6.adb (Analyze_Call_And_Resolve): Reformatted a comment.
2227         * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
2228         Fixed a typo.
2230 2020-11-26  Piotr Trojanek  <trojanek@adacore.com>
2232         * sem_res.adb (Resolve_Membership_Op): Replace pragma Warnings
2233         with pragma Assert.
2235 2020-11-26  Ed Schonberg  <schonberg@adacore.com>
2237         * sem_ch6.adb (Analyze_Call_And_Resolve): Add information to the
2238         error message on an illegal procedure call, when the illegality
2239         is due to the presence of a component of the full view of the
2240         target object, as well as a procedure with the same name (See RM
2241         4.1.3 (9.2/3)).
2243 2020-11-26  Ed Schonberg  <schonberg@adacore.com>
2245         * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
2246         when the restriction is a configuration pragma and specifies
2247         No_Tasking, a global flag is set to reject task declarations,
2248         and to prevent the construction of Master entities. The flag
2249         must not be set if the pragma is a Restriction_Warning, in which
2250         case task declarationns are allowed.
2252 2020-11-26  Piotr Trojanek  <trojanek@adacore.com>
2254         * libgnat/a-stzhas.adb (Wide_Wide_Hash): Instantiate inside a
2255         wrapper function.
2256         * libgnat/a-stzhas.ads (Wide_Wide_Hash): Likewise; remove wrong
2257         comment, because this is indeed a RM unit, as described in Ada
2258         RM A.4.8 (1/3).
2260 2020-11-26  Piotr Trojanek  <trojanek@adacore.com>
2262         * sem_eval.adb (Eval_Slice): Refactor repeated calls to Prefix
2263         with a local constant (named just like in Resolve_Slice).
2265 2020-11-26  Piotr Trojanek  <trojanek@adacore.com>
2267         * sem_eval.adb (Eval_Slice): Emit warning not just for
2268         constants, but for any objects.
2270 2020-11-26  Piotr Trojanek  <trojanek@adacore.com>
2272         * sem_ch4.adb (Indicate_Name_And_Type): Fix whitespace in
2273         comment.
2274         * sem_res.adb (Resolve_Call): Remove redundant parens.
2275         * sem_util.adb (Set_Entity_With_Checks): Remove extra call to
2276         Set_Entity.
2278 2020-11-26  Bob Duff  <duff@adacore.com>
2280         * exp_ch4.adb (Expand_Concatenate): Call Set_No_Initialization
2281         on the N_Allocator node that is supposed to allocate on the
2282         secondary stack.
2284 2020-11-26  Piotr Trojanek  <trojanek@adacore.com>
2286         * exp_ch13.adb, exp_ch9.adb, sem_ch8.adb, sem_util.adb: Replace
2287         a combination of Is_Protected_Type and Is_Task_Type by
2288         Is_Concurrent_Type.
2290 2020-11-26  Arnaud Charlet  <charlet@adacore.com>
2292         * libgnarl/s-tassta.adb (Task_Wrapper): Fix computation of
2293         Pattern_Size.
2295 2020-11-26  Bob Duff  <duff@adacore.com>
2297         * freeze.adb (Freeze_Array_Type): Remove propagation of
2298         Has_Own_Invariants to the first subtype. This is a no-op,
2299         because the current (incorrect) version of Has_Own_Invariants
2300         calls Base_Type.
2301         * sem_prag.adb, sem_util.adb: Pass the base type to
2302         Set_Has_Own_Invariants.
2304 2020-11-26  Eric Botcazou  <ebotcazou@adacore.com>
2306         * einfo.ads (Aft_Value): Adjust documentation.
2307         (Scale_Value): Likewise.
2309 2020-11-26  Justin Squirek  <squirek@adacore.com>
2311         * exp_ch4.adb (Expand_N_Type_Conversion): Use the unexpanded
2312         operand when generating accessibility checks.
2314 2020-11-26  Piotr Trojanek  <trojanek@adacore.com>
2316         * libgnat/a-cbhase.adb (Read): Remove extra whitespace.
2317         * libgnat/a-cbmutr.ads (Read): Likewise.
2318         * libgnat/a-cborse.adb (Read): Likewise.
2320 2020-11-26  Piotr Trojanek  <trojanek@adacore.com>
2322         * exp_ch7.adb, exp_util.adb, freeze.adb: Rewrite with
2323         Is_Access_Object_Type.
2325 2020-11-26  Piotr Trojanek  <trojanek@adacore.com>
2327         * sem_prag.adb (Check_Valid_Library_Unit_Pragma): Raise
2328         exception.
2329         (Analyze_Pragma): Remove detection of rewritten pragmas.
2331 2020-11-26  Joffrey Huguet  <huguet@adacore.com>
2333         * libgnat/a-strmap.ads: Add preconditions and postconditions to
2334         all subprograms.
2336 2020-11-26  Yannick Moy  <moy@adacore.com>
2338         * sem_res.adb (Resolve_Equality_Op): Warn when -gnatwq is used
2339         (the default) and the problematic case is encountered.
2341 2020-11-26  Yannick Moy  <moy@adacore.com>
2343         * sem_attr.adb (Analyze_Attribute): Issue a continuation message
2344         to give proper recommendation here.
2346 2020-11-26  Gary Dismukes  <dismukes@adacore.com>
2348         * exp_util.adb (Expand_Subtype_From_Expr): A typo correction,
2349         plus other minor reformatting.
2351 2020-11-26  Ed Schonberg  <schonberg@adacore.com>
2353         * sem_ch12.adb (Instantiate_Formal_Package): If previous matched
2354         entity is overloadable, advance in the list of actuals of the
2355         actual package, to prevent an erroneous match of two adjacent
2356         overloadable homonyms with the same entity.
2358 2020-11-26  Justin Squirek  <squirek@adacore.com>
2360         * sem_ch6.adb (First_Selector): Utility routine to return the
2361         first selector or choice in an association.
2362         (Check_Return_Construct_Accessibility): Modify loop to handle
2363         named associations when iterating through discriminants.
2365 2020-11-26  Piotr Trojanek  <trojanek@adacore.com>
2367         * sem_ch12.adb: Fix casing from "Instantiation" to
2368         "instantiation".
2370 2020-11-25  Ed Schonberg  <schonberg@adacore.com>
2372         * freeze.adb (Is_Uninitialized_Aggregate): Move...
2373         * exp_util.adb (Is_Uninitialized_Aggregate): ... here.
2374         (Expand_Subtype_From_Expr): If the expression is an
2375         uninitialized aggregate, capture subtype for declared object and
2376         remove expression to suppress further superfluous expansion.
2378 2020-11-25  Ed Schonberg  <schonberg@adacore.com>
2380         * sem_eval.adb (Subtypes_Statically_Compatible): Scalar types
2381         with compatible static bounds are statically compatible if
2382         predicates are compatible, even if they are not static subtypes.
2383         Same for private types without discriminants.
2385 2020-11-25  Eric Botcazou  <ebotcazou@adacore.com>
2387         * exp_ch11.adb (Expand_N_Raise_Statement): Use Is_Entity_Name
2388         consistently in tests on the name of the statement.
2389         * exp_prag.adb (Expand_Pragma_Check): In the local propagation
2390         case, wrap the raise statement in a block statement.
2392 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2394         * exp_ch8.adb (Expand_N_Exception_Renaming_Declaration): Move
2395         "Nam" constant after the body of a nested subprogram; change "T"
2396         from variable to constant.
2398 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2400         * make.adb (Scan_Make_Arg): Merge ELSIF branches for -u and -U.
2402 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2404         * doc/gnat_rm/implementation_defined_attributes.rst
2405         (Has_Tagged_Values): Document based on the existing description
2406         of Has_Access_Type and the comment for Has_Tagged_Component,
2407         which is where frontend evaluates this attribute.
2408         * gnat_rm.texi: Regenerate.
2409         * sem_attr.adb (Analyze_Attribute): Merge processing of
2410         Has_Access_Type and Has_Tagged_Component attributes.
2411         * sem_util.adb (Has_Access_Type): Fix casing in comment.
2412         * sem_util.ads (Has_Tagged_Component): Remove wrong (or
2413         outdated) comment about the use of this routine to implement the
2414         equality operator.
2416 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2418         * exp_attr.adb (Expand_Size_Attribute): Remove whitespace;
2419         simplify with a membership test, which are now allowed in the
2420         frontend code.
2422 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2424         * sem_ch13.adb (Analyze_One_Aspect): Fix inconsistent calls to
2425         Make_Aitem_Pragma.
2427 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2429         * sem_ch13.adb (Check_Expr_Constants): Simplify with
2430         Is_Named_Number.
2431         * sem_prag.adb (Process_Convention): Likewise.
2433 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2435         * sem_ch13.adb (Analyze_One_Aspect): Detect aspect identifiers
2436         with membership tests.
2437         (Check_Aspect_At_End_Of_Declarations): Likewise.
2438         (Freeze_Entity_Checks): Likewise; a local constant is no longer
2439         needed.
2440         (Is_Operational_Item): Similar simplification for attribute
2441         identifiers.
2442         (Is_Type_Related_Rep_Item): Likewise.
2443         (Resolve_Iterable_Operation): Detect names with a membership
2444         test.
2445         (Validate_Independence): Replace repeated Ekind with a
2446         membership test.
2448 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2450         * sem_ch13.adb (Analyze_One_Aspect): Replace duplicate of
2451         Effective_Reads.
2453 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2455         * einfo.adb: Use composite wrappers (e.g.
2456         Is_Subprogram_Or_Entry) and membership tests where it appears to
2457         improve clarity.
2459 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2461         * einfo.adb (Is_Standard_Character_Type,
2462         Is_Standard_String_Type): Simplify.
2463         (Last_Formal): Use procedural variant of Next_Formal.
2465 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2467         * einfo.adb: Replace "E" with Entity_Id in local object
2468         declarations.
2470 2020-11-25  Steve Baird  <baird@adacore.com>
2472         * exp_ch2.adb (Expand_Entity_Reference): A new local predicate
2473         Is_Object_Renaming_Name indicates whether a given expression
2474         occurs (after looking through qualified expressions and type
2475         conversions) as the name of an object renaming declaration. If
2476         Current_Value is available but this new predicate is True, then
2477         ignore the availability of Current_Value.
2479 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2481         * sem_ch12.adb (Instantiate_Type): Remove extra whitespace.
2482         (Validate_Access_Type_Instance): Remove dead (and duplicated)
2483         code.
2485 2020-11-25  Gary Dismukes  <dismukes@adacore.com>
2487         * exp_util.adb (Possible_Side_Effect_In_SPARK): Replace hyphen
2488         with a space in "side-effect" (two instances).
2490 2020-11-25  Justin Squirek  <squirek@adacore.com>
2492         * doc/gnat_rm/intrinsic_subprograms.rst (Shifts and Rotates):
2493         Document behavior on negative numbers
2494         * gnat_rm.texi: Regenerate.
2495         * sem_eval.adb (Fold_Shift): Set modulus to be based on the RM
2496         size for non-modular integer types.
2498 2020-11-25  Olivier Hainque  <hainque@adacore.com>
2500         * adaint.c (__gnat_copy_attribs): Reinstate code based on utime
2501         for timestamp processing on VxWorks 6.
2503 2020-11-25  Yannick Moy  <moy@adacore.com>
2505         * exp_util.adb (Remove_Side_Effects): Only remove side-effects
2506         in GNATprove mode when this is useful.
2507         * sem_res.adb (Set_Slice_Subtype): Make sure in GNATprove mode
2508         to define the Itype when needed, so that run-time errors can be
2509         analyzed.
2510         * sem_util.adb (Enclosing_Declaration): Correctly take into
2511         account renaming declarations.
2513 2020-11-25  Eric Botcazou  <ebotcazou@adacore.com>
2515         * libgnat/s-rannum.adb (Random_Discrete): Specifically deal with
2516         the case where the size of the base type is larger than 64 bits.
2518 2020-11-25  Yannick Moy  <moy@adacore.com>
2520         * sem_ch3.adb (Access_Type_Declaration): Set Etype before
2521         checking for volatility compatibility.
2523 2020-11-25  Eric Botcazou  <ebotcazou@adacore.com>
2525         * libgnat/g-rannum.ads (Random): New functions returning 128-bit.
2526         * libgnat/g-rannum.adb (Random): Implement them and alphabetize.
2527         (To_Signed): New unchecked conversion function for 128-bit.
2529 2020-11-25  Arnaud Charlet  <charlet@adacore.com>
2531         * exp_ch7.adb (Build_Finalization_Master, Build_Finalizer,
2532         Build_Object_Declarations, Make_Deep_Array_Body,
2533         Wrap_Transient_Expression): Call Set_Debug_Info_Needed on
2534         temporaries when Debug_Generated_Code is True.
2536 2020-11-25  Liaiss Merzougue  <merzougue@adacore.com>
2538         * libgnat/s-imagei.adb
2539         (Set_Digits): Rewrite the procedure to remove recursion.
2540         (Image_Integer, Set_Image_Integer): Update assertions and remove
2541         redundant ones.
2542         * libgnat/s-imageu.adb
2543         (Set_Image_Unsigned): Rewrite the procedure to remove recursion.
2545 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2547         * exp_util.adb (Attribute_Constrained_Static_Value): Fix body
2548         box.
2549         * sem_attr.adb (Eval_Attribute): Replace repeated calls to
2550         Attribute_Name with a captured value of the Attribute_Id; also,
2551         remove extra parens around Is_Generic_Type.
2553 2020-11-25  Ghjuvan Lacambre  <lacambre@adacore.com>
2555         * sem_prag.adb (Analyze_Pragma): Emit error on wrong argument
2556         nkind.
2558 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2560         * sem_attr.adb, sem_prag.adb: Use Is_Named_Number.
2562 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2564         * exp_attr.adb, exp_util.adb: Fix style and typos in comments.
2566 2020-11-25  Piotr Trojanek  <trojanek@adacore.com>
2568         * exp_attr.adb (Expand_N_Attribute_Reference): A variable that
2569         is only incremented in the code has now type Nat; conversion is
2570         now unnecessary.
2572 2020-11-24  Piotr Trojanek  <trojanek@adacore.com>
2574         * sem_prag.adb (Analyze_Global_Item): Call SPARK_Msg_NE with the
2575         entity, not with its identifier.
2577 2020-11-24  Arnaud Charlet  <charlet@adacore.com>
2579         * opt.ads (Generate_Asm): New flag.
2580         * osint-c.adb (Set_Output_Object_File_Name): Accept any
2581         extension when generating assembly.
2582         * adabkend.adb (Scan_Compiler_Args): Recognize -S.
2584 2020-11-24  Piotr Trojanek  <trojanek@adacore.com>
2586         * exp_attr.adb, exp_ch4.adb, exp_intr.adb, sem_ch8.adb,
2587         sem_res.adb, sem_type.adb, sem_util.adb: Reuse Is_Packed_Array.
2589 2020-11-24  Piotr Trojanek  <trojanek@adacore.com>
2591         * checks.adb (Apply_Access_Check): Remove unbalanced paren.
2592         * exp_attr.adb (Expand_N_Attribute_Reference): Fix typo in
2593         comment.
2595 2020-11-24  Justin Squirek  <squirek@adacore.com>
2597         * sem_prag.adb (Analyze_Pragma): Mark relevant pragmas as ghost
2598         when they are within a ghost region.
2600 2020-11-24  Piotr Trojanek  <trojanek@adacore.com>
2602         * contracts.adb, freeze.adb, sem_ch12.adb, sem_prag.adb: Reuse
2603         In_Same_List.
2605 2020-11-24  Piotr Trojanek  <trojanek@adacore.com>
2607         * sem_prag.adb (Is_Loop_Pragma): Avoid repeated calls to
2608         Original_Node; remove unnecessary IF statement.
2610 2020-11-24  Piotr Trojanek  <trojanek@adacore.com>
2612         * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Rewrite
2613         with a CASE statement.
2615 2020-11-24  Piotr Trojanek  <trojanek@adacore.com>
2617         * exp_attr.adb (Expand_N_Attribute_Reference): Replace calls to
2618         Sloc with a local constant Loc; remove call to
2619         Analyze_And_Resolve and return, which is exactly what happens
2620         anyway (and other branches in the Constrained declare block
2621         appear to rely on analysis, resolution and returning happening
2622         in all cases).
2623         * sem_util.adb: Remove useless parens.
2625 2020-11-24  Piotr Trojanek  <trojanek@adacore.com>
2627         * sem_util.adb (Is_Object_Reference): Delta and extension
2628         aggregates are objects.
2630 2020-11-24  Ghjuvan Lacambre  <lacambre@adacore.com>
2632         * libgnat/s-rident.ads (System.Rident): Register new restriction
2633         IDs.
2634         * par-ch13.adb (Get_Aspect_Specifications): Add restriction check.
2635         * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings):
2636         Register No_Unrecognized_Aspects restriction.
2637         * sem_prag.adb (Analyze_Pragma): Add restriction check.
2638         * snames.ads-tmpl: Create restriction names.
2640 2020-11-24  Piotr Trojanek  <trojanek@adacore.com>
2642         * sem_attr.adb (Declared_Within): Return True for objects
2643         declared within the attribute Loop_Entry prefix itself.
2645 2020-11-24  Yannick Moy  <moy@adacore.com>
2647         * sem_ch3.adb (Process_Discriminants): Correctly set right
2648         context for analyzing default value of discriminant.
2650 2020-11-24  Arnaud Charlet  <charlet@adacore.com>
2652         * sem_type.adb (Add_One_Interp.Is_Universal_Operation): Account
2653         for universal_access = operator.
2654         (Disambiguate): Take into account preference on universal_access
2655         = operator when relevant.
2656         (Disambiguate.Is_User_Defined_Anonymous_Access_Equality): New.
2658 2020-11-24  Arnaud Charlet  <charlet@adacore.com>
2660         * exp_util.adb (Is_Finalizable_Transient): Take into account return
2661         statements containing N_Expression_With_Actions. Also clean up a
2662         condition to make it more readable.
2663         * exp_ch6.adb: Fix typo.
2665 2020-11-24  Eric Botcazou  <ebotcazou@adacore.com>
2667         * libgnat/a-wtdeio.adb (TFT): Delete and adjust throughout.
2668         * libgnat/a-wtenau.adb (TFT): Likewise.
2669         * libgnat/a-wtfiio.adb (TFT): Likewise.
2670         * libgnat/a-wtflio.adb (TFT): Likewise.
2671         * libgnat/a-wtinio.adb (TFT): Likewise.
2672         * libgnat/a-wtinio__128.adb (TFT): Likewise.
2673         * libgnat/a-wtmoio.adb (TFT): Likewise.
2674         * libgnat/a-wtmoio__128.adb (TFT): Likewise.
2675         * libgnat/a-ztdeio.adb (TFT): Likewise.
2676         * libgnat/a-ztenau.adb (TFT): Likewise.
2677         * libgnat/a-ztfiio.adb (TFT): Likewise.
2678         * libgnat/a-ztflio.adb (TFT): Likewise.
2679         * libgnat/a-ztinio.adb (TFT): Likewise.
2680         * libgnat/a-ztinio__128.adb (TFT): Likewise.
2681         * libgnat/a-ztmoio.adb (TFT): Likewise.
2682         * libgnat/a-ztmoio__128.adb (TFT): Likewise.
2684 2020-11-24  Arnaud Charlet  <charlet@adacore.com>
2686         * sem_ch13.adb (Validate_Literal_Aspect): Add support for named
2687         numbers and in particular overload of the Real_Literal function.
2688         * sem_res.adb (Resolve): Add support for named numbers in
2689         Real_Literal and Integer_Literal resolution.
2690         * einfo.adb, einfo.ads (Related_Expression,
2691         Set_Related_Expression): Allow E_Function.
2692         * uintp.ads (UI_Image_Max): Bump size of buffer to avoid loosing
2693         precision.
2694         * sem_eval.adb: Fix typo in comment.
2695         * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads (From_String):
2696         Return a Valid_Big_Integer.
2697         * libgnat/a-nbnbre.adb, libgnat/a-nbnbre.ads (From_String): New
2698         variant taking two strings. Return a Valid_Big_Real.
2700 2020-11-24  Eric Botcazou  <ebotcazou@adacore.com>
2702         * sem_ch12.adb (Analyze_Associations) <Explicit_Freeze_Check>: Test
2703         that the instance is in a statement sequence instead of local scope.
2704         (Freeze_Subprogram_Body): Use the special delayed placement with
2705         regard to the parent instance only if its Sloc is strictly greater.
2706         (Install_Body): Likewise.
2708 2020-11-24  Steve Baird  <baird@adacore.com>
2710         * sem_ch13.adb (Validate_Literal_Aspect): Call to Base_Type
2711         needed in order to correctly check result type of String_Literal
2712         function when the first named subtype differs from the base
2713         type (e.g.:
2714         type T is range 1 .. 10 with String_Literal => ... ;
2715         ).
2717 2020-11-24  Yannick Moy  <moy@adacore.com>
2719         * sem_prag.adb (Analyze_Global_Item): Handle specially the
2720         current instance of a PO.
2721         * sem_util.ads (Is_Effectively_Volatile,
2722         Is_Effectively_Volatile_For_Reading): Add parameter
2723         Ignore_Protected.
2724         * sem_util.adb (Is_Effectively_Volatile,
2725         Is_Effectively_Volatile_For_Reading): Add parameter
2726         Ignore_Protected to compute the query results ignoring protected
2727         objects/types.
2728         (Is_Effectively_Volatile_Object,
2729         Is_Effectively_Volatile_Object_For_Reading): Adapt to new
2730         signature.
2732 2020-11-24  Ghjuvan Lacambre  <lacambre@adacore.com>
2734         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
2735         Update documentation on -gnatyk.
2736         * gnat_ugn.texi: Regenerate.
2738 2020-11-24  Yannick Moy  <moy@adacore.com>
2740         * sem_ch10.adb (Analyze_Compilation_Unit): Move aspects from
2741         body to the newly created spec.
2743 2020-11-24  Arnaud Charlet  <charlet@adacore.com>
2745         * exp_ch6.adb (Add_Cond_Expression_Extra_Actual): Simplify
2746         handling of function calls and remove bug in handling of
2747         transient objects.  Minor reformatting along the way.
2749 2020-11-24  Arnaud Charlet  <charlet@adacore.com>
2751         * libgnat/a-nbnbin.adb (From_String): Implement fully.
2753 2020-11-24  Piotr Trojanek  <trojanek@adacore.com>
2755         * sem_aggr.adb (Resolve_Delta_Array_Aggregate): If the choice is
2756         a subtype_indication then call
2757         Resolve_Discrete_Subtype_Indication; both for choices
2758         immediately inside array delta aggregates and inside
2759         iterated_component_association within array delta aggregates.
2761 2020-11-24  Piotr Trojanek  <trojanek@adacore.com>
2763         * lib-load.adb, lib-writ.adb, lib.adb, par-load.adb,
2764         rtsfind.adb, sem_ch10.adb: Use Present where possible.
2766 2020-11-24  Yannick Moy  <moy@adacore.com>
2768         * sem_prag.adb (Analyze_Depends_Global): Reject Global and
2769         Depends on null procedure.
2771 2020-11-24  Arnaud Charlet  <charlet@adacore.com>
2773         * libgnat/a-nbnbre.adb (From_String): Handle properly '_'
2774         characters.
2776 2020-11-24  Piotr Trojanek  <trojanek@adacore.com>
2778         * exp_spark.adb (Expand_SPARK_Array_Aggregate,
2779         Expand_SPARK_N_Aggregate): Remove, no longer needed.
2780         * sem_aggr.adb (Resolve_Iterated_Component_Association): Only
2781         remove references in the analyzed expression when generating
2782         code and the expression needs to be analyzed anew after being
2783         rewritten into a loop.
2785 2020-11-24  Eric Botcazou  <ebotcazou@adacore.com>
2787         * doc/gnat_rm/implementation_defined_characteristics.rst: Complete
2788         entry of 3.5.9(10).
2789         * gnat_rm.texi: Regenerate.
2791 2020-11-20  Maciej W. Rozycki  <macro@linux-mips.org>
2793         * adaint.c (__gnat_number_of_cpus): Check for the presence of
2794         _SC_NPROCESSORS_ONLN rather than a list of OS-specific macros
2795         to decide whether to use `sysconf'.
2797 2020-11-20  Jakub Jelinek  <jakub@redhat.com>
2799         PR other/97911
2800         * gcc-interface/Make-lang.in (ada.serial): Change from goal to a
2801         variable.
2802         (.PHONY): Drop ada.serial and ada.prev.
2803         (gnat1$(exeext)): Depend on $(ada.serial) rather than ada.serial.
2805 2020-11-19  Eric Botcazou  <ebotcazou@adacore.com>
2807         PR ada/97805
2808         * adaint.c: Include climits in C++ and limits.h otherwise.
2810 2020-11-19  Eric Botcazou  <ebotcazou@adacore.com>
2812         * exp_dbug.adb (Is_Handled_Scale_Factor): Delete.
2813         (Get_Encoded_Name): Do not call it.
2814         * gcc-interface/decl.c (gnat_to_gnu_entity) <Fixed_Point_Type>:
2815         Tidy up and always use a meaningful description for arbitrary
2816         scale factors.
2817         * gcc-interface/misc.c (gnat_get_fixed_point_type_info): Remove
2818         obsolete block and adjust the description of the scale factor.
2820 2020-11-18  Jakub Jelinek  <jakub@redhat.com>
2822         * gcc-interface/Make-lang.in (ada.serial): New goal.
2823         (.PHONY): Add ada.serial ada.prev.
2824         (gnat1$(exeext)): Depend on ada.prev.  Call LINK_PROGRESS.
2826 2020-11-18  Matthias Klose  <doko@ubuntu.com>
2828         PR ada/97859
2829         * Makefile.rtl (powerpc% linux%): Also match powerpc64le cpu.
2831 2020-11-11  Eric Botcazou  <ebotcazou@adacore.com>
2833         * gcc-interface/gigi.h: Remove ^L characters throughout.
2834         * gcc-interface/decl.c: Likewise.
2835         * gcc-interface/utils.c: Likewise.
2836         * gcc-interface/utils2.c: Likewise.
2837         * gcc-interface/trans.c (gnat_to_gnu) <N_Allocator>: Do not explicitly
2838         go to the base type for the Has_Constrained_Partial_View flag.
2840 2020-11-11  Eric Botcazou  <ebotcazou@adacore.com>
2842         * gcc-interface/trans.c (build_binary_op_trapv): Convert operands
2843         to the result type before doing generic overflow checking.
2845 2020-11-11  Eric Botcazou  <ebotcazou@adacore.com>
2847         * gcc-interface/trans.c (can_be_lower_p): Remove.
2848         (Regular_Loop_to_gnu): Add ENTRY_COND unconditionally if
2849         BOTTOM_COND is non-zero.
2851 2020-11-11  Eric Botcazou  <ebotcazou@adacore.com>
2853         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: In case
2854         the constant is not being defined, get the expression in type
2855         annotation mode only if its type is elementary.
2857 2020-11-11  Eric Botcazou  <ebotcazou@adacore.com>
2859         * gcc-interface/trans.c (gnat_to_gnu) <N_Op_Shift>: Also convert
2860         GNU_MAX_SHIFT if the type of the operation has been changed.
2861         * gcc-interface/utils.c (can_materialize_object_renaming_p): Add
2862         pair of missing parentheses.
2864 2020-11-07  Eric Botcazou  <ebotcazou@adacore.com>
2866         * gcc-interface/Makefile.in: Force target_cpu to powerpc if the
2867         nominal target is powerpc64-suse-linux.
2869 2020-11-07  Iain Sandoe  <iain@sandoe.co.uk>
2871         * gcc-interface/misc.c (gnat_printable_name): Change
2872         DECL_IS_BUILTIN -> DECL_IS_UNDECLARED_BUILTIN.
2874 2020-10-28  Alexandre Oliva  <oliva@adacore.com>
2876         PR ada/97504
2877         * Makefile.rtl (LIBGNAT_TARGET_PAIRS> <riscv*-*-*>: Use wraplf
2878         version of Aux_Long_Long_Float.
2880 2020-10-27  Doug Rupp  <rupp@adacore.com>
2882         * Makefile.rtl: Add vx7r2cert spec file to ARM, PowerPC and x86
2883         targets.
2884         * vxworks7-cert-rtp-link.spec: New spec file.
2886 2020-10-27  Arnaud Charlet  <charlet@adacore.com>
2888         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-spogwa object.
2889         * libgnat/g-spogwa.adb: Fix style errors.
2891 2020-10-27  Piotr Trojanek  <trojanek@adacore.com>
2893         * exp_spark.adb (Expand_SPARK_Array_Aggregate): Dedicated
2894         routine for array aggregates; mostly reuses existing code, but
2895         calls itself recursively for multi-dimensional array aggregates.
2896         (Expand_SPARK_N_Aggregate): Call Expand_SPARK_Array_Aggregate to
2897         do the actual expansion, starting from the first index of the
2898         array type.
2900 2020-10-27  Ed Schonberg  <schonberg@adacore.com>
2902         * sem_aggr.adb (Resolve_Iterated_Component_Association): new
2903         internal subprogram Remove_References, to reset semantic
2904         information on each reference to the index variable of the
2905         association, so that Collect_Aggregate_Bounds can work properly
2906         on multidimensional arrays with nested associations, and
2907         subsequent expansion into loops can verify that dimensions of
2908         each subaggregate are compatible.
2910 2020-10-27  Ghjuvan Lacambre  <lacambre@adacore.com>
2912         * exp_prag.adb (Append_Copies): Handle N_Parameter_Associations.
2914 2020-10-27  Eric Botcazou  <ebotcazou@adacore.com>
2916         * ada_get_targ.adb (Digits_From_Size): Delete.
2917         (Width_From_Size): Likewise.
2918         * get_targ.adb (Digits_From_Size): Likewise.
2919         (Width_From_Size): Likewise.
2920         * get_targ.ads (Digits_From_Size): Likewise.
2921         (Width_From_Size): Likewise.
2922         * ttypes.ads: Remove with clause for Get_Targ.
2923         (Standard_Short_Short_Integer_Width): Delete.
2924         (Standard_Short_Integer_Width): Likewise.
2925         (Standard_Integer_Width): Likewise.
2926         (Standard_Long_Integer_Width): Likewise.
2927         (Standard_Long_Long_Integer_Width): Likewise.
2928         (Standard_Long_Long_Long_Integer_Width): Likewise.
2929         (Standard_Short_Float_Digits): Likewise.
2930         (Standard_Float_Digits): Likewise.
2931         (Standard_Long_Float_Digits): Likewise.
2932         (Standard_Long_Long_Float_Digits): Likewise.
2933         * gnat1drv.adb (Adjust_Global_Switches): Adjust.
2935 2020-10-27  Arnaud Charlet  <charlet@adacore.com>
2937         * exp_ch6.adb, freeze.adb, gnat1drv.adb, opt.ads, sem_ch6.adb
2938         (Transform_Function_Array): New flag, split from Modify_Tree_For_C.
2939         * exp_unst.adb: Minor reformatting.
2941 2020-10-27  Dmitriy Anisimkov  <anisimko@adacore.com>
2943         * libgnat/g-socpol.adb (Wait): Do not exit from loop on EINTR
2944         error and timeout is over.
2946 2020-10-26  Ed Schonberg  <schonberg@adacore.com>
2948         * exp_aggr.adb (Build_Array_Aggr_Code): If the aggregate
2949         includes an Others_Choice in an association that is an
2950         Iterated_Component_Association, generate a proper loop for it.
2952 2020-10-26  Eric Botcazou  <ebotcazou@adacore.com>
2954         * libgnat/a-tifiio.adb: Add missing sign in documentation.
2955         * libgnat/s-imgrea.ads: Minor fixes in commentary.
2957 2020-10-26  Pat Rogers  <rogers@adacore.com>
2959         * doc/gnat_rm/implementation_defined_pragmas.rst: Include
2960         "Jorvik" in pragma Profile description.
2961         * gnat_rm.texi: Regenerate.
2963 2020-10-26  Bob Duff  <duff@adacore.com>
2965         * sem_attr.adb (Check_Image_Type): Remove "|", so the compiler
2966         will not crash.
2967         * errout.ads: Improve comment. This has nothing to do with
2968         -gnatQ.
2970 2020-10-26  Eric Botcazou  <ebotcazou@adacore.com>
2972         * libgnat/a-tifiio.adb: Minor editions to documentation.
2974 2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
2976         * contracts.adb (Causes_Contract_Freezing): Extend condition to
2977         match the one in Analyze_Subprogram_Body_Helper. This routine is
2978         used both as an assertion at the very start of
2979         Freeze_Previous_Contracts and to detect previous declaration for
2980         which Freeze_Previous_Contracts has been executed.
2982 2020-10-26  Eric Botcazou  <ebotcazou@adacore.com>
2984         * libgnat/a-tifiio.adb: Move around documentaton paragraph.
2986 2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
2988         * inline.adb (Establish_Actual_Mapping_For_Inlined_Call): Add
2989         guard for a call to Set_Last_Assignment with the same condition
2990         as the assertion in that routine and explain why this guard
2991         fails in GNATprove mode.
2993 2020-10-26  Eric Botcazou  <ebotcazou@adacore.com>
2995         * doc/gnat_rm/implementation_defined_characteristics.rst: Adjust
2996         the entries of 3.5.9(8) and 3.5.9(10).
2997         * gnat_rm.texi: Regenerate.
2999 2020-10-26  Eric Botcazou  <ebotcazou@adacore.com>
3001         * libgnat/a-tifiio.adb: Change the range of supported Small
3002         values.
3003         (E0, E1, E2): Adjust factors.
3004         (Exact): Return false if the Small does not fit in 64 bits.
3006 2020-10-26  Dmitriy Anisimkov  <anisimko@adacore.com>
3008         * libgnat/g-socket.adb (Wait_On_Socket): Boolean parameter
3009         For_Read changed to Event parameter of type
3010         GNAT.Sockets.Poll.Wait_Event_Set.  Implementation is simplified
3011         and based on call to GNAT.Sockets.Poll.Wait now.
3013 2020-10-26  Eric Botcazou  <ebotcazou@adacore.com>
3015         * libgnat/a-tifiio.adb: Minor editions to documentation.
3017 2020-10-26  Yannick Moy  <moy@adacore.com>
3019         * sem_ch12.adb (Restore_Private_Views): Do not lose the
3020         information provided by Is_Generic_Actual_Type in GNATprove
3021         mode.
3023 2020-10-26  Arnaud Charlet  <charlet@adacore.com>
3025         * sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning
3026         on formal parameters of all dispatching operations.
3028 2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
3030         * sem_aggr.adb (Resolve_Delta_Array_Aggregate): Fix typos in
3031         error message.
3033 2020-10-26  Olivier Hainque  <hainque@adacore.com>
3035         * libgnat/s-dwalin.adb (Symbolic_Traceback): Always emit the hex
3036         address at the beginning of an entry if suppression is not
3037         requested. Consistently output a "???" for the subprogram name
3038         when it is unknown.
3040 2020-10-26  Doug Rupp  <rupp@adacore.com>
3042         * s-oscons-tmplt.c (_nfds_t): Use sizeof (unsigned long int).
3044 2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
3046         * par-ch4.adb (P_Iterated_Component_Association): Move code for
3047         iterated_element_association to
3048         Build_Iterated_Element_Association.
3050 2020-10-26  Yannick Moy  <moy@adacore.com>
3052         * sem_ch12.adb (Needs_Body_Instantiated): In GNATprove mode, do
3053         not instantiate bodies outside of the main unit.
3055 2020-10-26  Ed Schonberg  <schonberg@adacore.com>
3057         * sem_aggr.adb (Resolve_Delta_Array_Aggregate): For an
3058         association that is an iterated component association, attach
3059         the copy of the expression to the tree prior to analysis, in
3060         order to preserve its context. This is needed when verifying
3061         static semantic rules that depend on context, for example that a
3062         use of 'Old appears only within a postcondition.
3064 2020-10-26  Bob Duff  <duff@adacore.com>
3066         * doc/gnat_ugn/gnat_utility_programs.rst: Document that
3067         --no-comments-fill is now the default.
3069 2020-10-26  Gary Dismukes  <dismukes@adacore.com>
3071         * sem_aggr.adb (Resolve_Extension_Aggregate): When testing for
3072         an aggregate that is illegal due to having an ancestor type that
3073         has unknown discriminants, add an "or else" condition testing
3074         whether the aggregate type has unknown discriminants and that
3075         Partial_View_Has_Unknown_Discr is also set on the ancestor type.
3076         Extend the comment, including adding ??? about a possible
3077         simpler test.
3079 2020-10-26  Bob Duff  <duff@adacore.com>
3081         * libgnat/a-cihama.adb, libgnat/a-cohama.adb,
3082         libgnat/a-cohase.adb (Delete): Set Position.Position, and
3083         assert.
3085 2020-10-26  Arnaud Charlet  <charlet@adacore.com>
3087         * sem_ch8.adb (Find_Direct_Name.Undefined): Handle known unit
3088         names with 3 selectors.
3090 2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
3092         * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Add missing call
3093         to Enter_Name, just like it is called for
3094         iterated_component_association in Expand_SPARK_N_Aggregate.
3096 2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
3098         * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Reuse local
3099         constant Expr and the Choice_List routine.
3100         (Expand_SPARK_N_Aggregate): Reuse local constant Expr.
3102 2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
3104         * par-ch4.adb (P_Iterated_Component_Association): Fix typos in
3105         comments.
3107 2020-10-26  Arnaud Charlet  <charlet@adacore.com>
3109         * par-ch6.adb (P_Formal_Part): Ada 2020 supports scanning
3110         aspects on formal parameters.
3111         * doc/gnat_rm/implementation_defined_aspects.rst (Aspect
3112         Unreferenced): Update documentation.
3113         * gnat_rm.texi: Regenerate.
3115 2020-10-26  Ed Schonberg  <schonberg@adacore.com>
3117         * freeze.adb (Freeze_Type_Refs): When an entity in an expression
3118         function is a type, freeze the entity and not just its type,
3119         which would be incomplete when the type is derived and/or
3120         tagged.
3122 2020-10-26  Piotr Trojanek  <trojanek@adacore.com>
3124         * exp_attr.adb (Expand_Update_Attribute): Handle
3125         subtype_indication just like in Expand_Delta_Array_Aggregate.
3127 2020-10-25  Iain Sandoe  <iain@sandoe.co.uk>
3129         * Makefile.rtl: Add GNATRTL_128BIT_PAIRS/OBJS for 64bit
3130         PowerPC Darwin cases.
3132 2020-10-23  Iain Sandoe  <iain@sandoe.co.uk>
3134         * adaint.c: On Darwin platforms, define st_atim to
3135         st_atimespec. Likwise st_mtim to st_mtimespec.
3137 2020-10-23  Eric Botcazou  <ebotcazou@adacore.com>
3139         * Makefile.rtl (EXTRA_GNATRTL_NONTASKING_OBJS) [IA64/Linux]: Fix typo.
3141 2020-10-23  Eric Botcazou  <ebotcazou@adacore.com>
3143         * Makefile.rtl (EXTRA_GNATRTL_NONTASKING_OBJS) [IA64/Linux]: Fix typo.
3145 2020-10-23  Alexandre Oliva  <oliva@adacore.com>
3147         PR ada/97504
3148         * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Select wraplf version
3149         of Aux_Long_Long_Float for s390 and remaining sparc and
3150         powerpc targets.
3152 2020-10-23  Dmitriy Anisimkov  <anisimko@adacore.com>
3154         * Makefile.rtl (GNATRTL_SOCKETS_OBJS): New object
3155         g-socpol$(objext) New source files noted: g-socpol.adb,
3156         g-socpol.ads, g-socpol__dummy.adb, g-socpol__dummy.ads,
3157         g-sopowa.adb, g-sopowa__posix.adb, g-sopowa__mingw.adb,
3158         g-spogwa.adb, g-spogwa.ads.
3159         * impunit.adb (Non_Imp_File_Names_95): New base filename
3160         g-socpol in "GNAT Library Units" section for GNAT.Sockets.Poll
3161         unit.
3162         * libgnat/g-socket.ads, libgnat/g-socket.adb:
3163         (Raise_Socket_Error): Moved from body to private part of
3164         specification to use in GNAT.Sockets.Poll.
3165         * libgnat/g-socpol.ads, libgnat/g-socpol.adb: Main unit of the
3166         implementation.
3167         * libgnat/g-socpol__dummy.ads, libgnat/g-socpol__dummy.adb:
3168         Empty unit for the systems without sockets support.
3169         * libgnat/g-spogwa.ads, libgnat/g-spogwa.adb: Generic unit
3170         implementing sockets poll on top of select system call.
3171         * libgnat/g-sopowa.adb (Wait): Separate implementation for
3172         operation systems with poll system call support.
3173         * libgnat/g-sopowa__posix.adb (Wait): Separate implementation
3174         for POSIX select system call.
3175         * libgnat/g-sopowa__mingw.adb (Wait): Separate implementation
3176         for Windows select system call.
3177         * gsocket.h (_WIN32_WINNT): Increase to 0x0600 for winsock2.h to
3178         allow WSAPoll related definitions.
3179         * s-oscons-tmplt.c: Fix comment next to #endif for
3180         #if defined (__linux__) || defined (__ANDROID__) line.  Include
3181         <poll.h> for all except VxWorks and Windows.
3182         (SIZEOF_nfds_t): New definition.
3183         (SIZEOF_fd_type): New definition.
3184         (SIZEOF_pollfd_events): New definition.
3185         (POLLIN, POLLPRI, POLLOUT, POLLERR, POLLHUP, POLLNVAL): New
3186         definitions for VxWorks to be able to emulate poll on top of
3187         select in it.  Define POLLPRI as zero on Windows as it is not
3188         supported there.
3189         (Poll_Linkname): New definition, because the poll system call
3190         has different name in Windows and POSIX.
3192 2020-10-23  Justin Squirek  <squirek@adacore.com>
3194         * checks.adb (Apply_Accessibility_Check): Skip checks against
3195         the extra accessibility of a function result when in Ada 2005
3196         mode or earlier.
3197         * exp_ch3.adb (Build_Initialization_Call): Modify accessibility
3198         level calls to use Accessibility_Level.
3199         (Expand_N_Object_Declaration): Modify accessibility level calls
3200         to use Accessibility_Level.
3201         * exp_ch4.adb (Expand_Allocator_Expression): Add static check
3202         for anonymous access discriminants. Remove unneeded propagation
3203         of accessibility actual.
3204         (Expand_N_In): Modify accessibility level calls to use
3205         Accessibility_Level.
3206         (Expand_N_Type_Conversion): Modify accessibility level calls to
3207         use Accessibility_Level.
3208         * exp_ch5.adb (Expand_N_Assignment_Statement): Modify
3209         accessibility level calls to use Accessibility_Level.
3210         * exp_ch6.adb (Expand_Call_Helper): Rewrite accessibility
3211         calculation for the extra accessibility of result actual in
3212         function calls, and modify accessibility level calls to use
3213         Accessibility_Level.
3214         (Check_Against_Result_Level): Removed.
3215         * exp_ch9.adb (Expand_N_Requeue_Statement): Add dynamic
3216         accessibility check for requeues
3217         * sem_attr.adb (Resolve_Attribute): Modify accessibility level
3218         calls to use Accessibility_Level.
3219         * sem_ch13.adb (Associate_Storage_Pool): Modify accessibility
3220         level calls to use Accessibility_Level.
3221         * sem_ch4.adb (Analyze_Call): Add static check for explicitly
3222         aliased formals in function calls within return statements.
3223         * sem_ch6.adb (Check_Return_Construct_Accessibility): Rewrite
3224         routine to account for non-aggregate return objects.
3225         (Generate_Minimum_Accessibility): Created.
3226         (Analyze_Call): Modify accessibility level calls to use
3227         Accessibility_Level.
3228         (Analyze_Subprogram_Body_Helper): Add generation of minimum
3229         accessibility for the extra accessibility of the function
3230         result.
3231         * sem_ch9.adb (Analyze_Requeue): Modify accessibility level
3232         calls to use Accessibility_Level.
3233         * sem_res.adb: (Check_Aliased_Parameters): Modify accessibility
3234         level calls to use Accessibility_Level.
3235         (Valid_Conversion): Modify accessibility level calls to use
3236         Accessibility_Level.
3237         * sem_util.adb, sem_util.ads (Accessibility_Level_Helper):
3238         Renamed to Accessibility_Level, add detection for functions in
3239         prefix notation, and add cases where to return zero when
3240         specified. Modified to take new, more descriptive, parameters.
3241         (Accessibility_Level): Created.
3242         (Function_Call_Level): Removed.
3243         (Function_Call_Or_Allocator_Level): Created to centralize the
3244         calculation accessibility levels for function calls and
3245         allocators.
3246         (Static_Accessibility_Level): Removed.
3247         (Dynamic_Accessibility_Level): Removed.
3248         (Get_Dynamic_Accessibility): Renamed from Get_Accessibility.
3249         (In_Return_Value): Created to determine if a given expression
3250         contributes to the current function's return value.
3251         (Is_Master): Created.
3252         (Is_Explicitly_Aliased): Created
3254 2020-10-23  Bob Duff  <duff@adacore.com>
3256         * doc/gnat_ugn/gnat_utility_programs.rst: Document
3257         --no-comments-fill.
3259 2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
3261         * contracts.adb (Analyze_Entry_Or_Subprogram_Contract,
3262         Analyze_Subprogram_Body_Stub_Contract): Fix missing references
3263         to Subprogram_Variant where similar references to Contract_Cases
3264         are present.
3265         * sem_prag.adb (Analyze_Contract_Case, Analyze_Variant): Check
3266         that aggregate parameter has no expressions.
3267         (Analyze_Pragma): Replace Contract_Cases with Subprogram_Variant
3268         in a copy-pasted comment.
3270 2020-10-23  Philippe Gil  <gil@adacore.com>
3272         * libgnat/g-socket.ads: Fix comment typo.
3274 2020-10-23  Eric Botcazou  <ebotcazou@adacore.com>
3276         * doc/gnat_rm/implementation_defined_pragmas.rst (VFA): Remove uage
3277         restrictions in conjunction with Atomic and Aliased.
3278         * gnat_rm.texi: Regenerate.
3279         * aspects.ads (Aspect_Id): Add Aspect_Full_Access_Only.
3280         (Is_Representation_Aspect): Likewise.
3281         (Aspect_Names): Likewise.
3282         (Aspect_Delay): Likewise.
3283         * einfo.ads (Is_Atomic_Or_VFA): Rename into...
3284         (Is_Full_Access): ...this.
3285         (Is_Volatile_Full_Access): Document new usage for Full_Access_Only.
3286         * einfo.adb (Is_Atomic_Or_VFA): Rename into...
3287         (Is_Full_Access): ...this.
3288         * freeze.ads (Is_Atomic_VFA_Aggregate): Rename into...
3289         (Is_Full_Access_Aggregate): ...this.
3290         * freeze.adb (Is_Atomic_VFA_Aggregate): Rename into...
3291         (Is_Full_Access_Aggregate): ...this.  Adjust to above renaming.
3292         (Freeze_Array_Type): Likewise.
3293         (Freeze_Entity): Likewise.
3294         * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Likewise.
3295         (Expand_Record_Aggregate): Likewise.
3296         * exp_ch4.adb (Expand_N_Op_Eq): Likewise.
3297         * exp_ch5.adb (Expand_Assign_Array): Likewise.
3298         * exp_ch8.adb (Evaluation_Required): Likewise.
3299         * layout.adb (Layout_Type): Likewise.
3300         (Set_Composite_Alignment): Likewise.
3301         * sem_aux.ads (Has_Rep_Item): Delete.
3302         * sem_aux.adb (Has_Rep_Item): Likewise.
3303         * sem_attr.adb (Resolve_Attribute) <Attribute_Access>: Implement
3304         new legality rules in C.6(12).
3305         * sem_ch12.adb (Instantiate_Object): Likewise.
3306         * sem_res.adb (Resolve_Actuals): Likewise.
3307         * sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Deal with aspect
3308         Full_Access_Only.
3309         (Check_False_Aspect_For_Derived_Type): Likewise.
3310         (Make_Pragma_From_Boolean_Aspect): Test for the presence of Expr.
3311         Deal with aspect Full_Access_Only.
3312         (Analyze_Aspects_At_Freeze_Point): Likewise.
3313         (Analyze_One_Aspect): Do not set Delay_Required to true even for
3314         Always_Delay boolean aspects if they have no expression.  Force
3315         Delay_Required to true for aspect Full_Access_Only in all cases.
3316         Reject aspect Full_Access_Only if not in Ada 2020 mode.
3317         (Check_Aspect_At_End_Of_Declarations): Deal with empty expression.
3318         (Check_Aspect_At_Freeze_Point): Likewise.
3319         (Rep_Item_Entity): Delete.
3320         (Inherit_Aspects_At_Freeze_Point): Align handling for Bit_Order
3321         with that for Scalar_Storage_Order.
3322         * sem_prag.adb (Check_Atomic_VFA): Delete.
3323         (Check_VFA_Conflicts): Likewise.
3324         (Check_Full_Access_Only): New procedure.
3325         (Process_Atomic_Independent_Shared_Volatile): Call to implement
3326         the new legality checks in C.6(8/2) and mark the entity last.
3327         (Analyze_Pragma) <Pragma_Atomic_Components>: Remove obsolete check.
3328         * sem_util.ads (Is_Atomic_Or_VFA_Object): Rename into...
3329         (Is_Full_Access_Object): ...this.
3330         (Is_Subcomponent_Of_Atomic_Object): Rename into...
3331         (Is_Subcomponent_Of_Full_Access_Object): ...this.
3332         * sem_util.adb (Inherit_Rep_Item_Chain): Use Present_In_Rep_Item.
3333         (Is_Atomic_Or_VFA_Object): Rename into...
3334         (Is_Full_Access_Object): ...this.
3335         (Is_Subcomponent_Of_Atomic_Object): Rename into...
3336         (Is_Subcomponent_Of_Full_Access_Object): ...this and adjust.
3337         * snames.ads-tmpl (Name_Full_Access_Only): New name of aspect.
3338         * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust for renaming.
3339         (promote_object_alignment): Likewise.
3340         (gnat_to_gnu_field): Likewise.  Rename local variable and use
3341         specific qualifier in error message for Volatile_Full_Access.
3342         * gcc-interface/trans.c (lvalue_required_p): Likewise.
3344 2020-10-23  Arnaud Charlet  <charlet@adacore.com>
3346         * lib-writ.ads, lib-writ.adb (Write_ALI): No longer read
3347         existing ALI files in -gnatc mode.
3349 2020-10-23  Arnaud Charlet  <charlet@adacore.com>
3351         * libgnat/g-socthi__mingw.adb (C_Select): Fix logic in code and
3352         make it explicit that we are checking against null values before
3353         dereferencing them.
3355 2020-10-23  Eric Botcazou  <ebotcazou@adacore.com>
3357         * exp_imgv.adb (Expand_Image_Attribute): For an enumeration type
3358         subject to pragma Discard_Names, convert 'Pos to Long_Long_Integer
3359         before applying 'Img to the result.
3361 2020-10-23  Ed Schonberg  <schonberg@adacore.com>
3363         * freeze.adb (Freeze_Type_Refs): Add guard on freezing of the
3364         designated type of an access type appearing in the expression,
3365         when expression includes an explicit dereference whose prefix
3366         includes a function call.
3368 2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
3370         * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Handle
3371         subtype_indication; do not apply range checks for ranges; add
3372         comment saying that others_choices is not allowed.
3374 2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
3376         * exp_spark.adb (Expand_SPARK_N_Aggregate,
3377         Expand_SPARK_Delta_Or_Update): Expand
3378         Iterated_Component_Association occurring within delta
3379         aggregates.
3380         (Expand_SPARK): Apply SPARK-specific expansion to ordinary
3381         aggregates.
3383 2020-10-23  Johannes Kanig  <kanig@adacore.com>
3385         * exp_util.adb, exp_util.ads
3386         (Containing_Package_With_Ext_Axioms,
3387         Has_Annotate_Pragma_For_External_Axiomatizations): Removed.
3388         * sem_ch8.adb (Analyze_Subprogram_Renaming): Removed code
3389         related to external axiomatizations.
3390         * einfo.ads
3391         (Is_Generic_Actual_Subprogram): Removed comment about external
3392         axiomatization.
3394 2020-10-23  Ed Schonberg  <schonberg@adacore.com>
3396         * sem_aggr.adb (Resolve_Aggregate): Do not call
3397         Resolve_Container_Aggregate if compilation version is earlier
3398         than Ada_2020.
3400 2020-10-23  Arnaud Charlet  <charlet@adacore.com>
3402         * doc/gnat_rm/implementation_defined_pragmas.rst: Improve
3403         documentation of pragma Abort_Defer.
3404         * gnat_rm.texi: Regenerate.
3406 2020-10-23  Ghjuvan Lacambre  <lacambre@adacore.com>
3408         * exp_prag.adb (Etype_Or_Dim3): New function.
3409         (Expand_Pragma_Cuda_Execute): Use Etype_Or_Dim3 for temporary
3410         decls.
3412 2020-10-23  Arnaud Charlet  <charlet@adacore.com>
3414         * libgnat/s-fileio.adb (Open): Fix setting of Tempfile.
3416 2020-10-23  Ghjuvan Lacambre  <lacambre@adacore.com>
3418         * exp_prag.adb (Get_Launch_Kernel_Arg_Type): Renamed to
3419         Get_Nth_Arg_Type and made more generic.
3420         (Build_Dim3_Declaration): Now builds a CUDA.Internal.Dim3
3421         instead of a CUDA.Vector_Types.Dim3.
3422         (Build_Shared_Memory_Declaration): Now infers needed type from
3423         Launch_Kernel instead of using a hard-coded type.
3424         (Expand_Pragma_CUDA_Execute): Build additional temporaries to
3425         store Grids and Blocks.
3426         * rtsfind.ads: Move Launch_Kernel from public to internal
3427         package.
3429 2020-10-23  Arnaud Charlet  <charlet@adacore.com>
3431         * sem_ch4.adb (Complete_Object_Operation): Only mark entities
3432         referenced if we are compiling the extended main unit.
3433         * sem_attr.adb (Analyze_Attribute [Attribute_Tag]): Record a
3434         reference on the type and its scope.
3436 2020-10-23  Ed Schonberg  <schonberg@adacore.com>
3438         * freeze.adb (Is_Uninitialized_Aggregate): Recognize an array
3439         aggregate with box initialization, scalar components, and no
3440         component default values.
3441         (Freeze_Entity, Check_Address_Clause): Call it, and simplify
3442         freeze code for entity by removing useless assignment.
3444 2020-10-23  Javier Miranda  <miranda@adacore.com>
3446         * sem_ch3.adb (Check_Abstract_Overriding): Subprogram renamings
3447         cannot be overridden.
3448         (Derive_Subprogram): Enable setting attribute
3449         Requires_Overriding on functions with controlling access results
3450         of record extensions with a null extension part require
3451         overriding (AI95-00391/06).
3453 2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
3455         * sem_aggr.adb (Resolve_Delta_Array_Aggregate): Push scope of
3456         the implicit loop before entering name of the index parameter,
3457         not after; enter name no matter if the identifier has been
3458         decorated before.
3460 2020-10-23  Gary Dismukes  <dismukes@adacore.com>
3462         * sem_ch4.adb (Analyze_Call): In the case where the call is not
3463         overloaded, check for a call to an abstract nondispatching
3464         operation and flag an error.
3466 2020-10-23  Eric Botcazou  <ebotcazou@adacore.com>
3468         * gnat1drv.adb (Adjust_Global_Switches): Rewrite again code enabling
3469         or disabling the support for 128-bit integer types.
3471 2020-10-23  Arnaud Charlet  <charlet@adacore.com>
3473         * alloc.ads, aspects.adb, aspects.ads, atree.adb, atree.ads,
3474         casing.adb, casing.ads, csets.adb, csets.ads, debug.adb, debug.ads,
3475         einfo.adb, einfo.ads, elists.adb, elists.ads, fname.adb, fname.ads,
3476         gnatvsn.adb, gnatvsn.ads, hostparm.ads, indepsw-aix.adb,
3477         indepsw-darwin.adb, indepsw-gnu.adb, indepsw.adb, indepsw.ads,
3478         krunch.adb, krunch.ads, lib-list.adb, lib-sort.adb, lib.adb, lib.ads,
3479         namet-sp.adb, namet-sp.ads, namet.adb, namet.ads, nlists.adb,
3480         nlists.ads, opt.adb, opt.ads, output.adb, output.ads, rident.ads,
3481         scans.adb, scans.ads, scil_ll.adb, scil_ll.ads, sem_aux.ads,
3482         sem_aux.adb, sfn_scan.adb, sinfo.adb, sinfo.ads, sinput.adb,
3483         sinput.ads, snames.adb-tmpl, snames.ads-tmpl, stand.ads,
3484         stringt.adb, stringt.ads, table.adb, table.ads, types.adb,
3485         types.ads, uintp.adb, uintp.ads, uname.adb, uname.ads,
3486         urealp.adb, urealp.ads, vast.adb, vast.ads, widechar.adb,
3487         widechar.ads: Update header.
3489 2020-10-23  Arnaud Charlet  <charlet@adacore.com>
3491         * libgnat/a-nbnbin.adb (From_String): Take advantage of
3492         Long_Long_Long_Integer.
3493         * libgnat/s-genbig.ads, libgnat/s-genbig.adb (To_Bignum): New
3494         function taking a Long_Long_Long_Integer.
3496 2020-10-23  Justin Squirek  <squirek@adacore.com>
3498         * sem_util.adb (Accessibility_Call_Helper): In the selected
3499         component case, test if a prefix is a function call and whether
3500         the subprogram call is not being used in its entirety and use
3501         the Innermost_Master_Scope_Depth in that case.
3502         (Innermost_Master_Scope_Depth): Test against the node_par
3503         instead of its identifier to avoid misattributing unnamed blocks
3504         as not being from source.
3505         (Function_Call_Level): Add calculation for whether a subprogram
3506         call is initializing an object in its entirety.
3507         (Subprogram_Call_Level): Renamed to Function_Call_Level.
3509 2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
3511         * sem_prag.adb (Check_External_Properties): Rewrite to match the
3512         SPARK RM description.
3514 2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
3516         * contracts.adb (Check_Type_Or_Object_External_Properties):
3517         Cleanup.
3519 2020-10-23  Piotr Trojanek  <trojanek@adacore.com>
3521         * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Set the
3522         output parameter Expr_Val to the (implicit) pragma argument even
3523         when returning early.
3525 2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
3527         * Makefile.rtl (GNATRTL_128BIT_PAIRS): Add i-cexten.ads.
3528         * debug.adb (d.H): Document new usage.
3529         * doc/gnat_rm/representation_clauses_and_pragmas.rst (Size Clauses):
3530         Document new limit on 64-bit platforms.
3531         (Component_Size Clauses): Likewise.
3532         (Pragma Pack for Arrays): Likewise.
3533         (Pragma Pack for Records): Likewise.
3534         (Record Representation Clauses): Likewise.
3535         * gnat_rm.texi: Regenerate.
3536         * gnat1drv.adb (Adjust_Global_Switches): Rewrite code enabling or
3537         disabling the support for 128-bit integer types.
3538         * switch-c.adb (Scan_Front_End_Switches): Do not deal with e128.
3539         * usage.adb (Write_Switch_Char): Do not print -gnate128 switch.
3540         * libgnat/i-cexten__128.ads: New file.
3542 2020-10-22  Javier Miranda  <miranda@adacore.com>
3544         * einfo.ads (Has_Limited_View): New synthesized attribute.
3545         * einfo.adb (Has_Limited_View): New synthesized attribute.
3546         (Set_Limited_View): Complete assertion.
3547         * sem_ch10.ads (Is_Visible_Through_Renamings): Make this routine
3548         public to invoke it from Find_Expanded_Name and avoid reporting
3549         spurious errors on renamings of limited-with packages.
3550         (Load_Needed_Body): Moved to have this spec alphabetically
3551         ordered.
3552         * sem_ch10.adb (Is_Visible_Through_Renamings): Moved to library
3553         level.
3554         (Is_Limited_Withed_Unit): New subprogram.
3555         * sem_ch3.adb (Access_Type_Declaration): Adding protection to
3556         avoid reading attribute Entity() when not available.
3557         * sem_ch8.adb (Analyze_Package_Renaming): Report error on
3558         renamed package not visible through context clauses.
3559         (Find_Expanded_Name): Report error on renamed package not
3560         visible through context clauses; handle special case where the
3561         prefix is a renaming of a (now visible) shadow package.
3563 2020-10-22  Ghjuvan Lacambre  <lacambre@adacore.com>
3565         * exp_prag.adb (Get_Launch_Kernel_Arg_Type): New function.
3566         (Build_Shared_Memory_Declaration): Use
3567         Get_Launch_Kernel_Arg_Type.
3568         (Build_Stream_Declaration): Use Get_Launch_Kernel_Arg_Type.
3569         * rtsfind.ads: Remove RO_IC_Unsigned_Long_Long.
3571 2020-10-22  Arnaud Charlet  <charlet@adacore.com>
3573         * libgnat/s-imenne.adb, libgnat/s-imgrea.adb: Add assertions.
3575 2020-10-22  Arnaud Charlet  <charlet@adacore.com>
3577         * libgnat/s-imgrea.adb (Set_Image_Real): Update annotations.
3579 2020-10-22  Steve Baird  <baird@adacore.com>
3581         * aspects.ads: Introduce the subtype Nonoverridable_Aspect_Id,
3582         whose Static_Predicate reflects the list of nonoverridable
3583         aspects given in Ada RM 13.1.1(18.7).
3584         * sem_util.ads, sem_util.adb: Add two new visible subprograms,
3585         Check_Inherited_Nonoverridable_Aspects and Is_Confirming. The
3586         former is used to check the consistency of inherited
3587         nonoverridable aspects from multiple sources. The latter
3588         indicates whether two aspect specifications for a nonoverridable
3589         aspect are confirming. Because of compatibility concerns in
3590         compiling QGen, Is_Confirming always returns True if
3591         Relaxed_RM_Semantics (i.e., -gnatd.M) is specified.
3592         * sem_ch3.adb (Derived_Type_Declaration): Call new
3593         Check_Inherited_Nonoverridable_Aspects procedure if interface
3594         list is non-empty.
3595         * sem_ch9.adb (Check_Interfaces): Call new
3596         Check_Inherited_Nonoverridable_Aspects procedure if interface
3597         list is non-empty.
3598         * sem_ch13.adb (Analyze_Aspect_Specifications): When an explicit
3599         aspect specification overrides an inherited nonoverridable
3600         aspect, check that the explicit specification is confirming.
3602 2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
3604         * freeze.ads (Check_Compile_Time_Size): Adjust size limit.
3606 2020-10-22  Richard Kenner  <kenner@adacore.com>
3608         * sprint.adb (pg, po, ps): Use {Push,Pop}_Output.
3609         * treepr.adb (pl, pn): Likewise.
3611 2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
3613         * doc/gnat_rm/implementation_advice.rst: Minor fix.
3614         * gnat_rm.texi: Regenerate.
3616 2020-10-22  Steve Baird  <baird@adacore.com>
3618         * sem_util.adb (Is_Container_Aggregate): A new local predicates
3619         which indicates whether a given expression is a container
3620         aggregate. The implementation of this function is incomplete; in
3621         the unusual case of a record aggregate (i.e., not a container
3622         aggregate) of a type whose Aggregate aspect is specified, the
3623         function will incorrectly return True.
3624         (Immediate_Context_Implies_Is_Potentially_Unevaluated): Improve
3625         handling of aggregate components.
3626         (Is_Repeatedly_Evaluated): Test for container aggregate
3627         components along with existing test for array aggregate
3628         components.
3630 2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
3632         * exp_fixd.adb (Fpt_Value): Fold if-then-else with identical arms.
3634 2020-10-22  Ed Schonberg  <schonberg@adacore.com>
3636         * par-ch4.adb (P_Iterated_Component_Association): If the
3637         construct includes an iterator filter it corresponds to an
3638         Iterated_Element_Association, so build the proper node for it.
3639         * exp_aggr.adb (Expand_Container_Aggregate, Aggregate_Size): If
3640         the component is an Iterated_Element_Association, treat it as
3641         having a non-static size.
3643 2020-10-22  Ghjuvan Lacambre  <lacambre@adacore.com>
3645         * scng.adb (Scan): Check if any letter of the token is
3646         uppercase.
3648 2020-10-22  Justin Squirek  <squirek@adacore.com>
3650         * sem_util.adb (Accessibility_Level_Helper): Conversions to
3651         named access types get the level associated with the named
3652         access type.
3654 2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
3656         * einfo.ads (Has_Constrained_Partial_View): Add "base type" marker.
3658 2020-10-22  Gary Dismukes  <dismukes@adacore.com>
3660         * einfo.adb (Has_Constrained_Partial_View): Apply Base_Type to Id.
3661         * sem_res.adb (Resolve_Actuals.Check_Aliased_Parameter): Remove
3662         "not Is_Generic_Type" test and call
3663         Object_Type_Has_Constrained_Partial_View instead of
3664         Has_Constrained_Partial_View. Improve related error message to
3665         say "does not statically match" instead of just "does not
3666         match".
3668 2020-10-22  Steve Baird  <baird@adacore.com>
3670         * sem_util.ads, sem_util.adb: Declare and implement a new
3671         predicate, Derivation_Too_Early_To_Inherit.  This function
3672         indicates whether a given derived type fails to inherit a given
3673         streaming-related attribute from its parent type because the
3674         declaration of the derived type precedes the corresponding
3675         attribute_definition_clause of the parent.
3676         * exp_tss.adb (Find_Inherited_TSS): Call
3677         Derivation_Too_Early_To_Inherit instead of unconditionally
3678         assuming that a parent type's streaming attribute is available
3679         for inheritance by an immediate descendant type.
3680         * sem_attr.adb (Stream_Attribute_Available): Call
3681         Derivation_Too_Early_To_Inherit instead of unconditionally
3682         assuming that a parent type's streaming attribute is available
3683         for inheritance by an immediate descendant type.
3684         * exp_attr.adb (Default_Streaming_Unavailable): A new predicate;
3685         given a type, indicates whether predefined (as opposed to
3686         user-defined) streaming operations for the type should be
3687         implemented by raising Program_Error.
3688         (Expand_N_Attribute_Reference): For each of the 4
3689         streaming-related attributes (i.e., Read, Write, Input, Output),
3690         after determining that no user-defined implementation is
3691         available (including a Stream_Convert pragma), call
3692         Default_Streaming_Unavailable; if that call returns True, then
3693         implement the streaming operation as "raise Program_Error;".
3695 2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
3697         * checks.adb (Apply_Float_Conversion_Check): Saturate the bounds
3698         of the check to those of the base type of the expression.
3700 2020-10-22  Justin Squirek  <squirek@adacore.com>
3702         * checks.adb (Apply_Accessibility_Check): Modify condition to
3703         avoid flawed optimization and use Get_Accessibility over
3704         Extra_Accessibility.
3705         * exp_attr.adb: Remove inclusion of Exp_Ch2.adb.
3706         * exp_ch2.adb, exp_ch2.ads (Param_Entity): Moved to sem_util.
3707         * exp_ch3.ads (Init_Proc_Level_Formal): New function.
3708         * exp_ch3.adb (Build_Init_Procedure): Add extra accessibility
3709         formal for init procs when the associated type is a limited
3710         record.
3711         (Build_Initialization_Call): Add condition to handle propagation
3712         of the new extra accessibility paramter actual needed for init
3713         procs.
3714         (Init_Proc_Level_Formal): Created to fetch a the extra
3715         accessibility parameter associated with init procs if one
3716         exists.
3717         * exp_ch4.adb (Build_Attribute_Reference): Modify static check
3718         to be dynamic.
3719         * exp_ch6.adb (Add_Cond_Expression_Extra_Actual): Move logic
3720         used to expand conditional expressions used as actuals for
3721         anonymous access formals.
3722         (Expand_Call_Helper): Remove extranious accessibility
3723         calculation logic.
3724         * exp_util.adb: Remove inclusion of Exp_Ch2.adb.
3725         * par-ch3.adb (P_Array_Type_Definition): Properly set
3726         Aliased_Present on access definitions
3727         * sem_attr.adb (Resolve_Attribute): Replace instances for
3728         Object_Access_Level with Static_Accessibility_Level.
3729         * sem_ch13.adb (Storage_Pool): Replace instances for
3730         Object_Access_Level with Static_Accessibility_Level.
3731         * sem_ch6.adb (Check_Return_Construct_Accessibility): Replace
3732         instances for Object_Access_Level with
3733         Static_Accessibility_Level.
3734         * sem_ch9.adb (Analyze_Requeue): Replace instances for
3735         Object_Access_Level with Static_Accessibility_Level.
3736         * sem_res.adb (Check_Aliased_Parameter,
3737         Check_Allocator_Discrim_Accessibility, Valid_Conversion):
3738         Replace instances for Object_Access_Level with
3739         Static_Accessibility_Level.
3740         * sem_util.adb, sem_util.ads (Accessibility_Level_Helper):
3741         Created to centralize calculation of accessibility levels.
3742         (Build_Component_Subtype): Replace instances for
3743         Object_Access_Level with Static_Accessibility_Level.
3744         (Defining_Entity): Add extra parameter to dictate whether an
3745         error is raised or empty is return in the case of an irrelevant
3746         N.
3747         (Dynamic_Accessibility_Level): Rewritten to use
3748         Accessibility_Level_Helper.
3749         (Is_View_Conversion): Check membership against Etype to capture
3750         nodes like explicit dereferences which have types but are not
3751         expanded names or identifers.
3752         (Object_Access_LeveL): Removed.
3753         (Param_Entity): Moved from sem_util.
3754         (Static_Accessibility_Level): Created as a replacement to
3755         Object_Access_Level, it also uses Accessibility_Level_Helper for
3756         its implementation.
3757         * snames.ads-tmpl: Added new name for extra accessibility
3758         parameter in init procs.
3760 2020-10-22  Piotr Trojanek  <trojanek@adacore.com>
3762         * exp_prag.adb (Expand_Pragma_Contract_Cases,
3763         Expand_Pragma_Loop_Variant): Reuse Append_New_To.
3764         * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Fix typo.
3765         (Analyze_Pre_Post_Condition): Refactor repeated calls to
3766         Defining_Entity.
3768 2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
3770         * doc/gnat_rm/implementation_defined_characteristics.rst: Minor
3771         fixes.
3772         * gnat_rm.texi: Regenerate.
3774 2020-10-22  Piotr Trojanek  <trojanek@adacore.com>
3776         * sem_warn.adb (Check_Unused_Withs): Move local variables from
3777         to a nested procedure; Lunit is passed as a parameter to
3778         Check_System_Aux and its type is refined from Node_Id to
3779         Entity_Id; Cnode is now a constant.
3781 2020-10-22  Patrick Bernardi  <bernardi@adacore.com>
3783         * libgnat/s-rident.ads (Profile_Info): Use a common profile
3784         definition for Jorvik and GNAT Extended Ravenscar, using the
3785         GNAT Extended Ravenscar definition.
3787 2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
3789         * Makefile.rtl (64-bit platforms): Add GNATRTL_128BIT_PAIRS to
3790         the LIBGNAT_TARGET_PAIRS list and also GNATRTL_128BIT_OBJS to
3791         the EXTRA_GNATRTL_NONTASKING_OBJS list.
3793 2020-10-22  Ghjuvan Lacambre  <lacambre@adacore.com>
3795         * sem_prag.adb (Process_Convention,
3796         Process_Import_Or_Interface): Fix error message.
3798 2020-10-22  Ghjuvan Lacambre  <lacambre@adacore.com>
3800         * sem_ch13.adb (Make_Aitem_Pragma): Turn into function. This
3801         removes a side-effect on the Aitem variable.
3802         (Analyze_Aspect_Specifications): Handle Suppress and Unsuppress
3803         aspects differently from the Linker_Section aspect.
3804         (Ceck_Aspect_At_Freeze_Point): Don't expect Suppress/Unsuppress
3805         to be delayed anymore.
3807 2020-10-22  Ed Schonberg  <schonberg@adacore.com>
3809         * sem_aggr.adb: (Resolve_Container_Aggregate): For an indexed
3810         container, verify that expressions and component associations
3811         are not both present.
3812         * exp_aggr.adb: Code reorganization, additional comments.
3813         (Expand_Container_Aggregate): Use Aggregate_Size for Iterated_
3814         Component_Associations for indexed aggregates. If present, the
3815         default value of the formal in the constructor function is used
3816         when the size of the aggregate cannot be determined statically.
3818 2020-10-22  Eric Botcazou  <ebotcazou@adacore.com>
3820         * sem_attr.adb (Eval_Attribute): Fix oversight for Bit_Position.
3822 2020-10-22  Ed Schonberg  <schonberg@adacore.com>
3824         * sem_util.ads, sem_util.adb (Check_Ambiguous_Aggregate): When a
3825         subprogram call is found to be ambiguous, check whether
3826         ambiguity is caused by an aggregate actual.  and indicate that
3827         it should carry a type qualification.
3828         * sem_ch4.adb (Traverse_Hoonyms, Try_Primitive_Operation): Call
3829         it.
3830         * sem_res.adb (Report_Ambiguous_Argument): Call it.
3832 2020-10-22  Piotr Trojanek  <trojanek@adacore.com>
3834         * sem_warn.adb (Check_One_Unit): Avoid repeated calls by using a
3835         local variable Lunit; remove local constant Eitem, which was
3836         identical to Lunit.
3838 2020-10-22  Alexandre Oliva  <oliva@adacore.com>
3840         * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <x86*-vxworks*>: Select
3841         nolibm and wraplf variants like other vxworks ports.
3843 2020-10-22  Martin Liska  <mliska@suse.cz>
3845         PR c/94722
3846         * gcc-interface/utils.c (handle_no_stack_protect_attribute):
3847         New.
3848         (handle_stack_protect_attribute): Add error message for a
3849         no_stack_protector function.
3851 2020-10-22  Alexandre Oliva  <oliva@adacore.com>
3853         * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <lynxos178>: Rely on
3854         Aux_Long_Float for all real types.
3856 2020-10-22  Alexandre Oliva  <oliva@adacore.com>
3858         * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Use Long Float-based
3859         variant of Aux_Short_Float and Aux_Float on vxworks targets.
3860         * libgnat/a-nashfl__wraplf.ads: New.
3861         * libgnat/a-nuaufl__wraplf.ads: New.
3863 2020-10-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3865         * Makefile.rtl (LIBGNAT_TARGET_PAIRS) <sparc*-sun-solaris>:
3866         Use wraplf version of a-nallfl.
3868 2020-10-22  Alexandre Oliva  <oliva@adacore.com>
3870         * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Use
3871         a-nallfl__wraplf.ads on aarch64-* and ppc*-linux-gnu targets.
3872         * libgnat/a-nallfl__wraplf.ads: New.
3874 2020-10-22  Jan Hubicka  <hubicka@ucw.cz>
3876         * gcc-interface/trans.c: Include tree-nested.h
3877         (walk_nesting_tree): Update for new nested function info.
3879 2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
3881         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add a-llltio, a-lllwti,
3882         a-lllzti and remove a-timoau, a-wtmoau and a-ztmoau.
3883         (GNATRTL_128BIT_PAIRS): Add a-tiinio.adb, a-timoio.adb, a-wtinio.adb,
3884         a-wtmoio.adb, a-ztinio.adb and a-ztmoio.adb.
3885         * impunit.adb (Non_Imp_File_Names_95): Add a-llltio, a-lllwti and
3886         a-lllzti.
3887         * krunch.ads: Document trick for Ada.Long_Long_Long_Integer_*_IO.
3888         * krunch.adb (Krunch): Add trick for Ada.Long_Long_Long_Integer_*_IO.
3889         * libgnat/a-llltio.ads: Instantiate Ada.Text_IO.Integer_IO.
3890         * libgnat/a-lllwti.ads: Instantiate Ada.Wide_Text_IO.Integer_IO.
3891         * libgnat/a-lllzti.ads: Instantiate Ada.Wide_Wide_Text_IO.Integer_IO.
3892         * libgnat/a-tigeau.ads (Load_Integer): New procedure.
3893         * libgnat/a-tigeau.adb (Load_Integer): Likewise.
3894         * libgnat/a-tiinau.ads, libgnat/a-tiinau.adb: Change to generic
3895         package.
3896         * libgnat/a-tiinio.adb: Instantiate it.
3897         * libgnat/a-tiinio__128.adb: Likewise.
3898         * libgnat/a-timoau.ads, libgnat/a-timoau.adb: Change to generic
3899         package.
3900         * libgnat/a-timoio.adb: Instantiate it.
3901         * libgnat/a-timoio__128.adb: Likewise.
3902         * libgnat/a-wtgeau.ads (Load_Integer): New procedure.
3903         * libgnat/a-wtgeau.adb (Load_Integer): Likewise.
3904         * libgnat/a-wtinau.ads, libgnat/a-wtinau.adb: Change to generic
3905         package.
3906         * libgnat/a-wtinio.adb: Instantiate it.
3907         * libgnat/a-wtinio__128.adb: Likewise.
3908         * libgnat/a-wtmoau.ads, libgnat/a-wtmoau.adb: Change to generic
3909         package.
3910         * libgnat/a-wtmoio.adb: Instantiate it.
3911         * libgnat/a-wtmoio__128.adb: Likewise.
3912         * libgnat/a-ztgeau.ads (Load_Integer): New procedure.
3913         * libgnat/a-ztgeau.adb (Load_Integer): Likewise.
3914         * libgnat/a-ztinau.ads, libgnat/a-ztinau.adb: Change to generic
3915         package.
3916         * libgnat/a-ztinio.adb: Instantiate it.
3917         * libgnat/a-ztinio__128.adb: Likewise.
3918         * libgnat/a-ztmoau.ads, libgnat/a-ztmoau.adb: Change to generic
3919         package.
3920         * libgnat/a-ztmoio.adb: Instantiate it.
3921         * libgnat/a-ztmoio__128.adb: Likewise.
3923 2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
3925         * sem_ch12.adb (Freeze_Subprogram_Body): Do not move the freeze
3926         node of the package body enclosing the instance when its parent
3927         is in the same declarative part as the freeze node of the parent.
3929 2020-10-21  Steve Baird  <baird@adacore.com>
3931         * exp_ch6.adb (Insert_Post_Call_Actions): When a function's
3932         result type requires finalization and we decide to make copy of
3933         a call to the function and subsequently refer only to the copy,
3934         then don't forget to finalize the original function result
3935         object.
3937 2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
3939         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-widint,
3940         s-widthi, s-widuns, s-widuns.
3941         (GNATRTL_128BIT_OBJS): Add s-imglllb, s-imgllli, s-imglllu, s-imglllw,
3942         s-valllli, s-vallllu, s-widllli, s-widlllu.
3943         * exp_imgv.adb (Expand_Image_Attribute): Deal with 128-bit types.
3944         (Expand_Value_Attribute): Likewise.
3945         (Expand_Width_Attribute): Likewise.
3946         * exp_put_image.adb (Build_Elementary_Put_Image_Call): Likewise.
3947         * krunch.adb (Krunch): Deal with s-img, s-val and s-wid prefixes.
3948         * rtsfind.ads (RTU_Id): Add System_Img_LLLI, System_Img_LLLU,
3949         System_Val_LLLI, System_Val_LLL, System_Wid_Int, System_Wid_LLLI,
3950         System_Wid_LLLU, System_Wid_Uns).
3951         (RE_Id): Add RE_Image_Long_Long_Long_Integer,
3952         RE_Image_Long_Long_Long_Unsigned,
3953         RE_Put_Image_Long_Long_Long_Integer,
3954         RE_Put_Image_Long_Long_Long_Unsigned,
3955         RE_Long_Long_Long_Unsigned, RE_Value_Long_Long_Long_Integer,
3956         RE_Value_Long_Long_Long_Unsigned, RE_Width_Integer,
3957         RE_Width_Long_Long_Long_Integer, RE_Width_Long_Long_Long_Unsigned,
3958         RE_Width_Unsigned, RE_Image_Long_Long_Long_Integer,
3959         RE_Image_Long_Long_Long_Unsigned, RE_Put_Image_Long_Long_Long_Integer,
3960         RE_Put_Image_Long_Long_Long_Unsigned, RE_Long_Long_Long_Unsigned,
3961         RE_Value_Long_Long_Long_Integer, RE_Value_Long_Long_Long_Unsigned,
3962         RE_Width_Integer, RE_Width_Long_Long_Long_Integer,
3963         RE_Width_Long_Long_Long_Unsigned, RE_Width_Unsigned.
3964         * libgnat/s-imageb.ads, libgnat/s-imageb.adb: New generic
3965         package.
3966         * libgnat/s-imagei.ads, libgnat/s-imagei.adb: Likewise.
3967         * libgnat/s-imageu.ads, libgnat/s-imageu.adb: Likewise.
3968         * libgnat/s-imagew.ads, libgnat/s-imagew.adb: Likewise.
3969         * libgnat/s-imgbiu.ads: Instantiate System.Image_B.
3970         * libgnat/s-imgbiu.adb: Add pragma No_Body.
3971         * libgnat/s-imgint.ads: Instantiate System.Image_I.
3972         * libgnat/s-imgint.adb: Add pragma No_Body.
3973         * libgnat/s-imgllb.ads: Instantiate System.Image_B.
3974         * libgnat/s-imgllb.adb: Add pragma No_Body0
3975         * libgnat/s-imglli.ads: Instantiate System.Image_I.
3976         * libgnat/s-imglli.adb: Add pragma No_Body.
3977         * libgnat/s-imglllb.ads: Instantiate System.Image_B.
3978         * libgnat/s-imgllli.ads: Instantiate System.Image_I.
3979         * libgnat/s-imglllu.ads: Instantiate System.Image_U.
3980         * libgnat/s-imglllw.ads: Instantiate System.Image_W.
3981         * libgnat/s-imgllu.ads: Instantiate System.Image_U.
3982         * libgnat/s-imgllu.adb: Add pragma No_Body.
3983         * libgnat/s-imgllw.ads: Instantiate System.Image_W.
3984         * libgnat/s-imgllw.adb: Add pragma No_Body.
3985         * libgnat/s-imgrea.adb: Remove clauses for System.Unsigned_Types.
3986         * libgnat/s-imguns.ads: Instantiate System.Image_U.
3987         * libgnat/s-imguns.adb: Add pragma No_Body.
3988         * libgnat/s-imgwiu.ads: Instantiate System.Image_W.
3989         * libgnat/s-imgwiu.adb: Add pragma No_Body.
3990         * libgnat/s-putima.ads (Long_Long_Long_Unsigned): New subtype.
3991         (Put_Image_Long_Long_Long_Unsigned): New procedure.
3992         * libgnat/s-putima.adb (Small): Rename to Integer_Images.
3993         (Large): Rename to LL_Integer_Images.
3994         (LLL_Integer_Images): New instantiation.
3995         (Put_Image_Long_Long_Long_Integer): New renaming.
3996         (Put_Image_Long_Long_Long_Unsigned): Likewise.
3997         * libgnat/s-valint.ads: Instantiate System.Value_I.
3998         * libgnat/s-valint.adb: Add pragma No_Body.
3999         * libgnat/s-vallli.ads: Instantiate System.Value_I.
4000         * libgnat/s-vallli.adb: Add pragma No_Body.
4001         * libgnat/s-valllli.ads: Instantiate System.Value_I.
4002         * libgnat/s-vallllu.ads: Instantiate System.Value_U.
4003         * libgnat/s-valllu.ads: Instantiate System.Value_U.
4004         * libgnat/s-valllu.adb: Add pragma No_Body.
4005         * libgnat/s-valuei.ads, libgnat/s-valuei.adb: New generic
4006         package.
4007         * libgnat/s-valueu.ads, libgnat/s-valueu.adb: Likewise.
4008         * libgnat/s-valuns.ads: Instantiate System.Value_U.
4009         * libgnat/s-valuns.adb: Add pragma No_Body.
4010         * libgnat/s-widint.ads: Instantiate System.Width_I.
4011         * libgnat/s-widlli.ads: Likewise.
4012         * libgnat/s-widlli.adb: Add pragma No_Body.
4013         * libgnat/s-widllli.ads: Instantiate System.Width_I.
4014         * libgnat/s-widlllu.ads: Instantiate System.Width_U.
4015         * libgnat/s-widllu.ads: Likewise.
4016         * libgnat/s-widllu.adb: Add pragma No_Body.
4017         * libgnat/s-widthi.ads, libgnat/s-widthi.adb: New generic
4018         package.
4019         * libgnat/s-widthu.ads, libgnat/s-widthu.adb: Likewise.
4020         * libgnat/s-widuns.ads: Instantiate System.Width_U.
4022 2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
4024         * set_targ.adb (DTN): Fix oversight.
4025         (Read_Target_Dependent_Values): Do not error out on missing
4026         Long_Long_Long_Size entry and reuse Long_Long_Size for it.
4028 2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
4030         * exp_aggr.adb (Gen_Loop): Analyze copy of the expression in the
4031         scope of the implicit loop with name of the index parameter
4032         visible.
4034 2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
4036         * Makefile.rtl (GNATRTL_128BIT_PAIRS): New variable.
4037         (GNATRTL_128BIT_OBJS): Likewise.
4038         (Windows): In 64-bit mode, add the former to LIBGNAT_TARGET_PAIRS and
4039         the latter to EXTRA_GNATRTL_NONTASKING_OBJS.
4040         (x86_64/linux): Likewise, but unconditionally.
4041         (GNATRTL_NONTASKING_OBJS): Add s-aridou, s-exponn, s-expont,
4042         s-exponu.
4043         * ada_get_targ.adb (Get_Long_Long_Long_Size): New function.
4044         * checks.adb (Apply_Arithmetic_Overflow_Strict): Use Integer_Type_For
4045         to find an appropriate integer type; if it does not exist and the max
4046         integer size is larger than 64, use the 128-bit arithmetic routines.
4047         * cstand.adb (Create_Standard): Build Standard_Long_Long_Long_Integer
4048         and its base type.  Use it for Etype of Any_Integer, Any_Modular and
4049         Any_Numeric.  Use its size for Build Standard_Long_Long_Long_Unsigned
4050         and Universal_Integer.
4051         (Print_Standard): Print Long_Long_Long_Integer.
4052         * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Mod>: Adjust
4053         comment.
4054         * exp_ch3.adb (Simple_Init_Initialize_Scalars_Type): Deal with 128-bit
4055         types.
4056         * exp_ch4.adb (Expand_Array_Comparison): Likewise.
4057         (Expand_N_Op_Expon): Likewise.
4058         (Narrow_Large_Operation): Likewise.
4059         * exp_dbug.adb (Bounds_Match_Size): Handle 128-bit size.
4060         * exp_fixd.adb (Build_Double_Divide_Code): Use RE_Double_Divide64.
4061         * exp_intr.adb (Expand_Binary_Operator_Call): Handle 128-bit size.
4062         * exp_pakd.ads (E_Array): Extend range to 127.
4063         (Bits_Id): Fill in up to 127.
4064         (Get_Id): Likewise.
4065         (GetU_Id): Likewise.
4066         (Set_Id): Likewise.
4067         (SetU_Id): Likewise.
4068         * exp_pakd.adb (Revert_Storage_Order): Handle 128-bit size.
4069         * exp_util.adb (Integer_Type_For): Likewise.
4070         (Small_Integer_Type_For): Likewise.
4071         * fname.adb (Is_Predefined_File_Name): Do not return False for names
4072         larger than 12 characters if they start with "s-".
4073         * freeze.adb (Adjust_Esize_For_Alignment): Change the maximum value
4074         to System_Max_Integer_Size.
4075         (Check_Suspicious_Modulus): Adjust comment.
4076         (Freeze_Entity): Likewise.
4077         * get_targ.ads (Get_Long_Long_Long_Size): New function.
4078         * get_targ.adb (Get_Long_Long_Long_Size): Likewise.
4079         (Width_From_Size): Deal with 128-bit size.
4080         * gnat1drv.adb (Adjust_Global_Switches): Deal with 128-bit types.
4081         * impunit.adb (Get_Kind_Of_File): Bump buffer size.  Accept files with
4082         13 characters if they start with 's'.  Compare slice of Buffer.
4083         (Not_Impl_Defined_Unit): Accept files with 13 characters if they start
4084         with 's'.
4085         * krunch.ads: Document length for 128-bit support units.
4086         * krunch.adb (Krunch): Set length to 9 for 128-bit support units.
4087         * layout.adb (Layout_Type): Use System_Max_Integer_Size as alignment
4088         limit.
4089         * rtsfind.ads (RTU_Id): Add System_Arith_128,
4090         System_Compare_Array_Signed_128, System_Compare_Array_Unsigned_128,
4091         System_Exn_LLLI, System_Exp_LLLU, System_Pack_[65..127].
4092         (RE_Id): Add RE_Integer_128, RE_Unsigned_128, RE_Add_With_Ovflo_Check128
4093         RE_Multiply_With_Ovflo_Check128, RE_Subtract_With_Ovflo_Check128,
4094         RE_Bswap_128, RE_Compare_Array_S128, RE_Compare_Array_U128,
4095         RE_Exn_Long_Long_Long_Integer, RE_Exp_Long_Long_Long_Integer,
4096         RE_Exp_Long_Long_Long_Unsigned, RE_Bits_[65-127], RE_Get_[65-127],
4097         RE_Set_[65-127], RE_IS_Is16, RE_IS_Iu16, RE_Integer_128 and
4098         RE_Unsigned_128.  Rename RE_Add_With_Ovflo_Check, RE_Double_Divide,
4099         RE_Multiply_With_Ovflo_Check, RE_Scaled_Divide and
4100         RE_Subtract_With_Ovflo_Check.  Remove RE_IS_Iz1, RE_IS_Iz2, RE_IS_Iz4,
4101         RE_IS_Iz8, RE_Long_Unsigned, RE_Short_Unsigned, RE_Short_Short_Unsigned
4102         (RE_Unit_Table): Likewise.
4103         * sem_aux.adb (Corresponding_Unsigned_Type): Deal with a size equal to
4104         that of Standard_Long_Long_Long_Integer.
4105         (First_Subtype): Deal with Standard_Long_Long_Long_Integer'Base.
4106         * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Attribute_Size>:
4107         Check the size against powers of 2 and System_Max_Integer_Size for
4108         objects as well.
4109         (Set_Enum_Esize): Deal with 128-bit bounds.
4110         * sem_ch3.adb (Set_Modular_Size): Handle 128-bit size.
4111         (Modular_Type_Declaration): Deal with 128-bit types.
4112         (Signed_Integer_Type_Declaration): Support derivation from
4113         Standard_Long_Long_Long_Integer.
4114         * sem_ch4.adb (Analyze_Mod): Handle 128-bit modulus.
4115         * sem_intr.adb: Add with and use clauses for Ttypes.
4116         (Check_Shift): Handle 128-bit size and modulus.
4117         * sem_prag.adb (Analyze_Pragma) <Pragma_Initialize_Scalars>: Deal
4118         with Signed_128 and Unsigned_128.
4119         (Analyze_Integer_Value): Handle 128-bit size.
4120         * sem_util.ads (Addressable): Adjust description.
4121         * sem_util.adb (Addressable): Return true for 128 if the system
4122         supports 128 bits.
4123         (Set_Invalid_Binder_Values): Deal with Signed_128 and Unsigned_128.
4124         * set_targ.ads (Long_Long_Long_Size): New variable.
4125         * set_targ.adb (S_Long_Long_Long_Size): New constant.
4126         (DTN): Add entry for S_Long_Long_Long_Size.
4127         (DTV): Add entry for Long_Long_Long_Size.
4128         (Set_Targ): Set Long_Long_Long_Size.
4129         * snames.ads-tmpl (Name_Max_Integer_Size): New attribute name.
4130         (Name_Signed_128): New scalar name.
4131         (Name_Unsigned_128): Likewise.
4132         (Scalar_Id): Adjust.
4133         (Integer_Scalar_Id): Likewise.
4134         (Attribute_Id): Add Attribute_Max_Integer_Size.
4135         * stand.ads (Standard_Entity_Type): Add S_Long_Long_Long_Integer.
4136         (Standard_Long_Long_Long_Integer): New renaming.
4137         (Universal_Integer): Adjust description.
4138         (Standard_Long_Long_Long_Unsigned): New variable.
4139         * switch-c.adb (Scan_Front_End_Switches): Deal with -gnate128.
4140         * ttypes.ads (Standard_Long_Long_Long_Integer_Size): New variable.
4141         (Standard_Long_Long_Long_Integer_Width): Likewise.
4142         (System_Max_Integer_Size): Turn into variable.
4143         (System_Max_Binary_Modulus_Power): Likewise.
4144         * uintp.ads (Uint_127): New constant.
4145         * uintp.adb (UI_Power_2): Extednd to 128.
4146         (UI_Power_10): Likewise.
4147         (UI_Expon): Deal with exponent up to 128 specially.
4148         * usage.adb (Write_Switch_Char): Print -gnate128 switch.
4149         * libgnat/a-tifiio.adb (Put_Scaled): Call Scaled_Divide64.
4150         * libgnat/interfac__2020.ads (Integer_128): New integer type.
4151         (Unsigned_128): New modular type.
4152         (Shift_Left, Shift_Right, Shift_Right_Arithmetic, Rotate_Left,
4153         Rotate_Right): New intrinsic functions operating on it.
4154         * libgnat/s-aridou.ads, libgnat/s-aridou.adb: New generic
4155         package.
4156         * libgnat/s-arit64.ads, libgnat/s-arit64.adb: Instantiate
4157         System.Arithmetic_Double.
4158         * libgnat/s-arit128.ads, libgnat/s-arit128.adb: Likewise.
4159         * libgnat/s-bytswa.ads: Add with clause for Interfaces, use subtypes
4160         of unsigned types defined in Interfaces and add Bswap_128.
4161         * libgnat/s-casi128.ads, libgnat/s-casi128.adb: New package.
4162         * libgnat/s-caun128.ads, libgnat/s-caun128.adb: Likewise.
4163         * libgnat/s-exnint.ads: Instantiate System.Exponn.
4164         * libgnat/s-exnint.adb: Add pragma No_Body.
4165         * libgnat/s-exnlli.ads: Instantiate System.Exponn.
4166         * libgnat/s-exnlli.adb: Add pragma No_Body.
4167         * libgnat/s-exnllli.ads: Instantiate System.Exponn.
4168         * libgnat/s-expint.ads: Likewise.
4169         * libgnat/s-expint.adb: Add pragma No_Body.
4170         * libgnat/s-explli.ads: Instantiate System.Exponn.
4171         * libgnat/s-explli.adb: Add pragma No_Body.
4172         * libgnat/s-expllli.ads: Instantiate System.Exponn.
4173         * libgnat/s-explllu.ads: Instantiate System.Exponu.
4174         * libgnat/s-expllu.ads: Likewise.
4175         * libgnat/s-expllu.adb: Add pragma No_Body.
4176         * libgnat/s-exponn.ads, libgnat/s-exponn.adb: New generic
4177         function.
4178         * libgnat/s-expont.ads, libgnat/s-expont.adb: Likewise.
4179         * libgnat/s-exponu.ads, libgnat/s-exponu.adb: Likewise.
4180         * libgnat/s-expuns.ads, libgnat/s-expuns.adb: Likewise.
4181         * libgnat/s-pack65.ads, libgnat/s-pack65.adb: New package.
4182         * libgnat/s-pack66.ads, libgnat/s-pack66.adb: New package.
4183         * libgnat/s-pack67.ads, libgnat/s-pack67.adb: New package.
4184         * libgnat/s-pack68.ads, libgnat/s-pack68.adb: New package.
4185         * libgnat/s-pack69.ads, libgnat/s-pack69.adb: New package.
4186         * libgnat/s-pack70.ads, libgnat/s-pack70.adb: New package.
4187         * libgnat/s-pack71.ads, libgnat/s-pack71.adb: New package.
4188         * libgnat/s-pack72.ads, libgnat/s-pack72.adb: New package.
4189         * libgnat/s-pack73.ads, libgnat/s-pack73.adb: New package.
4190         * libgnat/s-pack74.ads, libgnat/s-pack74.adb: New package.
4191         * libgnat/s-pack75.ads, libgnat/s-pack75.adb: New package.
4192         * libgnat/s-pack76.ads, libgnat/s-pack76.adb: New package.
4193         * libgnat/s-pack77.ads, libgnat/s-pack77.adb: New package.
4194         * libgnat/s-pack78.ads, libgnat/s-pack78.adb: New package.
4195         * libgnat/s-pack79.ads, libgnat/s-pack79.adb: New package.
4196         * libgnat/s-pack80.ads, libgnat/s-pack80.adb: New package.
4197         * libgnat/s-pack81.ads, libgnat/s-pack81.adb: New package.
4198         * libgnat/s-pack82.ads, libgnat/s-pack82.adb: New package.
4199         * libgnat/s-pack83.ads, libgnat/s-pack83.adb: New package.
4200         * libgnat/s-pack84.ads, libgnat/s-pack84.adb: New package.
4201         * libgnat/s-pack85.ads, libgnat/s-pack85.adb: New package.
4202         * libgnat/s-pack86.ads, libgnat/s-pack86.adb: New package.
4203         * libgnat/s-pack87.ads, libgnat/s-pack87.adb: New package.
4204         * libgnat/s-pack88.ads, libgnat/s-pack88.adb: New package.
4205         * libgnat/s-pack89.ads, libgnat/s-pack89.adb: New package.
4206         * libgnat/s-pack90.ads, libgnat/s-pack90.adb: New package.
4207         * libgnat/s-pack91.ads, libgnat/s-pack91.adb: New package.
4208         * libgnat/s-pack92.ads, libgnat/s-pack92.adb: New package.
4209         * libgnat/s-pack93.ads, libgnat/s-pack93.adb: New package.
4210         * libgnat/s-pack94.ads, libgnat/s-pack94.adb: New package.
4211         * libgnat/s-pack95.ads, libgnat/s-pack95.adb: New package.
4212         * libgnat/s-pack96.ads, libgnat/s-pack96.adb: New package.
4213         * libgnat/s-pack97.ads, libgnat/s-pack97.adb: New package.
4214         * libgnat/s-pack98.ads, libgnat/s-pack98.adb: New package.
4215         * libgnat/s-pack99.ads, libgnat/s-pack99.adb: New package.
4216         * libgnat/s-pack100.ads, libgnat/s-pack100.adb: New package.
4217         * libgnat/s-pack101.ads, libgnat/s-pack101.adb: New package.
4218         * libgnat/s-pack102.ads, libgnat/s-pack102.adb: New package.
4219         * libgnat/s-pack103.ads, libgnat/s-pack103.adb: New package.
4220         * libgnat/s-pack104.ads, libgnat/s-pack104.adb: New package.
4221         * libgnat/s-pack105.ads, libgnat/s-pack105.adb: New package.
4222         * libgnat/s-pack106.ads, libgnat/s-pack106.adb: New package.
4223         * libgnat/s-pack107.ads, libgnat/s-pack107.adb: New package.
4224         * libgnat/s-pack108.ads, libgnat/s-pack108.adb: New package.
4225         * libgnat/s-pack109.ads, libgnat/s-pack109.adb: New package.
4226         * libgnat/s-pack110.ads, libgnat/s-pack110.adb: New package.
4227         * libgnat/s-pack111.ads, libgnat/s-pack111.adb: New package.
4228         * libgnat/s-pack112.ads, libgnat/s-pack112.adb: New package.
4229         * libgnat/s-pack113.ads, libgnat/s-pack113.adb: New package.
4230         * libgnat/s-pack114.ads, libgnat/s-pack114.adb: New package.
4231         * libgnat/s-pack115.ads, libgnat/s-pack115.adb: New package.
4232         * libgnat/s-pack116.ads, libgnat/s-pack116.adb: New package.
4233         * libgnat/s-pack117.ads, libgnat/s-pack117.adb: New package.
4234         * libgnat/s-pack118.ads, libgnat/s-pack118.adb: New package.
4235         * libgnat/s-pack119.ads, libgnat/s-pack119.adb: New package.
4236         * libgnat/s-pack120.ads, libgnat/s-pack120.adb: New package.
4237         * libgnat/s-pack121.ads, libgnat/s-pack121.adb: New package.
4238         * libgnat/s-pack122.ads, libgnat/s-pack122.adb: New package.
4239         * libgnat/s-pack123.ads, libgnat/s-pack123.adb: New package.
4240         * libgnat/s-pack124.ads, libgnat/s-pack124.adb: New package.
4241         * libgnat/s-pack125.ads, libgnat/s-pack125.adb: New package.
4242         * libgnat/s-pack126.ads, libgnat/s-pack126.adb: New package.
4243         * libgnat/s-pack127.ads, libgnat/s-pack127.adb: New package.
4244         * libgnat/s-rannum.ads (Random): New function returning 128-bit.
4245         * libgnat/s-rannum.adb (Random): Implement it.
4246         * libgnat/s-scaval.ads: Add with clause for Interfaces, use subtypes
4247         of unsigned types defined in Interfaces.
4248         * libgnat/s-scaval.adb: Add use clause for Interfaces.
4249         * libgnat/s-scaval__128.ads, libgnat/s-scaval__128.adb: New
4250         package.
4251         * libgnat/s-unstyp.ads (Long_Long_Long_Unsigned): New modular type.
4252         (Shift_Left, Shift_Right, Shift_Right_Arithmetic, Rotate_Left,
4253         Rotate_Right): New intrinsic functions operating on it.
4255 2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
4257         * doc/gnat_rm/implementation_defined_characteristics.rst: Add
4258         Long_Long_Long_Integer to the list of predefined integer types.
4259         * gnat_rm.texi: Regenerate.
4261 2020-10-21  Yannick Moy  <moy@adacore.com>
4263         * ada_get_targ.adb (Width_From_Size): Add case for 128 bits.
4264         Reorder declarations in the same order as get_targ.adb to
4265         facilitate diffs.
4267 2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
4269         * exp_aggr.adb (Expand_N_Aggregate): Refactor repeated calls to
4270         Etype (N).
4271         (Build_Array_Aggr_Code): Fix whitespace.
4273 2020-10-21  Dmitriy Anisimkov  <anisimko@adacore.com>
4275         * adaint.c (__gnat_file_time): Use regular arithmetic instead of
4276         __builtin_*_overflow routines if GCC version 4 or less and
4277         compiler is g++.
4279 2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
4281         * sem_aggr.adb (Resolve_Array_Aggregate): Use Choice_List, which
4282         internally calls either Choice or Discrete_Choices, depending on
4283         the context.
4285 2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
4287         * sem_aggr.adb (Resolve_Iterated_Component_Association): Use
4288         existing defining identifier for index parameter.
4290 2020-10-21  Javier Miranda  <miranda@adacore.com>
4292         * exp_ch9.adb (Build_Task_Activation_Call): Do not generate a
4293         call to activate tasks if we are within the scope of a protected
4294         type and pragma Detect_Blocking is active.
4296 2020-10-21  Liaiss Merzougue  <merzougue@adacore.com>
4298         * libgnat/s-carsi8.adb (Compare_Array_S8): Add pragma Assert to
4299         avoid warning concerning Left_Len and RighLen value regarding
4300         Bytes_Compared_As_Words.
4301         * libgnat/s-carun8.adb (Compare_Array_U8): Likewise.
4302         * libgnat/s-geveop.adb (Binary_Operation, Unary_Operation): Add
4303         pragma Assert concerning divide by 0 warning.
4304         * libgnat/s-imgcha.adb (Image_Character): Code update to prevent
4305         constant operation warning.
4306         (Image_Character): Add pragma Assert concerning the unchecked
4307         String size.
4308         * libgnat/s-imgdec.adb
4309         (Round): Upate loop code to prevent warning concerning
4310         Digs'First access.
4311         (Round): Add pragma assert.
4312         (Set): Add pragma Assert for the unchecked string size.
4313         (Set_Digits): Add pragma Assert for the input range.
4314         (Set_Decimal_Digits): Add pragma Assert.
4315         (Set_Blank_And_Sign): Add pragma Assert for the input range.
4316         * libgnat/s-arit64.adb (DoubleDivide): Add pragma Assert
4317         concerning Du /= 0.
4318         (Multiply_With_Ovflo_Check): Add pragma Annotate to avoid
4319         warning concerning unsigned -> signed conversion.
4320         * libgnat/s-imguns.adb (Set_Image_Unsigned): Add pragma Assert
4321         to prevent overflow check warning.  Add pragma Assert for
4322         controlling S'First = 1.
4323         * libgnat/s-imgrea.adb (Image_Floating_Point, Set, Set_Digs,
4324         Set_Special_Fill, Convert_Integer): Add pragma Annotate to
4325         prevent overflow check warning.
4326         (Set_Image_Real): Add pragma Annotate to avoid dead code warning
4327         on float check. Add pragma Assert to prevent overflow check
4328         warning.
4329         * libgnat/s-imgwiu.adb (Set_Digits, Set_Image_Width_Unsigned):
4330         Add pragma assert to prevent overflow check warning.
4331         * libgnat/s-imgllu.adb (Set_Image_Long_Long_Unsigned): Add
4332         pragma assert to prevent overflow check warning.
4333         * libgnat/s-imgint.adb (Set_Digits): Add Assert for input
4334         constraint and to prevent overflow check warning, create
4335         Non_Positive subtype, and change the T parameter as Non_Positive
4336         instead Integer.
4337         (Set_Image_Integer): Add pragma assert to prevent overflow check
4338         warning.
4339         * libgnat/s-imglli.adb (Set_Digits): Add Assert for input
4340         constraint and to prevent overflow check warning, create
4341         Non_Positive subtype, and change the T parameter as Non_Positive
4342         instead Integer.
4343         (Set_Image_Long_Long_Integer): Add pragma assert to prevent
4344         overflow check warning.
4345         * libgnat/s-fatgen.adb (Decompose, Pred, Succ): Add pragma
4346         Annotate to prevent dead code due to invalid float check.
4347         * libgnat/s-imenne.adb (Image_Enumeration_8,
4348         Image_Enumeration_16, Image_Enumeration_32): Add pragma Assert
4349         to prevent overflow check warning.  Add Names_Index subtype for
4350         restricting Index_table content.
4352 2020-10-21  Gary Dismukes  <dismukes@adacore.com>
4354         * exp_ch6.adb (Insert_Post_Call_Actions): Test for
4355         N_Explicit_Dereference as part of the existing test for function
4356         calls.
4358 2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
4360         * freeze.adb (Check_Strict_Alignment): Do not set the flag for
4361         a bit-packed array type, even if it is a by-reference type.
4363 2020-10-21  Dmitriy Anisimkov  <anisimko@adacore.com>
4365         * adaint.c (__gnat_file_time): New routine.
4366         (__gnat_copy_attribs): Copy timestamps in nanoseconds.
4367         * libgnat/a-direct.adb (C_Modification_Time): Bind to
4368         __gnat_file_time.
4369         (Modification_Time): Call to C_Modification_Time.
4371 2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
4373         * sem_aggr.adb (Resolve_Iterated_Component_Association):
4374         Expression's copy and now has the same parent as the original
4375         expression.
4376         (Resolve_Array_Aggregate): Add ??? comment about a still
4377         existing minor issue that led to discovery of the above crash.
4379 2020-10-21  Javier Miranda  <miranda@adacore.com>
4381         * sem_ch12.adb (Install_Parents_Of_Generic_Context): Simplify
4382         functionality; collect and install parents of generic child
4383         package.
4384         (Remove_Parents_Of_Generic_Context): Code cleanup.
4385         (Instantiate_Package_Body): Hide parents of generic context from
4386         visibility before installing the parent instance; restore their
4387         visibility when the instance is analyzed
4389 2020-10-21  Doug Rupp  <rupp@adacore.com>
4391         * libgnarl/s-osinte__lynxos178e.ads: Remove -mthreads switch.
4393 2020-10-21  Patrick Bernardi  <bernardi@adacore.com>
4395         * env.c (__gnat_setenv): call setenv for VxWorks 7 kernel mode.
4396         (__gnat_environ): envGet takes an int instead of a NULL pointer.
4397         (__gnat_unsetenv): call unsetenv for VxWorks 7 kernel mode.
4398         (__gnat_clearenv): use __gnat_unsetenv to clear environment
4399         variables.
4401 2020-10-21  Eric Botcazou  <ebotcazou@adacore.com>
4403         * sem_ch12.adb (Freeze_Subprogram_Body): Call
4404         Package_Freeze_Node to retrieve the freeze node for the
4405         enclosing body of the generic.
4407 2020-10-21  Justin Squirek  <squirek@adacore.com>
4409         * exp_ch6.adb (Expand_Call_Helper): Modify calls to
4410         Add_Extra_Actual to use Extra_Accessibility instead of
4411         Get_Accessibility for the EF parameter.
4413 2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
4415         * exp_ch6.adb (Expand_Actuals): Whitespace cleanup.
4416         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Make minimum
4417         accessibility a constant object.
4419 2020-10-21  Patrick Bernardi  <bernardi@adacore.com>
4421         * env.c (__gnat_environ): For VxWorks kernel simply return the
4422         result of the envGet call. Do this for VxWorks 6 and 7 as they
4423         both support the same API.
4425 2020-10-21  Ghjuvan Lacambre  <lacambre@adacore.com>
4427         * exp_ch7.adb (Build_Finalizer): Disable warnings on referenced
4428         entity.
4430 2020-10-21  Piotr Trojanek  <trojanek@adacore.com>
4432         * einfo.ads, sem_ch3.adb, sem_util.adb: Fix comments.
4434 2020-10-21  Javier Miranda  <miranda@adacore.com>
4436         * sem_ch3.adb (Build_Derived_Type): Propagate convention of
4437         class-wide parent.
4439 2020-10-21  Claire Dross  <dross@adacore.com>
4441         * libgnat/a-cofove.adb (Copy): Add explanation in case of
4442         Capacity_Error.
4443         (Insert_Space): Raise Capacity_Error if the new length is
4444         greater than the capacity.
4445         (Reserve_Capacity): Raise Capacity_Error instead of
4446         Constraint_Error.
4448 2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
4450         * sem_ch3.adb (Constrain_Decimal, Constrain_Enumeration,
4451         Constrain_Float, Constrain_Integer, Constrain_Ordinary_Fixed):
4452         Refine parameter type from Node_Id to Entity_Id.
4454 2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
4456         * sprint.adb (po): Set Dump_Freeze_Null to False; align colons.
4457         (ps): Likewise.
4459 2020-10-20  Ed Schonberg  <schonberg@adacore.com>
4461         * sinfo.ads, sinfo.adb: The flag Box_Present can appear in
4462         Iterated_Element_Association nodes.
4463         * sem_aggr.adb (Resolve_Aggregate): Call
4464         Resolve_Container_Aggregate when type of context has
4465         corresponding aspect.
4466         * sem_type.adb (Covers): In Ada_2020 an aggregate is compatible
4467         with a type that carries the corresponding aspect.
4468         * exp_ch3.adb (Make_Controlling_Function_Wrappers): Do not
4469         create declarations and bodies for inherited primitive functions
4470         of null extensions that dispatch on result, when current scope
4471         includes an immediately visible non-overloadable homonym of the
4472         function.
4473         * libgnat/a-cborse.adb, libgnat/a-cborse.ads,
4474         libgnat/a-cbhase.ads, libgnat/a-cbhase.adb,
4475         libgnat/a-cborma.adb, libgnat/a-cborma.ads,
4476         libgnat/a-cbhama.adb, libgnat/a-cbhama.ads,
4477         libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
4478         libgnat/a-convec.ads, libgnat/a-ciorse.ads,
4479         libgnat/a-cihase.ads, libgnat/a-cihase.adb,
4480         libgnat/a-ciorma.ads, libgnat/a-cihama.ads,
4481         libgnat/a-cihama.adb, libgnat/a-cidlli.ads,
4482         libgnat/a-cidlli.adb, libgnat/a-coinve.adb,
4483         libgnat/a-cobove.adb, libgnat/a-cobove.ads,
4484         libgnat/a-convec.adb, libgnat/a-coinve.ads,
4485         libgnat/a-coorse.ads, libgnat/a-cohase.adb,
4486         libgnat/a-cohase.ads, libgnat/a-coorma.ads,
4487         libgnat/a-cohama.adb, libgnat/a-cohama.ads,
4488         libgnat/a-cdlili.ads: Add primitive function Empty for use in
4489         aspect Aggregate, and add corresponding body or expression
4490         function.
4492 2020-10-20  Arnaud Charlet  <charlet@adacore.com>
4494         * aspects.adb (Has_Aspect_Specifications_Flag): Add
4495         N_Parameter_Specification.
4496         * par-ch13.adb (Aspect_Specifications_Present): Also handle case
4497         of an unknown aspect on the last formal parameter (terminated by
4498         a Tok_Right_Paren). Minor reformatting.
4499         * par-ch6.adb (P_Formal_Part): Scan aspects on formal
4500         parameters.
4501         * par.adb: Fix typos.
4502         * sem_ch6.adb (Process_Formals): Add processing of aspects and
4503         in particular Unreferenced aspect for now.
4504         * sinfo.ads: Allow ASPECT_SPECIFICATIONS on a
4505         PARAMETER_SPECIFICATION.
4506         * doc/gnat_rm/implementation_defined_aspects.rst
4507         (Aspect Unreferenced): Update documentation.
4508         * gnat_rm.texi: Regenerate.
4510 2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
4512         * sem_util.ads, sem_util.adb (Get_Accessibility): Refine result
4513         type from Node_Id to Entity_Id.
4515 2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
4517         * einfo.adb, exp_attr.adb, sem_ch13.adb, sem_util.adb: Use
4518         Is_Formal where possible.
4520 2020-10-20  Steve Baird  <baird@adacore.com>
4522         * sem_util.ads: Declare a new package, Old_Attr_Util, which in
4523         turn declares two more packages, Conditional_Evaluation and
4524         Indirect_Temps. Conditional_Evaluation provides a predicate for
4525         deciding whether a given 'Old attribute reference is eligible
4526         for conditional evaluation and, in the case where it is
4527         eligible, a function that constructs the Boolean-valued
4528         condition that is to be evaluated at run time in deciding
4529         whether to evaluate the attribute prefix.  Indirect_Temps
4530         provides support for declaring a temporary which is only
4531         initialized conditionally; more specifically, an access type and
4532         a variable of that type are declared (unconditionally) and then
4533         the variable is (conditionally) initialized with an allocator.
4534         The existence of the access type and the pointer variable is
4535         hidden from clients, except that a predicate,
4536         Is_Access_Type_For_Indirect_Temp, is provided for identifying
4537         such access types. This is needed because we want such an access
4538         type to be treated like a "normal" access type (specifically
4539         with respect to finalization of allocated objects). Other parts
4540         of the compiler treat access types differently if
4541         Comes_From_Source is False, or if the secondary stack storage
4542         pool is used; this predicate is used to disable this special
4543         treatment.
4544         * sem_attr.adb (Uneval_Old_Msg): Improve message text to reflect
4545         Ada202x changes.
4546         (Analyze_Attribute): A previously-illegal 'Old attribute
4547         reference is accepted in Ada2020 if it is eligible for
4548         conditional evaluation.
4549         * sem_res.adb (Valid_Conversion): Do not treat a rewritten 'Old
4550         attribute like other rewrite substitutions. This makes a
4551         difference, for example, in the case where we are generating the
4552         expansion of a membership test of the form "Saooaaat'Old in
4553         Named_Access_Type"; in this case Valid_Conversion needs to
4554         return True (otherwise the expansion will be False - see the
4555         call site in exp_ch4.adb).
4556         * exp_attr.adb (Expand_N_Attribute_Reference): When expanding a
4557         'Old attribute reference, test for the case where the reference
4558         is eligible for conditional evaluation. In that case, use the
4559         new "indirect temporary" mechanism provided by Sem_Util.
4560         * exp_prag.adb
4561         (Expand_Attributes_In_Consequence.Expand_Attributes): If
4562         Sem_Util.Indirect_Temp_Needed indicates that there could be
4563         correctness problems associated with the old expansion scheme
4564         for dealing with 'Old attributes in contract cases consequences,
4565         then we use the new "indirect temporary" mechanism provided by
4566         Sem_Util instead. We do not want to do this unconditionally.
4567         * sem_util.adb: Provide a body for the new Old_Attr_Util
4568         package. Further work is needed in several areas for
4569         correctness:
4570         - The function Is_Repeatedly_Evaluated does not deal with
4571         container aggregates yet.
4572         - The function Is_Known_On_Entry does not deal with interactions
4573         with the Global aspect.
4574         Each area where more work is needed is indicated with a "???"
4575         comment in the code; a more detailed description can be found
4576         there. Some optimization opportunties are similarly indicated
4577         with a "???" comment.
4578         * exp_ch3.adb (Freeze_Type): In deciding whether to generate
4579         expansion for the list controller of an access type, take the
4580         predicate Is_Access_Type_For_Indirect_Temp into account. If the
4581         predicate yields True, then generate the expansion.
4582         * exp_util.adb (Build_Allocate_Deallocate_Proc): We don't
4583         normally finalize allocated objects that are allocated on the
4584         secondary stack. Add an exception to this rule if the predicate
4585         Is_Access_Type_For_Indirect_Temp yields True.  As a result of
4586         this exception, we have to deal with the fact that gigi expects
4587         a different parameter profile if we are using the secondary
4588         stack pool; the Pool and Alignment parameters must be omitted in
4589         this case.
4591 2020-10-20  Javier Miranda  <miranda@adacore.com>
4593         * sem_ch12.adb (Install_Parents_Of_Generic_Context,
4594         Remove_Parents_Of_Generic_Context): New subprograms.
4595         (Instantiate_Package_Body): Adding assertions to ensure that
4596         installed parents are properly removed.
4598 2020-10-20  Claire Dross  <dross@adacore.com>
4600         * sem_attr.adb (Analyze_Attribute): Emit a warning on 'Update
4601         when Warn_On_Obsolescent_Feature is set to True.
4603 2020-10-20  Richard Kenner  <kenner@adacore.com>
4605         * gnat_cuda.adb (Build_Register_Function_Call): Make procedure
4606         call instead of function, rename to
4607         Build_Register_Procedure_Call.
4608         (Build_CUDA_Init_Proc): Make procedure call instead of function.
4610 2020-10-20  Justin Squirek  <squirek@adacore.com>
4612         * exp_ch6.adb (Expand_Branch): Properly anticipate expansion of
4613         conditional expressions producing object declarations in
4614         addition to assignment statements, and rename formal.
4616 2020-10-20  Yannick Moy  <moy@adacore.com>
4618         * errout.adb (Write_Source_Code_Line): Adopt display closer to
4619         GCC format.
4620         (Output_Messages): Deal specially with info messages.
4621         * erroutc.adb (Prescan_Message): Fix bug leading to check
4622         messages being considered as error messages in pretty output
4623         mode.
4625 2020-10-20  Justin Squirek  <squirek@adacore.com>
4627         * exp_ch6.adb (Expand_Call_Helper): Properly handle the case
4628         where the condition of a conditional expression has been
4629         optimized out when calculating the value of an extra
4630         accessibility parameter.
4632 2020-10-20  Bob Duff  <duff@adacore.com>
4634         * doc/gnat_ugn/gnat_utility_programs.rst: Change "_" to "-".
4636 2020-10-20  Arnaud Charlet  <charlet@adacore.com>
4638         * sem_aggr.adb (Resolve_Aggregate): Warn on not fully
4639         initialized box aggregate.
4640         * sem_aggr.ads: Fix typo.
4641         * sem_res.adb (Resolve_Actuals): Fix typo in error message
4642         format marking it incorrectly as a continuation message.
4643         * sem_elab.adb (Check_Internal_Call_Continue): Similarly, add
4644         missing primary message in case of a call to an actual generic
4645         subprogram.
4646         * sem_warn.adb (Check_References): Do not warn on read but never
4647         assigned variables if the type is partially initialized.
4648         * libgnat/a-except.ads, libgnat/a-ststun.ads,
4649         libgnat/g-sechas.ads, libgnat/a-cbdlli.ads,
4650         libgnat/a-cfdlli.ads, libgnat/a-cobove.ads,
4651         libgnat/a-cohata.ads, libgnat/a-crbltr.ads,
4652         libgnat/a-cbmutr.ads, libgnat/a-crdlli.ads,
4653         libgnat/a-cbsyqu.ads: Address new warning.
4654         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
4655         Update doc on -gnatwv.
4656         * gnat_ugn.texi: Regenerate.
4658 2020-10-20  Gary Dismukes  <dismukes@adacore.com>
4660         * sem_ch6.adb (Analyze_Expression_Function): Mark static
4661         expression functions as inlined.
4663 2020-10-20  Arnaud Charlet  <charlet@adacore.com>
4665         * contracts.adb (Is_Prologue_Renaming): This function was
4666         missing support for E_Constant which can also be generated in
4667         protected objects.
4669 2020-10-20  Arnaud Charlet  <charlet@adacore.com>
4671         * bindgen.adb (Gen_Bind_Env_String): Generate Ada 2012 compatible
4672         strings. Code cleanup.
4674 2020-10-20  Yannick Moy  <moy@adacore.com>
4676         * sem_util.adb, sem_util.ads: Comment fix.
4678 2020-10-20  Arnaud Charlet  <charlet@adacore.com>
4680         * sem_ch8.adb (Check_Constrained_Object): Suppress discriminant
4681         checks when the type has default discriminants and comes from
4682         expansion of a "for of" loop.
4684 2020-10-20  Bob Duff  <duff@adacore.com>
4686         * atree.ads: Make Default_Node a constant.  Remove the
4687         modification of Comes_From_Source, and use a separate flag for
4688         that.  Change Sloc to 0; it always overwritten, and never left
4689         as the No_Location value.
4690         (Print_Statistics): Move to spec so we can call it from
4691         gnat1drv.
4692         (Num_Nodes): Rename to clarify that this is approximate.
4693         Correct comment: nodes and entities are never deleted, the count
4694         is never decremented, and this is not used by Xref.
4695         (Initialize): Correct comment: Error_List is not created here.
4696         Other minor naming and comment changes.
4697         * atree.adb (Extend_Node, New_Copy, New_Entity, New_Node):
4698         Streamline these. Simplify and improve efficiency.  Move code
4699         from Allocate_Initialize_Node to these, where it can be executed
4700         unconditionally.  Take advantage of automatic zeroing of the
4701         Nodes table.
4702         (Allocate_Initialize_Node): Remove this. It was an efficiency
4703         bottleneck, and somewhat complicated, because it was called from
4704         4 places, and had all sorts of conditionals to check where it
4705         was called from. Better to move most of that code to the call
4706         sites, where it can be executed (or not) unconditionally.
4707         (Allocate_New_Node): New procedure to partly replace
4708         Allocate_Initialize_Node (called from just 2 of those 4 places).
4709         (Comes_From_Source_Default): New flag written/read by
4710         Set_Comes_From_Source_Default/Get_Comes_From_Source_Default.
4711         This allows us to make Default_Node into a constant with
4712         all-zeros value.
4713         (Set_Paren_Count_Of_Copy): New procedure to avoid duplicated
4714         code.
4715         (Report): New procedure to encapsulate the call to the reporting
4716         procedure.
4717         (Atree_Private_Part): We now need a body for this package, to
4718         contain package body Nodes.
4719         (Approx_Num_Nodes_And_Entities): Was Num_Nodes.  For efficiency,
4720         compute the answer from Nodes.Last. That way we don't need to
4721         increment a counter on every node creation. Other minor naming
4722         and comment changes.
4723         * gnat1drv.adb: Call Atree.Print_Statistics if -gnatd.A switch
4724         was given.  Add comment documenting the new order dependency (we
4725         must process the command line before calling Atree.Initialize).
4726         * debug.adb: Document -gnatd.A.
4727         * einfo.adb, sinfo.adb: Remove useless Style_Checks pragmas.
4728         * nlists.ads (Allocate_List_Tables): Inline makes node creation
4729         a little faster.
4730         * nlists.adb (Initialize): Remove local constant E, which didn't
4731         seem to add clarity.
4732         * treepr.adb (Print_Init): Use renamed
4733         Approx_Num_Nodes_And_Entities function.
4734         * types.ads: Change the Low and High bounds as described above.
4735         * types.h: Change Low and High bounds to match types.ads.
4736         * sem_ch8.adb, namet.adb, namet.ads: Move the computation of
4737         Last_Name_Id from sem_ch8 to namet, and correct it to not assume
4738         Name_Ids are positive.
4739         * ali.adb, ali-util.adb, bindo-writers.adb, exp_dist.adb,
4740         fmap.adb, fname-uf.adb, osint.adb: Fix various hash functions to
4741         avoid assuming the various ranges are positive. Note that "mod"
4742         returns a nonnegative result when the second operand is
4743         positive. "rem" can return negative values in that case (in
4744         particular, if the first operand is negative, which it now is).
4745         * switch-c.adb: Allow switch -gnaten to control the value of
4746         Nodes_Size_In_Meg.
4747         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
4748         Remove traling whitespaces.
4749         * opt.ads (Nodes_Size_In_Meg): New Variable.
4751 2020-10-20  Eric Botcazou  <ebotcazou@adacore.com>
4753         * exp_util.adb (Remove_Side_Effects): Always generate a renaming
4754         that is handled by the front-end in the case of an indexed or a
4755         selected component whose prefix has a nonstandard representation.
4757 2020-10-20  Pat Rogers  <rogers@adacore.com>
4759         * doc/gnat_rm/the_gnat_library.rst: Add Ada.Task_Initialization.
4760         * gnat_rm.texi: Regenerate.
4762 2020-10-20  Yannick Moy  <moy@adacore.com>
4764         * errout.adb: (Error_Msg-Internal): Pass the location for a line
4765         insertion if any in the message.
4766         (Output_Messages: Add display of source code lines if -gnatdF is
4767         set.
4768         (Write_Source_Code_Line): Code clean up.
4769         * erroutc.adb (Prescan_Message): Apply prescan for continuation
4770         lines when -gnatdF is set, and record presence of line
4771         insertion.
4772         * erroutc.ads (Has_Insertion_Line): New global for prescan.
4773         (Error_Msg_Object): Add field to record line insertion if
4774         present.
4775         * errutil.adb (Error_Msg): Pass no location for Insertion_Sloc.
4777 2020-10-20  Arnaud Charlet  <charlet@adacore.com>
4779         * exp_ch5.adb (Expand_N_Case_Statement): Do not generate
4780         validity check when possible.
4782 2020-10-20  Ed Schonberg  <schonberg@adacore.com>
4784         * exp_aggr.adb (Expand_Iterated_Component): Reorganize code to
4785         ensure that Loop_Id is properly initialized on all paths, and
4786         remove code duplication.
4788 2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
4790         * sem_ch3.adb (Analyze_Subtype_Declaration): Propagate predicate
4791         function to full view of the created type as well, if it was
4792         created.
4794 2020-10-20  Arnaud Charlet  <charlet@adacore.com>
4796         * exp_attr.adb (Expand_N_Attribute_Reference): Merge handling of
4797         Simple_Storage_Pool and Storage_Pool.
4799 2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
4801         * aspects.ads: Introduce Subprogram_Variant aspect with the
4802         following properties: GNAT-specific, with mandatory expression,
4803         not a representation aspect, never delayed.
4804         * contracts.adb (Expand_Subprogram_Contract): Mention new aspect
4805         in the comment.
4806         (Add_Contract_Item): Support addition of pragma
4807         Subprogram_Variant to N_Contract node.
4808         (Analyze_Entry_Or_Subprogram_Contract): Mention new aspect in
4809         the comment; add pragma Subprogram_Variant to N_Contract node.
4810         (Build_Postconditions_Procedure): Adapt call to
4811         Insert_Before_First_Source_Declaration, which is now reused in
4812         expansion of new aspect.
4813         (Process_Contract_Cases_For): Also process Subprogram_Variant,
4814         which is stored in N_Contract node together with Contract_Cases.
4815         * contracts.ads (Analyze_Entry_Or_Subprogram_Contract): Mention
4816         new aspect in the comment.
4817         (Analyze_Entry_Or_Subprogram_Body_Contract): Likewise.
4818         * einfo.adb (Get_Pragma): Support retrieval of new pragma.
4819         * einfo.ads (Get_Pragma): Likewise.
4820         * exp_ch6.adb (Check_Subprogram_Variant): New routine for
4821         emitting call to check Subprogram_Variant expressions at run
4822         time.
4823         (Expand_Call_Helper): Check Subprogram_Variant expressions at
4824         recursive calls.
4825         * exp_prag.adb (Make_Op): Moved from expansion of pragma
4826         Loop_Variant to Exp_Util, so it is now reused for expansion of
4827         pragma Subprogram_Variant.
4828         (Process_Variant): Adapt call to Make_Op after moving it to
4829         Exp_Util.
4830         (Expand_Pragma_Subprogram_Variant): New routine.
4831         * exp_prag.ads (Expand_Pragma_Subprogram_Variant): Likewise.
4832         * exp_util.adb (Make_Variant_Comparison): Moved from Exp_Prag
4833         (see above).
4834         * exp_util.ads (Make_Variant_Comparison): Likewise.
4835         * inline.adb (Remove_Aspects_And_Pragmas): Handle aspect/pragma
4836         Subprogram_Variant just like similar contracts.
4837         * par-prag.adb (Prag): Likewise.
4838         * sem.adb (Insert_Before_First_Source_Declaration): Moved from
4839         Contracts (see above).
4840         * sem.ads (Insert_Before_First_Source_Declaration): Likewise.
4841         * sem_ch12.adb: Mention new aspect in the comment about
4842         "Implementation of Generic Contracts", just like similar aspects
4843         are mentioned there.
4844         * sem_ch13.adb (Insert_Pragma): Mention new aspect in the
4845         comment, because this routine is now used for Subprogram_Variant
4846         just like for other similar aspects.
4847         (Analyze_Aspect_Specifications): Mention new aspect in comments;
4848         it is handled just like aspect Contract_Cases.
4849         (Check_Aspect_At_Freeze_Point): Do not expect aspect
4850         Subprogram_Variant just like we don't expect aspect
4851         Contract_Cases.
4852         * sem_prag.adb (Ensure_Aggregate_Form): Now also used for pragma
4853         Subprogram_Variant, so update comment.
4854         (Analyze_Pragma): Add initial checks for pragma
4855         Subprogram_Variant.
4856         (Analyze_Subprogram_Variant_In_Decl_Part): New routine with
4857         secondary checks on the new pragma.
4858         (Sig_Flags): Handle references within pragma Subprogram_Variant
4859         expression just like references in similar pragma
4860         Contract_Cases.
4861         (Is_Valid_Assertion_Kind): Handle Subprogram_Variant just like
4862         other similar contracts.
4863         * sem_prag.ads (Analyze_Subprogram_Variant_In_Decl_Part): New
4864         routine.
4865         * sem_res.adb (Same_Or_Aliased_Subprograms): Moved to Sem_Util,
4866         so it can be reused for detection of recursive calls where
4867         Subprogram_Variant needs to be verified.
4868         * sem_util.adb (Is_Subprogram_Contract_Annotation): Handle new
4869         Subprogram_Variant annotation just like other similar
4870         annotations.
4871         (Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above).
4872         * sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new
4873         aspect in the comment.
4874         (Same_Or_Aliased_Subprograms): Moved from Sem_Res (see above).
4875         * sinfo.ads (N_Contract): Document handling of
4876         Subprogram_Variant.
4877         * snames.ads-tmpl: Add name for the internally generated
4878         procedure with checks for Subprogram_Variant expression, name
4879         for the new aspect and new pragma corresponding to aspect
4880         Subprogram_Variant.
4882 2020-10-20  Piotr Trojanek  <trojanek@adacore.com>
4884         * exp_util.ads: Reorder declaration.
4886 2020-10-19  Ed Schonberg  <schonberg@adacore.com>
4888         * par-ch4.adb: (P_Aggregate_Or_Paren_Expr): Recognize
4889         Iterated_Element_Component.
4890         (P_Iterated_Component_Association): Rebuild node as an Iterated_
4891         Element_Association when Key_Expression is present, and attach
4892         either the Loop_Parameter_Specification or the
4893         Iterator_Specification to the new node.
4894         * sem_aggr.adb: (Resolve_Container_Aggregate):
4895         Resolve_Iterated_Association handles bota Iterated_Component_
4896         and Iterated_Element_Associations, in which case it analyzes and
4897         resoles the orresponding Key_Expression.
4898         * exp_aggr.adb (Expand_Iterated_Component): If a Key_Expression
4899         is present, use it as the required parameter in the call to the
4900         insertion routine for the destination container aggregate. Call
4901         this routine for both kinds of Iterated_Associations.
4903 2020-10-19  Arnaud Charlet  <charlet@adacore.com>
4905         * exp_ch4.adb (Expand_Concatenate): Enable needed range checks.
4907 2020-10-19  Bob Duff  <duff@adacore.com>
4909         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
4910         Set the Warnings_Off flag on the pointer object used in the
4911         expansion of iterators and similar.
4913 2020-10-19  Eric Botcazou  <ebotcazou@adacore.com>
4915         * Makefile.rtl (PowerPC/Linux): Use s-taspri__posix.ads instead
4916         of s-taspri__posix-noaltstack.ads for s-taspri.ads.
4918 2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
4920         * sem_ch13.adb (Add_Call): Remove excessive condition and
4921         unnecessary call to Set_Has_Predicates.
4923 2020-10-19  Yannick Moy  <moy@adacore.com>
4925         * debug.adb: Use debug switch -gnatdF for this alternative
4926         display of messages.
4927         * errout.adb (Output_Messages): Alternative display when -gnatdF
4928         is used.
4929         * erroutc.adb (Output_Msg_Text): Likewise.
4931 2020-10-19  Arnaud Charlet  <charlet@adacore.com>
4933         * sem_ch6.adb (Check_Untagged_Equality): Check for AI12-0352.
4935 2020-10-19  Ed Schonberg  <schonberg@adacore.com>
4937         * exp_ch6.adb (Add_View_Conversion_Invariants): Do not insert
4938         generated invariant checks when the call is a function call.
4939         These tests are properly inserted in the code in procedure
4940         Insert_Post_Call_Actions, which takes care of finding the proper
4941         insertion point for the checks.
4942         (Insert_Post_Call_Actions): Add question marks to indicate
4943         possible gap in handling function calls that appear as aggregate
4944         components.
4946 2020-10-19  Arnaud Charlet  <charlet@adacore.com>
4948         * contracts.adb (Process_Preconditions_For): Do not exclude
4949         instances.
4950         * sem_ch4.adb (Analyze_Quantified_Expression): Disable spurious
4951         warning on internally generated variables.
4953 2020-10-19  Ghjuvan Lacambre  <lacambre@adacore.com>
4955         * debug.adb: Document -gnatd_c flag as being used for CUDA.
4956         * gnat_cuda.ads: New file.
4957         * gnat_cuda.adb: New file.
4958         * rtsfind.ads: Add Interfaces_C_Strings package and
4959         RE_Fatbin_Wrapper, RE_Register_Fat_Binary,
4960         RE_Register_Fat_Binary_End, RE_Register_Function, RE_Chars_Ptr,
4961         RE_New_Char_Array entities.
4962         * rtsfind.adb: Create new Interfaces_C_Descendant subtype,
4963         handle it.
4964         * sem_ch7.adb (Analyze_Package_Body_Helper): Call CUDA init
4965         procedure.
4966         * sem_prag.adb (Analyze_Pragma): Call Add_Cuda_Kernel procedure.
4967         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add gnat_cuda.o.
4969 2020-10-19  Bob Duff  <duff@adacore.com>
4971         * ghost.adb (Whole_Object_Ref): New function to compute the name
4972         of the whole object.
4973         (Mark_And_Set_Ghost_Assignment): Rewrite to use
4974         Whole_Object_Ref.  We need to partly analyze the left-hand side
4975         in order to distinguish expanded names and record components.
4976         * lib-xref.ads, lib-xref.adb (Deferred_References): Move table
4977         to body, and add Defer_Reference to update the table, avoiding
4978         duplicates.
4979         (Generate_Reference): Avoid duplicates.
4980         * sem_ch8.ads, sem_ch8.adb (Find_Direct_Name): Remove _OK
4981         parameters, which are no longer needed. Ignore errors in
4982         Ignore_Errors mode.
4983         * sem_util.ads, sem_util.adb (Preanalyze_Without_Errors): Make
4984         this public, so we can call it from Ghost.
4985         * errout.ads, scng.adb, sem_prag.adb: Minor.
4987 2020-10-19  Ghjuvan Lacambre  <lacambre@adacore.com>
4989         * exp_attr.adb (Expand_N_Attribute_Reference): Check if type
4990         depends on discriminant.
4992 2020-10-19  Bob Duff  <duff@adacore.com>
4994         * libgnat/a-coinve.adb, libgnat/a-cidlli.adb (Put_Image): Call
4995         Iterate.
4997 2020-10-19  Arnaud Charlet  <charlet@adacore.com>
4999         * sem_aggr.adb (Resolve_Record_Aggregate): Properly apply
5000         subtype constraints when using a Default_Value.
5001         * freeze.adb: Fix typo.
5003 2020-10-19  Yannick Moy  <moy@adacore.com>
5005         * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix bug
5006         where a call to Error_Msg_N leads to crash due to
5007         Error_Msg_Name_1 being removed by the call, while a subsequent
5008         call to Error_Msg_N tries to use it. The variable
5009         Error_Msg_Name_1 should be restored prior to the next call. Also
5010         add checking for the new rules.
5012 2020-10-19  Arnaud Charlet  <charlet@adacore.com>
5014         * checks.adb (Apply_Type_Conversion_Checks): Minor code clean
5015         up.
5016         * exp_ch4.adb (Discrete_Range_Check): Optimize range checks.
5017         Update comments.
5018         (Expand_N_Type_Conversion): Generate range check when rewriting
5019         a type conversion if needed. Add assertion.
5020         * exp_ch6.adb (Expand_Simple_Function_Return): Minor code clean
5021         up.
5022         * sem_res.adb (Resolve_Type_Conversion): Apply range check when
5023         needed.  Update comments.
5025 2020-10-19  Yannick Moy  <moy@adacore.com>
5027         * libgnat/a-textio.ads: Update top-level comment.
5029 2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
5031         * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Fix typo.
5033 2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
5035         * exp_ch6.adb (Expand_Actuals): Simplify condition for by-copy
5036         types.
5038 2020-10-19  Yannick Moy  <moy@adacore.com>
5040         * errout.ads: Add comment regarding lack of preservation of
5041         Errout state across successive calls to the API.
5043 2020-10-19  Bob Duff  <duff@adacore.com>
5045         * exp_put_image.adb (Build_Elementary_Put_Image_Call): Use the
5046         base type to recognize various cases of access types.
5047         * libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads, libgnat/a-cbhama.adb,
5048         libgnat/a-cbhama.ads, libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
5049         libgnat/a-cbmutr.adb, libgnat/a-cbmutr.ads, libgnat/a-cborma.adb,
5050         libgnat/a-cborma.ads, libgnat/a-cborse.adb, libgnat/a-cborse.ads,
5051         libgnat/a-cdlili.adb, libgnat/a-cdlili.ads, libgnat/a-cidlli.adb,
5052         libgnat/a-cidlli.ads, libgnat/a-cihama.adb, libgnat/a-cihama.ads,
5053         libgnat/a-cihase.adb, libgnat/a-cihase.ads, libgnat/a-cimutr.adb,
5054         libgnat/a-cimutr.ads, libgnat/a-ciorma.adb, libgnat/a-ciorma.ads,
5055         libgnat/a-ciormu.adb, libgnat/a-ciormu.ads, libgnat/a-ciorse.adb,
5056         libgnat/a-ciorse.ads, libgnat/a-coboho.adb, libgnat/a-coboho.ads,
5057         libgnat/a-cobove.adb, libgnat/a-cobove.ads, libgnat/a-cohama.adb,
5058         libgnat/a-cohama.ads, libgnat/a-cohase.adb, libgnat/a-cohase.ads,
5059         libgnat/a-coinho.adb, libgnat/a-coinho.ads,
5060         libgnat/a-coinho__shared.adb, libgnat/a-coinho__shared.ads,
5061         libgnat/a-coinve.adb, libgnat/a-coinve.ads, libgnat/a-comutr.adb,
5062         libgnat/a-comutr.ads, libgnat/a-coorma.adb, libgnat/a-coorma.ads,
5063         libgnat/a-coormu.adb, libgnat/a-coormu.ads, libgnat/a-coorse.adb,
5064         libgnat/a-coorse.ads, libgnat/a-strunb.adb, libgnat/a-strunb.ads,
5065         libgnat/a-strunb__shared.adb, libgnat/a-strunb__shared.ads:
5066         Implement Put_Image attibute.
5067         * libgnat/a-stteou.ads, libgnat/s-putima.ads,
5068         libgnat/a-stouut.ads, libgnat/a-stoubu.adb: Make
5069         Ada.Strings.Text_Output, Ada.Strings.Text_Output.Utils, and
5070         System.Put_Images Pure, so they can be with'ed by Pure units
5071         that should have Put_Image defined.
5072         * libgnat/a-stouut.adb: Add missing column adjustments, and
5073         remove a redundant one.
5074         * libgnat/s-putima.adb (Put_Arrow): New routine to print an
5075         arrow. Avoids adding a with clause to some containers.
5077 2020-10-19  Bob Duff  <duff@adacore.com>
5079         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Require matching
5080         parens or brackets.
5081         * par.adb, par-tchk.adb (T_Right_Bracket): New procedure to give
5082         an error on missing ].
5084 2020-10-19  Javier Miranda  <miranda@adacore.com>
5086         * sem_ch8.adb (Find_Direct_Name): Do not trust in the decoration
5087         of the Entity attribute in constants associated with
5088         discriminals of protected types.
5090 2020-10-19  Gary Dismukes  <dismukes@adacore.com>
5092         * sem_disp.adb (Check_Dispatching_Context): When the enclosing
5093         subprogram is abstract, bypass early return if the call is
5094         tag-indeterminate, to continue with the later error checking.
5096 2020-10-19  Javier Miranda  <miranda@adacore.com>
5098         * sem_ch7.adb (Uninstall_Declarations): Uninstall the
5099         declaration of a subtype declaration defined in the private part
5100         of a package.
5102 2020-10-19  Arnaud Charlet  <charlet@adacore.com>
5104         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Simplify code since
5105         we are always under -gnatX if we encounter a Tok_Left_Bracket.
5106         * scng.adb (Scan): [] is an aggregate under -gnatX and a wide
5107         character otherwise.
5109 2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
5111         * exp_ch6.adb (Expand_Call_Helper): Cleanup.
5113 2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
5115         * exp_ch6.adb (Is_Direct_Deep_Call): Refine type from Node_Id to
5116         Entity_Id.
5118 2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
5120         * exp_ch6.adb (May_Fold): Detect all operators, i.e. both binary
5121         and unary ones.
5123 2020-10-19  Piotr Trojanek  <trojanek@adacore.com>
5125         * inline.adb (Expand_Inlined_Call): Simplify repeated calls to
5126         Nkind.
5128 2020-10-18  Alexandre Oliva  <oliva@adacore.com>
5130         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Compile Ada.Numerics
5131         child units Aux_Generic_Float, Aux_Long_Long_Float, Aux_Long_Float,
5132         Aux_Float, Aux_Short_Float, Aux_Compat, and Aux_Linker_Options.
5133         (X86_TARGET_PAIRS): Drop dummy body for Aux.  Use x86 version
5134         of Aux_Compat.
5135         (X86_64_TARGET_PAIRS): Likewise.
5136         (LIBGNAT_TARGET_PAIRS): On VxWorks, select the nolibm
5137         variants.  Drop the darwin version of Aux.  Drop the redundant
5138         libc-x86 numaux variants on x86* kfreebsd variants.
5139         * libgnat/a-nagefl.ads: New Aux_Generic_Float.
5140         * libgnat/a-naliop.ads: New Aux_Linker_Options.
5141         * libgnat/a-naliop__nolibm.ads: New.
5142         * libgnat/a-nallfl.ads: New Aux_Long_Long_Float.
5143         * libgnat/a-nalofl.ads: New Aux_Long_Float.
5144         * libgnat/a-nuaufl.ads: New Aux_Float.
5145         * libgnat/a-nashfl.ads: New Aux_Short_Float.
5146         * libgnat/a-ngcefu.adb (Exp): Factor out the Im (X) passed to
5147         Sin and Cos in the Complex variant too.
5148         * libgnat/a-ngcoty.adb: Switch to Aux_Generic_Float.  Drop
5149         redundant conversions.
5150         * libgnat/a-ngelfu.adb: Likewise.
5151         * libgnat/a-nuauco.ads: New Aux_Compat.
5152         * libgnat/a-nuauco__x86.ads: New.
5153         * libgnat/a-numaux.ads: Replace with Compat wrapper.
5154         * libgnat/a-numaux__darwin.adb: Remove.
5155         * libgnat/a-numaux__darwin.ads: Remove.
5156         * libgnat/a-numaux__dummy.adb: Remove.
5157         * libgnat/a-numaux__libc-x86.ads: Remove.
5158         * libgnat/a-numaux__vxworks.ads: Remove.
5160 2020-10-16  Piotr Trojanek  <trojanek@adacore.com>
5162         * checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch6.adb,
5163         freeze.adb, sem_aggr.adb, sem_attr.adb, sem_ch13.adb,
5164         sem_ch13.ads, sem_ch6.adb, sem_eval.adb, sem_util.adb: Fix style
5165         and typos.
5167 2020-10-16  Arnaud Charlet  <charlet@adacore.com>
5169         * sem_cat.adb (Is_Primary): Handle N_Range properly.
5171 2020-10-16  Ghjuvan Lacambre  <lacambre@adacore.com>
5173         * elists.ads (New_Elmt_List): New functions.
5174         * elists.adb (New_Elmt_List): New functions.
5175         * exp_prag.adb: Add dependency on Elists.
5176         (Expand_Pragma_CUDA_Execute): New function.
5177         (Expand_N_Pragma): Add call to Expand_Pragma_CUDA_Execute.
5178         * rtsfind.ads: Add CUDA.Internal, CUDA.Runtime, System.C
5179         packages and RE_Push_Call_Configuration,
5180         RE_Pop_Call_Configuration, RE_Launch_Kernel, RO_IC_Unsigned,
5181         RO_IC_Unsigned_Long_Long entities.
5182         * rtsfind.adb: Extend Interfaces_Descendant to include
5183         Interfaces_C.
5185 2020-10-16  Bob Duff  <duff@adacore.com>
5187         * par-ch4.adb (P_Name): Allow Tok_Left_Bracket in two places to
5188         call P_Qualified_Expression. We don't need to modify other
5189         places that call P_Qualified_Expression, because a
5190         qualified_expression is a name in Ada 2012 and higher, so P_Name
5191         is the right place.  The parser already parses aggregates with
5192         brackets; we just need to allow that in qualified expressions.
5194 2020-10-16  Javier Miranda  <miranda@adacore.com>
5196         * sem_ch12.adb (Check_Generic_Child_Unit): When the child unit
5197         is a renaming of a generic child unit then traverse the scope
5198         containing the renaming declaration to locate the instance of
5199         its parent.  Otherwise the parent is not installed and the
5200         frontend cannot process the instantiation.
5202 2020-10-16  Bob Duff  <duff@adacore.com>
5204         * libgnat/a-numeri.ads: Remove the greek letter.
5206 2020-10-16  Ed Schonberg  <schonberg@adacore.com>
5208         * exp_imgv.adb (Expand_Image_Attribute): Refine previous patch
5209         to use root type (and not base type) on enumeration types.
5211 2020-10-16  Ed Schonberg  <schonberg@adacore.com>
5213         * exp_imgv.adb (Expand_Image_Attribute): Use the base type
5214         instead of the root type when type of object is private. Remove
5215         Ada_2020 guard, because it has been checked during prior
5216         analysis. Use Underlying_Type in all cases, as it is a no-op on
5217         types that are not private.
5219 2020-10-16  Arnaud Charlet  <charlet@adacore.com>
5221         * aspects.ads, snames.ads-tmpl: Add support for
5222         Exclusive_Functions aspect.
5223         * sem_ch13.adb (Analyze_Aspect_Specifications): Ditto.
5224         * exp_ch9.adb (Build_Protected_Subprogram_Body): Take aspect
5225         Exclusive_Functions into account.
5227 2020-10-16  Arnaud Charlet  <charlet@adacore.com>
5229         * gcc-interface/Make-lang.in: Update dependencies on system.ads,
5230         add gnatbind switch -t to avoid timestamp inconsistencies during
5231         build.
5232         * libgnat/system.ads: Move...
5233         * gcc-interface/system.ads: ... here.
5235 2020-10-16  Gary Dismukes  <dismukes@adacore.com>
5237         * sem_eval.adb (Subtypes_Statically_Match): Retrieve
5238         discriminant constraints from the two types via new function
5239         Original_Discriminant_Constraint rather than
5240         Discriminant_Constraint.
5241         (Original_Discriminant_Constraint): New function to locate the
5242         nearest explicit discriminant constraint associated with a type
5243         that may possibly have inherited a constraint from an ancestor
5244         type.
5246 2020-10-16  Bob Duff  <duff@adacore.com>
5248         * exp_ch6.adb (Expand_Simple_Function_Return): Remove obsolete
5249         comment and code.
5251 2020-10-16  Arnaud Charlet  <charlet@adacore.com>
5253         PR ada/95953
5254         * libgnat/a-suenco.adb (Convert): Fix handling of third UTF-8
5255         byte.
5257 2020-10-16  Steve Baird  <baird@adacore.com>
5259         * exp_util.adb (Is_Related_To_Func_Return): Cope with the case
5260         where the FE introduces a type conversion.
5262 2020-10-16  Chris Martin  <cmartin@adacore.com>
5264         * sem_util.ads, sem_util.adb (Is_Access_Variable): New function.
5265         (Is_Synchronized_Object): Call new function when determining if
5266         a constant can be regarded as synchronized.
5268 2020-10-16  Arnaud Charlet  <charlet@adacore.com>
5270         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
5271         Call Set_BIP_Initialization_Call systematically.
5272         * exp_ch7.adb (Process_Transient_In_Scope): Take
5273         BIP_Initialization_Call into account to decide where to insert
5274         the Hook.
5276 2020-10-16  Piotr Trojanek  <trojanek@adacore.com>
5278         * sem_util.adb (Is_View_Conversion): Detect qualified types.
5279         * sem_util.ads (Is_Actual_In_Out_Parameter): Fix style in
5280         comment.
5282 2020-10-16  Arnaud Charlet  <charlet@adacore.com>
5284         * scil_ll.adb, sem_scil.adb: Update assertions.
5286 2020-10-16  Ed Schonberg  <schonberg@adacore.com>
5288         * sem_attr.adb (Min_Max): Handle the case where attribute
5289         name (qualified by required type) appears as the reducer of a
5290         'Reduce attribute reference.
5291         (Resolve_Attribute) <Reduce>: Handle properly the presence of a
5292         procedure or an attribute reference Min/Max as a reducer.
5293         * exp_attr.adb (Expand_Attribute_Reference) <Reduce>: New
5294         subprogram Build_Stat, to construct the combining statement
5295         which appears in the generated loop for Reduce, and which is
5296         either a function call when the reducer is a function or an
5297         attribute, or a procedure call when reducer is an appropriate
5298         procedure.  BuilD_Stat is used both when the prefix of 'Reduce
5299         is a value sequence and when it is an object
5301 2020-10-16  Arnaud Charlet  <charlet@adacore.com>
5303         * exp_ch4.adb (Expand_Concatenate): Allocate result of string
5304         concatenation on secondary stack when relevant.
5306 2020-10-16  Ed Schonberg  <schonberg@adacore.com>
5308         * sem_res.adb (Resolve_Declare_Expression): Retrieve the created
5309         block entity that is the scope of the local declarations, from
5310         either a local object declaration or an object renaming
5311         declaration. The block entity does not have an explicit
5312         declaration, but appears as the scope of all locally declared
5313         objects.
5315 2020-10-16  Eric Botcazou  <ebotcazou@adacore.com>
5317         * libgnat/system-aix.ads: Likewise.
5318         * libgnat/system-darwin-arm.ads: Likewise.
5319         * libgnat/system-darwin-ppc.ads: Likewise.
5320         * libgnat/system-darwin-x86.ads: Likewise.
5321         * libgnat/system-djgpp.ads: Likewise.
5322         * libgnat/system-dragonfly-x86_64.ads: Likewise.
5323         * libgnat/system-freebsd.ads: Likewise.
5324         * libgnat/system-hpux-ia64.ads: Likewise.
5325         * libgnat/system-hpux.ads: Likewise.
5326         * libgnat/system-linux-alpha.ads: Likewise.
5327         * libgnat/system-linux-arm.ads: Likewise.
5328         * libgnat/system-linux-hppa.ads: Likewise.
5329         * libgnat/system-linux-ia64.ads: Likewise.
5330         * libgnat/system-linux-m68k.ads: Likewise.
5331         * libgnat/system-linux-mips.ads: Likewise.
5332         * libgnat/system-linux-ppc.ads: Likewise.
5333         * libgnat/system-linux-riscv.ads: Likewise.
5334         * libgnat/system-linux-s390.ads: Likewise.
5335         * libgnat/system-linux-sh4.ads: Likewise.
5336         * libgnat/system-linux-sparc.ads: Likewise.
5337         * libgnat/system-linux-x86.ads: Likewise.
5338         * libgnat/system-lynxos178-ppc.ads: Likewise.
5339         * libgnat/system-lynxos178-x86.ads: Likewise.
5340         * libgnat/system-mingw.ads: Likewise.
5341         * libgnat/system-qnx-aarch64.ads: Likewise.
5342         * libgnat/system-rtems.ads: Likewise.
5343         * libgnat/system-solaris-sparc.ads: Likewise.
5344         * libgnat/system-solaris-x86.ads: Likewise.
5345         * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
5346         * libgnat/system-vxworks-arm-rtp.ads: Likewise.
5347         * libgnat/system-vxworks-arm.ads: Likewise.
5348         * libgnat/system-vxworks-e500-kernel.ads: Likewise.
5349         * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
5350         * libgnat/system-vxworks-e500-rtp.ads: Likewise.
5351         * libgnat/system-vxworks-e500-vthread.ads: Likewise.
5352         * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
5353         * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
5354         * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
5355         * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
5356         * libgnat/system-vxworks-ppc-vthread.ads: Likewise.
5357         * libgnat/system-vxworks-ppc.ads: Likewise.
5358         * libgnat/system-vxworks-x86-kernel.ads: Likewise.
5359         * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
5360         * libgnat/system-vxworks-x86-rtp.ads: Likewise.
5361         * libgnat/system-vxworks-x86-vthread.ads: Likewise.
5362         * libgnat/system-vxworks-x86.ads: Likewise.
5363         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
5364         * libgnat/system-vxworks7-aarch64.ads: Likewise.
5365         * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
5366         * libgnat/system-vxworks7-arm.ads: Likewise.
5367         * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
5368         * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
5369         * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
5370         * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
5371         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
5372         * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
5373         * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
5374         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
5375         * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
5376         * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
5377         * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
5378         * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
5379         * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
5381 2020-10-16  Arnaud Charlet  <charlet@adacore.com>
5383         * Makefile.rtl, gnat1drv.adb, expander.adb
5384         doc/gnat_rm/implementation_defined_pragmas.rst,
5385         doc/gnat_ugn/building_executable_programs_with_gnat.rst,
5386         doc/gnat_ugn/the_gnat_compilation_model.rst, exp_ch5.ads,
5387         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
5388         exp_util.ads, libgnarl/s-osinte__aix.adb,
5389         libgnarl/s-osinte__android.adb, libgnarl/s-osinte__darwin.adb,
5390         libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__hpux-dce.adb,
5391         libgnarl/s-osinte__lynxos178.adb, libgnarl/s-osinte__posix.adb,
5392         libgnarl/s-osinte__qnx.adb, libgnarl/s-osinte__rtems.adb,
5393         libgnarl/s-osinte__solaris.adb, libgnarl/s-osinte__vxworks.adb,
5394         libgnarl/s-osinte__x32.adb, libgnarl/s-solita.adb,
5395         libgnarl/s-taasde.adb, libgnarl/s-taprob.adb,
5396         libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb,
5397         libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
5398         libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
5399         libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
5400         libgnarl/s-tarest.adb, libgnarl/s-tasini.adb,
5401         libgnarl/s-taskin.adb, libgnarl/s-taspri__dummy.ads,
5402         libgnarl/s-taspri__hpux-dce.ads, libgnarl/s-taspri__lynxos.ads,
5403         libgnarl/s-taspri__mingw.ads,
5404         libgnarl/s-taspri__posix-noaltstack.ads,
5405         libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads,
5406         libgnarl/s-taspri__vxworks.ads, libgnarl/s-tassta.adb,
5407         libgnarl/s-tasuti.adb, libgnarl/s-tposen.adb,
5408         libgnat/a-except.adb, libgnat/a-except.ads,
5409         libgnat/s-dwalin.adb, libgnat/s-dwalin.ads,
5410         libgnat/s-mastop.ads, libgnat/s-soflin.adb,
5411         libgnat/s-stalib.adb, libgnat/s-stalib.ads,
5412         libgnat/s-stchop.adb, libgnat/s-stchop.ads,
5413         libgnat/s-stchop__limit.ads, libgnat/s-traceb.ads,
5414         libgnat/s-traent.adb, libgnat/s-traent.ads,
5415         libgnat/s-trasym.adb, libgnat/s-trasym.ads,
5416         libgnat/s-trasym__dwarf.adb, opt.adb, opt.ads, par-prag.adb,
5417         sem_prag.adb, snames.ads-tmpl, switch-c.adb, targparm.adb,
5418         targparm.ads, usage.adb: Remove support for -gnatP and pragma
5419         Polling.
5420         * gnat_ugn.texi: Regenerate.
5421         * libgnat/a-excpol.adb, libgnat/a-excpol__abort.adb: Removed.
5423 2020-10-16  Piotr Trojanek  <trojanek@adacore.com>
5425         * sem_ch3.adb (Array_Type_Declaration): Create itype with unique
5426         name.
5428 2020-10-16  Piotr Trojanek  <trojanek@adacore.com>
5430         * sem_ch3.adb (Analyze_Object_Declaration): Limit scope of a
5431         local object by hiding it from local subprograms; simplify
5432         nested if-then-if-then condition for an Ada 83 restriction.
5433         (Array_Type_Declaration): Confirm with assertion when the else
5434         branch is executed.
5435         (Find_Type_Of_Object): Simplify membership test with a subtype
5436         range.
5438 2020-10-16  Yannick Moy  <moy@adacore.com>
5440         * sem_prag.adb (Analyze_Global_In_Decl_Part): Update check to
5441         reject volatile object for reading.
5442         * sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Update
5443         check to reject volatile object for reading.
5444         * sem_util.adb, sem_util.ads
5445         (Check_Nonvolatile_Function_Profile,
5446         Has_Effectively_Volatile_Profile): Detect use of volatile object
5447         for reading.
5448         (Has_Enabled_Property): Accept constants as well.
5449         (Is_Effectively_Volatile_For_Reading): New function based on
5450         existing Is_Effectively_Volatile.
5451         (Is_Effectively_Volatile_Object_For_Reading): Adapted from the
5452         existing Is_Effectively_Volatile_Object, using a shared
5453         implementation in Is_Effectively_Volatile_Object_Shared.
5455 2020-10-16  Gary Dismukes  <dismukes@adacore.com>
5457         * exp_ch7.adb (Check_Unnesting_In_Decls_Or_Stmts): In the case
5458         of an if-statement, call Unnest_If_Statement to determine
5459         whether there are nested subprograms in any of the statement
5460         lists of the "if" parts that require a wrapping procedure to
5461         handle possible up-level refeferences.
5462         (Unnest_Block): Call Check_Unnesting_In_Handlers to do unnesting
5463         of subprograms in exception handlers of the block statement.
5464         (Unnest_If_Statement): New procedure to traverse the parts of an
5465         if-statement and create wrapper procedures as needed to
5466         encapsulate nested subprograms that may make up-level
5467         references.
5468         (Check_Stmts_For_Subp_Unnesting): New support procedure in
5469         Unnest_If_Statement to traverse a statement list looking for
5470         top-level subprogram bodies that require wrapping inside a
5471         procedure (via Unnest_Statement_List) as well as possibly having
5472         other statements (block, loop, if) that may themselves require
5473         an unnesting transformation (via
5474         Check_Unnesting_In_Decls_Or_Stmts).
5475         (Unnest_Statement_List): New support procedure to traverse the
5476         statements of a statement list that contains subprogram bodies
5477         at the top level and replace the statement list with a wrapper
5478         procedure body encapsulating the statements and a call to the
5479         procedure.
5481 2020-10-16  Arnaud Charlet  <charlet@adacore.com>
5483         * sem_prag.adb (Check_OK_Stream_Convert_Function): Check for
5484         abstract subprograms.
5486 2020-10-16  Piotr Trojanek  <trojanek@adacore.com>
5488         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
5489         (No_Local_Timing_Events): Package Timing_Events is a child of
5490         Ada.Real_Time, not of Ada.
5491         * gnat_rm.texi: Regenerate.
5493 2020-10-16  Eric Botcazou  <ebotcazou@adacore.com>
5495         * doc/gnat_rm/implementation_defined_attributes.rst: Document the
5496         new Max_Integer_Size attribute.
5497         * gnat_rm.texi: Regenerate.
5498         * exp_attr.adb (Get_Integer_Type): Call Small_Integer_Type_For.
5499         (Expand_N_Attribute_Reference) <Attribute_Pred>: Replace selection
5500         code with call to Integer_Type_For.
5501         <Attribute_Succ>: Likewise.
5502         <Attribute_Val>: Likewise.
5503         <Attribute_Valid>: Likewise.
5504         <Attribute_Max_Integer_Size>: Raise Program_Error.
5505         * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Replace selection
5506         code with call to Integer_Type_For.
5507         (Simple_Init_Initialize_Scalars_Type): Use Long_Long_Unsigned and
5508         System_Max_Integer_Size to size the largest integer type.
5509         * exp_pakd.adb (Compute_Linear_Subscript): Minor tweak.
5510         (Create_Packed_Array_Impl_Type): Use Small_Integer_Type_For.
5511         * exp_util.ads (Integer_Type_For): New function.
5512         (Small_Integer_Type_For): Likewise.
5513         * exp_util.adb (Adjust_Condition): Use Integer_Type_For.
5514         (Component_May_Be_Bit_Aligned): Use System_Max_Integer_Size.
5515         (Integer_Type_For): New function.
5516         (Small_Integer_Type_For): Likewise.
5517         (Matching_Standard_Type): Use Small_Integer_Type_For.
5518         (Needs_Constant_Address): Replace 64 with System_Max_Integer_Size.
5519         * freeze.adb (Set_Small_Size): Likewise.
5520         (Size_Known): Likewise.
5521         (Check_Suspicious_Modulus): Likewise.
5522         (Check_Large_Modular_Array): Likewise.
5523         (Freeze_Entity): Likewise.
5524         * layout.adb (Layout_Type): Likewise.
5525         * sem_aggr.adb: Add with and use clauses for Ttypes.
5526         (Resolve_Aggregate): Replace 64 with System_Max_Integer_Size.
5527         * sem_attr.ads (Attribute_Impl_Def): Add Attribute_Max_Integer_Size.
5528         * sem_attr.adb (Analyze_Attribute) <Attribute_Max_Integer_Size>: New
5529         (Eval_Attribute): Likewise.
5530         * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Change max
5531         scalar size to System_Max_Integer_Size.
5532         (Check_Array_Type): Replace 64 with System_Max_Integer_Size and
5533         remove superfluous test.
5534         (OK_Component): Likewise.
5535         * sem_ch5.adb: Add with and use clauses for Ttypes.
5536         (Analyze_Assignment): Replace 64 with System_Max_Integer_Size.
5537         * snames.ads-tmpl (Name_Max_Integer_Size): New attribute name.
5538         (Attribute_Id): Add Attribute_Max_Integer_Size.
5539         * ttypes.ads (System_Max_Integer_Size): New constant.
5541 2020-10-15  Arnaud Charlet  <charlet@adacore.com>
5543         * sem_ch10.adb (Install_With_Clause): Fix implementation of Ada
5544         2005 AI-262 by taking into account generic packages.  Minor
5545         reformatting.
5546         * libgnat/a-cbhase.ads, libgnat/a-cbhase.adb: Remove use clause
5547         on runtime unit spec.
5549 2020-10-15  Arnaud Charlet  <charlet@adacore.com>
5551         * einfo.ads, einfo.adb (Scope_Depth_Value,
5552         Set_Scope_Depth_Value): Add assertions on valid nodes and update
5553         documentation accordingly.
5554         (Write_Field22_Name): Sync with change in Scope_Depth_Value.
5555         * sem_ch8.adb (Find_Direct_Name): Fix call to Scope_Depth_Value.
5557 2020-10-15  Javier Miranda  <miranda@adacore.com>
5559         * sem_prag.adb (Analyze_Pragma): Adding semantic support of
5560         Standard to Default_Storage_Pool.
5561         * freeze.adb (Freeze_Entity): If pragma Default_Storage_Pool
5562         applies and it is set to Standard then use the global pool as
5563         the associated storage pool of the access type.
5565 2020-10-15  Javier Miranda  <miranda@adacore.com>
5567         * exp_ch6.ads (Might_Have_Tasks): Update documentation.
5568         * exp_ch6.adb (Might_Have_Tasks): Return also true when the type
5569         has tasks.
5570         (Make_Build_In_Place_Call_In_Allocator): Code cleanup.
5571         * exp_ch3.adb (Ensure_Activation_Chain_And_Master,
5572         Expand_N_Full_Type_Declaration, Expand_N_Object_Declaration):
5573         Code cleanup.
5575 2020-10-15  Steve Baird  <baird@adacore.com>
5577         * checks.adb (Apply_Predicate_Check): Generate "infinite
5578         recursion" warning message even if run-time predicate checking
5579         is disabled.
5580         * exp_ch6.adb (Expand_Simple_Function_Return): In testing
5581         whether the returned expression is a function call, look for the
5582         case where the call has been transformed into a dereference of
5583         an access value that designates the result of a function call.
5584         * sem_ch3.adb (Analyze_Object_Declaration): Legality checking
5585         for a static expression is unaffected by assertion policy (and,
5586         in particular, enabling/disabling of subtype predicates.  To get
5587         the right legality checking, we need to call
5588         Check_Expression_Against_Static_Predicate for a static
5589         expression even if predicate checking is disabled for the given
5590         predicate-bearing subtype.  On the other hand, we don't want to
5591         call Make_Predicate_Check unless predicate checking is enabled.
5592         * sem_ch7.adb (Uninstall_Declarations.Preserve_Full_Attributes):
5593         Preserve the Predicates_Ignored attribute.
5594         * sem_eval.adb (Check_Expression_Against_Static_Predicate):
5595         Previously callers ensured that this procedure was only called
5596         if predicate checking was enabled; that is no longer the case,
5597         so predicates-disabled case must be handled.
5598         * sem_prag.adb (Analyze_Pragma): Fix bug in setting
5599         Predicates_Ignored attribute in Predicate pragma case.
5601 2020-10-15  Ed Schonberg  <schonberg@adacore.com>
5603         * freeze.adb (Freeze_Fixed_Point_Type): Do not scale the bounds
5604         of a declared subtype using the 'Small of the type;  this is
5605         done during resolution of the bound itself, unlike what is done
5606         for the bounds of the base type, which are used to determine its
5607         required size. Previous code performed this scaling twice,
5608         leading to meaningless values for such a subtype.
5610 2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
5612         * sem_util.adb (Bad_Predicated_Subtype_Use): Emit an
5613         unconditional error, not a conditional warning.
5615 2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
5617         * sem_ch3.adb (Process_Subtype): Combine guards for
5618         Null_Exclusion_Present in May_Have_Null_Exclusion; use this
5619         combined guard when checking AI-231.
5621 2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
5623         * sem_ch3.adb (Process_Subtype): Sync May_Have_Null_Exclusion
5624         with assertion in Null_Exclusion_Present; clarify the scope of
5625         local variables.
5627 2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
5629         * sem_ch3.adb (Analyze_Subtype_Declaration): Fix style.
5630         (Make_Index): Refactor to avoid repeated detection of subtype
5631         indication; add comment.
5633 2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
5635         * sem_prag.adb (Is_Acceptable_Dim3): Use Is_RTE to not pull CUDA
5636         package unless necessary; rename local Tmp variable; iterate
5637         with procedural Next.
5639 2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
5641         * sem_ch3.adb (Array_Type_Declaration): Refine type of a local
5642         variable.
5643         (Make_Index): Simplify to avoid assignment with a type entity
5644         and then backtracking by reassigning to Empty; remove excessive
5645         whitespace.
5646         * sem_ch9.adb (Analyze_Entry_Body): Remove extra parens.
5648 2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
5650         * sem_ch3.adb (Access_Subprogram_Declaration): Remove extra
5651         parens.
5652         (Make_Index): Remove excessive calls to Is_Type.
5654 2020-10-15  Arnaud Charlet  <charlet@adacore.com>
5656         * sem_util.adb (Enter_Name): Remove unnecessary conditions in
5657         Enter_Name that come from the beginning of times.
5659 2020-10-15  Bob Duff  <duff@adacore.com>
5661         * exp_ch6.adb (Expand_Simple_Function_Return): Remove DSP part
5662         of comment, and reformat.
5664 2020-10-15  Boris Yakobowski  <yakobowski@adacore.com>
5666         * exp_attr.adb (Expand_N_Attribute_Reference): Do not expand
5667         'Initialized in CodePeer mode.
5669 2020-10-15  Arnaud Charlet  <charlet@adacore.com>
5671         * sem_ch12.adb (Reset_Entity): Protect against malformed tree.
5673 2020-10-15  Arnaud Charlet  <charlet@adacore.com>
5675         * sem_ch13.adb (Add_Predicates): Prevent analyzing twice the
5676         same pragma in case an inner package references the type with a
5677         predicate (as opposed to defining the type).
5679 2020-10-15  Eric Botcazou  <ebotcazou@adacore.com>
5681         * libgnat/a-cfinve.adb (Int): Use subtype of Long_Long_Integer.
5682         * libgnat/a-cofove.adb (Int): Likewise.
5683         * libgnat/a-cgcaso.adb (T): Likewise.
5684         * libgnat/a-cogeso.adb (T): Likewise.
5685         * libgnat/g-debpoo.ads (Byte_Count): Use Long_Long_Integer'Size.
5687 2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
5689         * sem_ch12.adb: Replace list of N_Defining_... enumerations with
5690         N_Entity.
5692 2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
5694         * sem_ch3.ads, sem_ch3.adb (Make_Index): Refined type of
5695         parameter.
5696         (Constrain_Index): Likewise.
5697         (Array_Type_Declaration): Refine type of a local counter
5698         variable; remove a trivially useless initialization.
5700 2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
5702         * sem_ch3.adb (Analyze_Subtype_Declaration): Recognize both
5703         identifiers and expanded names; use high-level Is_Scalar_Type
5704         instead of low-level membership test.
5706 2020-10-15  Arnaud Charlet  <charlet@adacore.com>
5708         * sem_eval.adb (Eval_Intrinsic_Call, Fold_Shift): Add support
5709         for Shift_Right_Arithmetic and for signed integers.
5710         * exp_ch4.adb (Expand_N_Op_Rotate_Left,
5711         Expand_N_Op_Rotate_Right, Expand_N_Op_Shift_Left,
5712         Expand_N_Op_Shift_Right_Arithmetic): Minor reformatting and code
5713         cleanup to ensure a consistent handling. Update comments and add
5714         assertion.
5716 2020-10-15  Bob Duff  <duff@adacore.com>
5718         * sem_ch13.adb (Visible_Component): Enable this code for task
5719         and protected types, as well as record and private types.
5720         * sem_ch13.ads (Replace_Type_References_Generic): Update
5721         comment.  Move the efficiency comment into the body, because
5722         it's about the implementation.
5724 2020-10-15  Arnaud Charlet  <charlet@adacore.com>
5726         * par-ch13.adb (Get_Aspect_Specifications): Generate a warning
5727         rather than an error on unknown aspects unless -gnatd2 is used.
5728         (Aspect_Specifications_Present): Improve detection of unknown
5729         aspects.
5730         * debug.adb (Debug_Flag_2): Update document.
5732 2020-10-15  Arnaud Charlet  <charlet@adacore.com>
5734         * sem_res.adb (Resolve_Call): Do not try to inline intrinsic
5735         calls.
5737 2020-10-15  Ed Schonberg  <schonberg@adacore.com>
5739         * exp_aggr.adb (Expand_N_Aggregate): A record aggregate requires
5740         a non-private type.
5741         * sem_ch13.adb (Valid_Assign_Indexed): New subprogram local to
5742         Resolve_Aspect_Aggregate, to handle the case when the
5743         corresponding name appearing in the aspect specification for an
5744         indexed aggregate is an overloaded operation.
5745         * libgnat/a-convec.ads, libgnat/a-convec.adb,
5746         libgnat/a-coinve.ads, libgnat/a-coinve.adb,
5747         libgnat/a-cobove.ads, libgnat/a-cobove.adb,
5748         libgnat/a-cdlili.ads, libgnat/a-cdlili.adb,
5749         libgnat/a-cbdlli.ads, libgnat/a-cbdlli.adb,
5750         libgnat/a-cohama.ads, libgnat/a-cihama.ads,
5751         libgnat/a-cbhama.ads, libgnat/a-cborma.ads,
5752         libgnat/a-ciorma.ads, libgnat/a-coorma.ads,
5753         libgnat/a-cihase.ads, libgnat/a-cohase.ads,
5754         libgnat/a-cbhase.ads, libgnat/a-cborse.ads,
5755         libgnat/a-ciorse.ads, libgnat/a-coorse.ads: Add Ada_2020 aspect
5756         Aggregate to types declared in standard containers, as well as
5757         new subprograms where required.
5759 2020-10-15  Arnaud Charlet  <charlet@adacore.com>
5761         * libgnat/g-arrspl.ads, libgnat/g-arrspl.adb (Create,
5762         First_Cursor, Advance, Has_Element): New.
5764 2020-10-15  Arnaud Charlet  <charlet@adacore.com>
5766         * Makefile.rtl: Add target pair for interfac.ads.
5767         * libgnat/interfac.ads: Add a comment.
5768         * libgnat/interfac__2020.ads: New, used for bootstrap purposes.
5769         * sem_util.adb (Is_Static_Function): Always return False for pre
5770         Ada 2020 to e.g. ignore the Static aspect in Interfaces for
5771         Ada < 2020.
5773 2020-10-15  Piotr Trojanek  <trojanek@adacore.com>
5775         * exp_util.adb (Remove_Side_Effects): Move special-casing for
5776         GNATprove to be applied to all object declarations.
5778 2020-10-12  Alexandre Oliva  <oliva@adacore.com>
5780         * libgnat/a-ngelfu.ads (Sin, Cos): Make the single-argument
5781         functions inline.
5783 2020-10-11  Alexandre Oliva  <oliva@adacore.com>
5785         * libgnat/a-numaux.ads: Make all imports Intrinsic.
5786         * libgnat/a-numaux__darwin.ads: Likewise.
5787         * libgnat/a-numaux__libc-x86.ads: Likewise.
5788         * libgnat/a-numaux__vxworks.ads: Likewise.
5790 2020-09-28  Eric Botcazou  <ebotcazou@adacore.com>
5792         * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the end locus
5793         of body and declaration earlier.
5795 2020-09-28  Eric Botcazou  <ebotcazou@adacore.com>
5797         * gcc-interface/decl.c (maybe_saturate_size): Add ALIGN parameter
5798         and round down the result to ALIGN.
5799         (gnat_to_gnu_entity): Adjust calls to maybe_saturate_size.
5801 2020-09-14  Jakub Jelinek  <jakub@redhat.com>
5803         * gcc-interface/trans.c (gigi): Adjust build_optimization_node
5804         caller.
5806 2020-09-12  Eric Botcazou  <ebotcazou@adacore.com>
5808         * fe.h: Fix pilot error in previous change.
5809         * gcc-interface/gigi.h (enum standard_datatypes): Add ADT_mulv128_decl.
5810         (mulv128_decl): New macro.
5811         (get_target_long_long_long_size): Declare.
5812         * gcc-interface/decl.c (gnat_to_gnu_entity): Use a maximum size of
5813         128 bits for discrete types if Enable_128bit_Types is true.
5814         * gcc-interface/targtyps.c: Include target.h.
5815         (get_target_long_long_long_size): New function.
5816         * gcc-interface/trans.c (gigi): Initialize mulv128_decl if need be.
5817         (build_binary_op_trapv): Call it for 128-bit multiplication.
5818         * gcc-interface/utils.c (make_type_from_size): Enforce a maximum
5819         size of 128 bits if Enable_128bit_Types is true.
5821 2020-09-12  Eric Botcazou  <ebotcazou@adacore.com>
5823         * gcc-interface/trans.c (lvalue_for_aggr_p) <N_Object_Declaration>:
5824         Return false unconditionally.
5826 2020-09-12  Eric Botcazou  <ebotcazou@adacore.com>
5828         * gcc-interface/trans.c (gnat_to_gnu) <N_Object_Declaration>: Clear
5829         the SLOC of the expression of a tag.
5831 2020-09-12  Eric Botcazou  <ebotcazou@adacore.com>
5833         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Only give
5834         a warning for the overlay of an aliased array with an unconstrained
5835         nominal subtype if the address is absolute.
5837 2020-09-11  Eric Botcazou  <ebotcazou@adacore.com>
5839         * gcc-interface/utils.c (type_has_variable_size): New function.
5840         (create_field_decl): In the packed case, also force byte alignment
5841         when the type of the field has variable size.
5843 2020-09-11  Eric Botcazou  <ebotcazou@adacore.com>
5845         * gcc-interface/misc.c (get_array_bit_stride): Return TYPE_ADA_SIZE
5846         for record and union types.
5848 2020-09-11  Eric Botcazou  <ebotcazou@adacore.com>
5850         * gcc-interface/misc.c (gnat_get_fixed_point_type): Bail out only
5851         when the GNAT encodings are specifically used.
5853 2020-09-11  Eric Botcazou  <ebotcazou@adacore.com>
5855         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Only
5856         create extra subtypes for discriminants if the RM size of the base
5857         type of the index type is lower than that of the index type.
5859 2020-09-10  Eric Botcazou  <ebotcazou@adacore.com>
5861         * gcc-interface/decl.c (set_rm_size): Do not take into account the
5862         Value_Size clause if it is not for the entity itself.
5864 2020-09-10  Eric Botcazou  <ebotcazou@adacore.com>
5866         * gcc-interface/decl.c (build_subst_list): For a definition, make
5867         sure to instantiate the SAVE_EXPRs generated by the elaboration of
5868         the constraints in front of the elaboration of the type itself.
5870 2020-09-10  Eric Botcazou  <ebotcazou@adacore.com>
5872         * gcc-interface/misc.c: Include tree-pass.h.
5873         (internal_error_function): Call emergency_dump_function.
5875 2020-09-03  Arnaud Charlet  <charlet@adacore.com>
5877         * fe.h, opt.ads (Enable_128bit_Types): New.
5878         * stand.ads (Standard_Long_Long_Long_Integer,
5879         S_Long_Long_Long_Integer): New.
5881 2020-09-03  Arnaud Charlet  <charlet@adacore.com>
5883         * sem_util.ads, sem_util.adb (Get_Fullest_View): New procedure.
5884         * exp_unst.adb (Check Static_Type): Do all processing on fullest
5885         view of specified type.
5887 2020-08-27  Martin Liska  <mliska@suse.cz>
5889         * gcc-interface/trans.c (gigi): Set exact argument of a vector
5890         growth function to true.
5891         (Attribute_to_gnu): Likewise.
5893 2020-07-27  Alexandre Oliva  <oliva@adacore.com>
5895         * switch.adb (Is_Internal_GCC_Switch): Revert accidental
5896         reintroduction of auxbase and auxbase-strip.
5898 2020-07-27  Javier Miranda  <miranda@adacore.com>
5900         * sem_res.adb (Resolve_Actuals): Restrict the check on matching
5901         aliased components to view conversions of array types that are
5902         not placed in an instance. In such case at runtime an object is
5903         created.
5904         * sem_util.ads (Is_Actual_In_Out_Parameter, Is_View_Conversion):
5905         New subprograms.
5906         * sem_util.adb (Is_Actual_In_Out_Parameter, Is_View_Conversion):
5907         New subprograms.
5909 2020-07-27  Arnaud Charlet  <charlet@adacore.com>
5911         * lib-xref.adb (Generate_Reference): Protect against malformed
5912         tree in case of severe errors.
5913         * sem_ch8.adb (Add_Implicit_Operator): Ditto.
5915 2020-07-27  Arnaud Charlet  <charlet@adacore.com>
5917         * opt.ads (Ada_Version_Runtime): Set to Ada_2020.
5918         * sem_ch3.adb (Analyze_Subtype_Declaration): Propagate
5919         Is_Independent flag to subtypes.
5920         * libgnarl/s-taprop__linux.adb: Adapt to Ada 2020 warning.
5921         * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
5922         libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
5923         libgnat/a-nbnbre.ads, libgnat/a-stobbu.adb,
5924         libgnat/a-stobbu.ads, libgnat/a-stobfi.adb,
5925         libgnat/a-stobfi.ads, libgnat/a-stoubu.adb,
5926         libgnat/a-stoubu.ads, libgnat/a-stoufi.adb,
5927         libgnat/a-stoufi.ads, libgnat/a-stoufo.adb,
5928         libgnat/a-stoufo.ads, libgnat/a-stouut.adb,
5929         libgnat/a-stouut.ads, libgnat/a-strsto.ads,
5930         libgnat/a-ststbo.adb, libgnat/a-ststbo.ads,
5931         libgnat/a-ststun.adb, libgnat/a-ststun.ads,
5932         libgnat/a-stteou.ads, libgnat/s-aoinar.ads,
5933         libgnat/s-aomoar.ads, libgnat/s-atopex.ads,
5934         libgnat/s-putaim.adb, libgnat/s-putaim.ads,
5935         libgnat/s-putima.adb, libgnat/s-putima.ads: Remove pragma
5936         Ada_2020, now redundant.
5938 2020-07-27  Justin Squirek  <squirek@adacore.com>
5940         * exp_ch6.adb (Expand_Call_Helper): Modify addition of the extra
5941         accessibility parameter to take into account the extra
5942         accessibility of formals within the calling subprogram.
5944 2020-07-27  Bob Duff  <duff@adacore.com>
5946         * exp_imgv.adb (Expand_Image_Attribute): Add Root_Type, so
5947         constrained subtypes work.
5949 2020-07-27  Ghjuvan Lacambre  <lacambre@adacore.com>
5951         * exp_prag.adb (Arg1, Arg2, Arg3): Removed.
5952         (Arg_N): New function.
5954 2020-07-27  Arnaud Charlet  <charlet@adacore.com>
5956         * sem_ch8.adb (Analyze_Object_Renaming): Allow values in Ada
5957         2020 mode.
5959 2020-07-27  Arnaud Charlet  <charlet@adacore.com>
5961         * sem_res.adb (Resolve_Actuals): Refine 6.4.1 rules as per
5962         AI12-0377.
5964 2020-07-27  Bob Duff  <duff@adacore.com>
5966         * errout.ads, errout.adb (Error_Msg_Ada_2020_Feature): New
5967         procedure analogous to Error_Msg_Ada_2012_Feature.
5968         * sem_attr.adb (Analyze_Image_Attribute): Use
5969         Error_Msg_Ada_2012_Feature and Error_Msg_Ada_2020_Feature to
5970         indicate that Object'Image is allowed in Ada 2012, and that
5971         'Image is allowed for any type in Ada 2020.
5973 2020-07-27  Dmitriy Anisimkov  <anisimko@adacore.com>
5975         * libgnat/a-strunb.adb (Sum, Mul, Saturated_Sum, Saturated_Mul):
5976         New routines.  Use them when resulting string size more that
5977         length of the strings in parameters.
5978         (Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side
5979         of condition to avoid overflow.
5980         * libgnat/a-strunb__shared.adb (Sum, Mul): New routines.
5981         (Allocate): New routine with 2 parameters.  Use routine above
5982         when resulting string size more that length of the strings in
5983         parameters.
5984         (Aligned_Max_Length): Do not try to align to more than Natural'Last.
5985         (Unbounded_Slice): Use "- 1" instead of "+ 1" in opposite side
5986         of condition to avoid overflow.
5988 2020-07-27  Arnaud Charlet  <charlet@adacore.com>
5990         * sem_attr.adb (Resolve_Attribute): Remove dead code.
5992 2020-07-27  Arnaud Charlet  <charlet@adacore.com>
5994         * aspects.adb, atree.adb, atree.ads, checks.adb, contracts.adb,
5995         einfo.adb, errout.adb, exp_aggr.adb, exp_attr.adb, exp_cg.adb,
5996         exp_ch11.adb, exp_ch2.adb, exp_ch3.adb, exp_ch4.adb,
5997         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch8.adb, exp_ch9.adb,
5998         exp_dbug.adb, exp_disp.adb, exp_intr.adb, exp_pakd.adb,
5999         exp_prag.adb, exp_put_image.adb, exp_smem.adb, exp_tss.adb,
6000         exp_unst.adb, exp_util.adb, freeze.adb, ghost.adb, gnat1drv.adb,
6001         inline.adb, lib-writ.adb, lib-xref-spark_specific.adb,
6002         lib-xref.adb, namet.adb, namet.ads, nlists.adb, par-ch10.adb,
6003         par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
6004         par-prag.adb, par-util.adb, par_sco.adb, pprint.adb,
6005         repinfo.adb, restrict.adb, rtsfind.adb, scil_ll.adb, sem.adb,
6006         sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb,
6007         sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch13.adb,
6008         sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch7.adb,
6009         sem_ch8.adb, sem_ch9.adb, sem_dim.adb, sem_disp.adb,
6010         sem_dist.adb, sem_elab.adb, sem_elim.adb, sem_eval.adb,
6011         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
6012         sem_scil.adb, sem_type.adb, sem_util.adb, sem_warn.adb,
6013         sinfo.adb, sinfo.ads, sprint.adb, styleg.adb, tbuild.adb,
6014         treepr.adb (Nkind_In, Nam_In, Ekind_In): Removed, replaced by
6015         membership tests.
6017 2020-07-27  Gary Dismukes  <dismukes@adacore.com>
6019         * sem_prag.adb (Analyze_Pragma, Pragma_Max_Entry_Queue_Length):
6020         Refine error message to indicate that the pragma must apply to
6021         an entry declaration, not just an entry.
6023 2020-07-27  Javier Miranda  <miranda@adacore.com>
6025         * exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator):
6026         Revert previous patch, and add a missing type conversion to
6027         displace the pointer to the allocated object to reference the
6028         target dispatch table.
6030 2020-07-27  Javier Miranda  <miranda@adacore.com>
6032         * sem_res.adb (Resolve_Actuals): Restore restrictive check on
6033         view conversions which required matching value of
6034         Has_Aliased_Components of formals and actuals. Required to avoid
6035         the regression of ACATS b460005.
6037 2020-07-27  Eric Botcazou  <ebotcazou@adacore.com>
6039         * sem_ch12.adb (Instantiate_Package_Body): Add commentary for a
6040         nesting issue with parent handling and private view switching.
6041         (Switch_View): Do not skip specific private-dependent subtypes.
6043 2020-07-27  Patrick Bernardi  <bernardi@adacore.com>
6045         * Makefile.rtl: Remove X86_TARGET_PAIRS for x86-lynx178elf.
6047 2020-07-27  Ed Schonberg  <schonberg@adacore.com>
6049         * sem_ch13.adb (Analyze_Address_Specification_Clause): Do not
6050         emit a warning when a constant declaration in a generic unit
6051         overlays a generic In_Parameter.
6053 2020-07-27  Gary Dismukes  <dismukes@adacore.com>
6055         * sem_ch3.adb (Check_Abstract_Overriding): Remove Scope
6056         comparison test from test related to initial implementation of
6057         AI12-0042, plus remove the related ??? comment.
6058         (Derive_Subprogram): Add test requiring that the type extension
6059         appear in the visible part of its enclosing package when
6060         checking the overriding requirement of 7.3.2(6.1/4), as
6061         clarified by AI12-0382.
6063 2020-07-27  Piotr Trojanek  <trojanek@adacore.com>
6065         * exp_spark.adb (Expand_SPARK_N_Attribute_Reference) Extend
6066         existing workaround to 'Pos.
6068 2020-07-27  Bob Duff  <duff@adacore.com>
6070         * libgnat/s-rannum.ads, libgnat/s-rannum.adb: Add Put_Image.
6071         This will be inherited by the language-defined packages
6072         Ada.Numerics.Discrete_Random and Ada.Numerics.Float_Random.
6073         * libgnat/a-convec.ads, libgnat/a-convec.adb: Add Put_Image.
6074         * libgnat/s-putima.ads: Add pragma Preelaborate, so this can be
6075         imported into containers packages.
6076         * libgnat/s-putima.adb: Move Digit to private part; otherwise
6077         reference to Base is illegal in Preelaborate generic.
6078         * exp_put_image.adb (Build_Record_Put_Image_Procedure): Use the
6079         base type.
6081 2020-07-23  Arnaud Charlet  <charlet@adacore.com>
6083         * aspects.ads: Declare CUDA_Global as aspect.
6084         * einfo.ads: Use Flag118 for the Is_CUDA_Kernel flag.
6085         (Set_Is_CUDA_Kernel): New function.
6086         (Is_CUDA_Kernel): New function.
6087         * einfo.adb (Set_Is_CUDA_Kernel): New function.
6088         (Is_CUDA_Kernel): New function.
6089         * par-prag.adb (Prag): Ignore Pragma_CUDA_Execute and
6090         Pragma_CUDA_global.
6091         * rtsfind.ads: Define CUDA.Driver_Types.Stream_T and
6092         CUDA.Vector_Types.Dim3 entities
6093         * rtsfind.adb: Define CUDA_Descendant subtype.
6094         (Get_Unit_Name): Handle CUDA_Descendant packages.
6095         * sem_prag.ads: Mark CUDA_Global as aspect-specifying pragma.
6096         * sem_prag.adb (Analyze_Pragma): Validate Pragma_CUDA_Execute and
6097         Pragma_CUDA_Global.
6098         * snames.ads-tmpl: Define Name_CUDA_Execute and Name_CUDA_Global.
6100 2020-07-23  Arnaud Charlet  <charlet@adacore.com>
6102         * sem_ch13.ads (Same_Representation): Renamed as
6103         Has_Compatible_Representation because now the order of the arguments
6104         are taken into account; its formals are also renamed as Target_Type
6105         and Operand_Type.
6106         * sem_ch13.adb (Same_Representation): Renamed and moved to place the
6107         routine in alphabetic order.
6108         * sem_attr.adb (Prefix_With_Safe_Accessibility_Level): New subprogram.
6109         (Resolve_Attribute): Check that the prefix of attribute Access
6110         does not have a value conversion of an array type.
6111         * sem_res.adb (Resolve_Actuals): Remove restrictive check on view
6112         conversions which required matching value of Has_Aliased_Components of
6113         formals and actuals.
6114         * exp_ch4.adb (Handle_Changed_Representation): Update call to
6115         Same_Representation.
6116         (Expand_N_Type_Conversion): Update call to Same_Representation.
6117         * exp_ch5.adb (Change_Of_Representation): Update call to
6118         Same_Representation.
6119         * exp_ch6.adb (Add_Call_By_Copy_Code): Update call to
6120         Same_Representation.
6121         (Expand_Actuals): Update call to Same_Representation.
6122         (Expand_Call_Helper): Update call to Same_Representation.
6124 2020-07-23  Arnaud Charlet  <charlet@adacore.com>
6126         * output.ads (Push_Output, Pop_Output): New procedures.
6127         * output.adb (FD_Array, FD_Stack, FD_Stack_Idx): New type and vars.
6128         (Push_Output, Pop_Output): New procedures.
6130 2020-07-16  Javier Miranda  <miranda@adacore.com>
6132         * exp_ch3.adb (Expand_N_Full_Type_Declaration): Ensure a _master
6133         declaration on limited types that might have tasks.
6134         * exp_ch9.adb (Build_Master_Renaming): For private types, if we
6135         are processing declarations in the private part, ensure that
6136         master is inserted before its full declaration; otherwise the
6137         master renaming may be inserted in the public part of the
6138         package (and hence before the declaration of its _master
6139         variable).
6141 2020-07-16  Arnaud Charlet  <charlet@adacore.com>
6143         * sem_ch8.adb (Analyze_Subprogram_Renaming): A renames-as-body
6144         freezes the expression of any expression function that it
6145         renames.
6147 2020-07-16  Ed Schonberg  <schonberg@adacore.com>
6149         * sem_aggr.adb (Resolve_Container_Aggregate): Add semantic
6150         checks for indexed aggregates, including component associations
6151         and iterated component associations.
6152         * exp_aggr.adb (Expand_Iterated_Component): New subprogram,
6153         subsidiary of Expand_Container_Aggreggate, used for positional,
6154         named, and indexed aggregates.
6155         (Aggregate_Size): New subprogram to precompute the size of an
6156         indexed aggregate prior to call to allocate it.
6157         (Expand_Range_Component): New subprogram so generate loop for a
6158         component association given by a range or a subtype name in an
6159         indexed aggregate.
6161 2020-07-16  Bob Duff  <duff@adacore.com>
6163         * bindo-diagnostics.adb (Output_Invocation_Related_Suggestions):
6164         Use Cumulative_Restrictions.Set, because Restriction_Active only
6165         works at compile time.
6167 2020-07-16  Bob Duff  <duff@adacore.com>
6169         * gnatbind.adb (Gnatbind): For No_Tasks_Unassigned_To_CPU, check
6170         that CPU has been set on the main subprogram.
6171         (Restriction_Could_Be_Set): Don't print
6172         No_Tasks_Unassigned_To_CPU if it would violate the
6173         above-mentioned rule. Up to now, all restrictions were checked
6174         by the compiler, with the binder just checking for consistency.
6175         But the compiler can't know which subprogram is the main, so
6176         it's impossible to check this one at compile time.
6177         * restrict.ads, restrict.adb: Misc refactoring. Change Warning
6178         to Warn, for consistency, since most already use Warn.
6179         (Set_Restriction): New convenience routine.
6180         * sem_ch13.adb (Attribute_CPU): Check
6181         No_Tasks_Unassigned_To_CPU.
6182         * sem_prag.adb (Pragma_CPU): Check No_Tasks_Unassigned_To_CPU.
6183         Misc refactoring.
6184         * tbuild.ads, tbuild.adb (Sel_Comp): New functions for building
6185         selected components.
6187 2020-07-16  Eric Botcazou  <ebotcazou@adacore.com>
6189         * impunit.adb (Non_Imp_File_Names_95): Remove duplicate entry.
6191 2020-07-16  Arnaud Charlet  <charlet@adacore.com>
6193         * Makefile.rtl: replace a-numaux__x86.ads by
6194         a-numaux__libc-x86.ads and a-numaux__x86.adb by
6195         a-numaux__dummy.adb.
6196         * libgnat/a-numaux__x86.ads, libgnat/a-numaux__x86.adb: Removed.
6197         * libgnat/a-numaux__dummy.adb: New.
6199 2020-07-16  Ed Schonberg  <schonberg@adacore.com>
6201         * sem_ch12.adb (Load_Parent_Of_Generic): If an ancestor is an
6202         instance whose source appears within a formal package of the
6203         current unit, there is no body of the ancestor needed to
6204         complete the current generic compilation.
6206 2020-07-16  Doug Rupp  <rupp@adacore.com>
6208         * libgnat/s-thread__ae653.adb (taskVarAdd): Defunct, so remove.
6209         (Current_ATSD):  Make it a TLS variable.
6210         (OK): Move to package scope.
6211         (System.Storage_Elements): Import and Use.
6213 2020-07-16  Eric Botcazou  <ebotcazou@adacore.com>
6215         * exp_ch9.adb (Expand_N_Accept_Statement): Set Parent of the
6216         created block entity to the created block statement.
6218 2020-07-16  Arnaud Charlet  <charlet@adacore.com>
6220         * scng.adb (Scan): Detect wide characters not in NFKC.
6221         * libgnat/a-chahan.adb, libgnat/a-chahan.ads,
6222         libgnat/a-wichha.adb, libgnat/a-wichha.ads,
6223         libgnat/a-wichun.adb, libgnat/a-wichun.ads,
6224         libgnat/a-zchhan.adb, libgnat/a-zchhan.ads,
6225         libgnat/a-zchuni.adb, libgnat/a-zchuni.ads (Is_NFKC): New.
6226         * libgnat/s-utf_32.ads, libgnat/s-utf_32.adb (Is_UTF_32_NFKC):
6227         New.
6229 2020-07-16  Bob Duff  <duff@adacore.com>
6231         * libgnat/s-rident.ads (Restriction_Id): Add
6232         No_Tasks_Unassigned_To_CPU.
6234 2020-07-16  Bob Duff  <duff@adacore.com>
6236         * exp_aggr.adb (Max_Aggregate_Size): Use the small size of 64
6237         when copying is needed (for example, for the initialization of a
6238         local variable, and for assignment statements). Use the larger
6239         size when static allocation can be done without copying.
6241 2020-07-16  Bob Duff  <duff@adacore.com>
6243         * libgnat/s-rident.ads (No_Dynamic_CPU_Assignment): New
6244         restriction. Add it to all relevant profiles.
6245         * sem_ch13.adb (Attribute_CPU): Check No_Dynamic_CPU_Assignment
6246         restriction.
6247         (Attribute_CPU, Attribute_Dispatching_Domain,
6248         Attribute_Interrupt_Priority): Remove error checks -- these are
6249         checked in the parser.
6250         * sem_prag.adb (Pragma_CPU): Check No_Dynamic_CPU_Assignment
6251         restriction.  We've got a little violation of DRY here.
6252         * sem.ads, sem_ch3.ads: Minor comment fix.
6254 2020-07-16  Gary Dismukes  <dismukes@adacore.com>
6256         * sem_ch4.adb (Try_Container_Indexing): When the prefix type is
6257         an access type, change it to the designated type, change the
6258         prefix to an explicit dereference, and emit a ?d? warning for
6259         the implicit dereference. Include a ??? comment questioning
6260         whether this is the right context in which to perform the
6261         implicit dereferencing.
6263 2020-07-16  Arnaud Charlet  <charlet@adacore.com>
6265         * sem_ch13.adb (Validate_Literal_Aspect): Ensure that the
6266         parameter is not aliased. Minor reformatting.
6267         * sem_util.adb (Statically_Names_Object): Update comment.
6269 2020-07-16  Ghjuvan Lacambre  <lacambre@adacore.com>
6271         * sem_case.adb (Build_Choice): Set Is_Static_Expression flag.
6272         (Lit_Of): Update specification to mention Is_Static_Expression
6273         flag.
6274         * sem_ch13.adb (Membership_Entry): Check for N_Others_Choice.
6276 2020-07-16  Bob Duff  <duff@adacore.com>
6278         * sem_ch6.adb (Null_Exclusions_Match): New function to check
6279         that the null exclusions match, including in the case addressed
6280         by this AI.
6281         (Check_Conformance): Remove calls to Comes_From_Source
6282         when calling Null_Exclusions_Match. These are not
6283         needed, as indicated by an ancient "???" comment.
6285 2020-07-16  Justin Squirek  <squirek@adacore.com>
6287         * exp_ch4.adb (Expand_N_Type_Conversion): Remove flawed test for
6288         whether "statically deeper" accessibility rules apply to a given
6289         target type and instead use the new routine
6290         Statically_Deeper_Relation_Applies.
6291         (Statically_Deeper_Relation_Applies): Created to centralize the
6292         calculation of whether a target type within a conversion must
6293         have static accessibility checks.
6294         * sem_ch13.adb (Check_One_Function): Minor comment revision.
6296 2020-07-16  Eric Botcazou  <ebotcazou@adacore.com>
6298         * fe.h (Is_OK_Static_Expression): Delete.
6299         * sem_eval.ads (Is_OK_Static_Expression): Remove WARNING note.
6301 2020-07-16  Justin Squirek  <squirek@adacore.com>
6303         * einfo.adb, einfo.ads (Is_Named_Access_Type): Created for
6304         readability.
6305         * sem_ch6.adb (Check_Return_Construct_Accessibility): Add
6306         special cases for formals.
6307         * sem_util.adb (Object_Access_Level): Add handling of access
6308         attributes and named access types in the general case.
6310 2020-07-16  Piotr Trojanek  <trojanek@adacore.com>
6312         * sem_case.adb (Build_Choice): Simplify.
6314 2020-07-16  Arnaud Charlet  <charlet@adacore.com>
6316         * frontend.adb: Disable Initialize_Scalars on runtime files.
6318 2020-07-16  Ghjuvan Lacambre  <lacambre@adacore.com>
6320         * sem_ch3.adb (Analyze_Object_Declaration): Add
6321         Comes_From_Source call.
6323 2020-07-16  Javier Miranda  <miranda@adacore.com>
6325         * exp_attr.adb (Expand_Access_To_Protected_Op): Initialize
6326         variable Sub to Empty to avoid false positive reported by
6327         Codepeer.
6329 2020-07-16  Arnaud Charlet  <charlet@adacore.com>
6331         * sem_ch8.adb (Note_Redundant_Use): Add missing warning tag.
6332         Do not check for redundant use clauses in predefined units to avoid
6333         misleading warnings that may occur as part of a rtsfind load.
6335 2020-07-16  Javier Miranda  <miranda@adacore.com>
6337         * exp_attr.adb (Has_By_Protected_Procedure_Prefixed_View): New
6338         subprogram.
6339         (Expand_Access_To_Protected_Op): Adding support for prefixed
6340         class-wide view with By_Protected_Procedure convention.
6341         * sem_attr.adb (Get_Convention): New subprogram.
6342         (Get_Kind): Adapted to use Get_Convention.
6343         * sem_ch4.adb (Try_By_Protected_Procedure_Prefixed_View): New
6344         subprogram.
6345         (Analyze_Selected_Component): Invoke
6346         Try_By_Protected_Procedure_Prefixed_View.
6347         * sem_util.ads (Is_By_Protected_Procedure): New subprogram.
6348         * sem_util.adb (Is_By_Protected_Procedure): New subprogram.
6350 2020-07-16  Arnaud Charlet  <charlet@adacore.com>
6352         * libgnat/s-ststop.ads: Fix typo.
6353         * libgnat/s-ststop.adb (Read, Write): Fix block number
6354         computation to avoid overflows in case of large strings.
6356 2020-07-16  Arnaud Charlet  <charlet@adacore.com>
6358         * libgnat/s-genbig.adb ("**"): Remove capacity limit check.
6359         Improve code by using an extended return.
6360         (Normalize): Perform capacity limit check here instead which is
6361         the centralized place where (potentially large) big integers are
6362         allocated.
6364 2020-07-16  Gary Dismukes  <dismukes@adacore.com>
6366         * exp_ch4.adb (Expand_N_Type_Conversion): Handle the case of
6367         applying an invariant check for a conversion to a class-wide
6368         type whose root type has a type invariant, when the conversion
6369         appears within the immediate scope of the type and the
6370         expression is of a specific tagged type.
6371         * sem_ch3.adb (Is_Private_Primitive): New function to determine
6372         whether a primitive subprogram is a private operation.
6373         (Check_Abstract_Overriding): Enforce the restriction imposed by
6374         AI12-0042 of requiring overriding of an inherited nonabstract
6375         private operation when the ancestor has a class-wide type
6376         invariant and the ancestor's private operation is visible.
6377         (Derive_Subprogram): Set Requires_Overriding on a subprogram
6378         inherited from a visible private operation of an ancestor to
6379         which a Type_Invariant'Class expression applies.
6381 2020-07-15  Piotr Trojanek  <trojanek@adacore.com>
6383         * sem_util.adb (Find_Overlaid_Entity): Fix style in comment.
6384         (Note_Possible_Modification): Simplify repeated calls to Ekind.
6386 2020-07-15  Eric Botcazou  <ebotcazou@adacore.com>
6388         * exp_aggr.adb (Flatten): Adjust description.
6389         (Convert_To_Positional): Remove obsolete ??? comment and use
6390         Compile_Time_Known_Value in the final test.
6392 2020-07-15  Arnaud Charlet  <charlet@adacore.com>
6394         * par-ch4.adb (P_Iterated_Component_Association): Extended to
6395         recognzize the similar Iterated_Element_Association. This node
6396         is only generated when an explicit Key_Expression is given.
6397         Otherwise the distinction between the two iterated forms is done
6398         during semantic analysis.
6399         * sinfo.ads: New node N_Iterated_Element_Association, for
6400         Ada202x container aggregates.  New field Key_Expression.
6401         * sinfo.adb: Subprograms for new node and newn field.
6402         * sem_aggr.adb (Resolve_Iterated_Component_Association): Handle
6403         the case where the Iteration_Scheme is an
6404         Iterator_Specification.
6405         * exp_aggr.adb (Wxpand_Iterated_Component): Handle a component
6406         with an Iterated_Component_Association, generate proper loop
6407         using given Iterator_Specification.
6408         * exp_util.adb (Insert_Axtions): Handle new node as other
6409         aggregate components.
6410         * sem.adb, sprint.adb: Handle new node.
6411         * tbuild.adb (Make_Implicit_Loop_Statement): Handle properly a
6412         loop with an Iterator_ specification.
6414 2020-07-15  Arnaud Charlet  <charlet@adacore.com>
6416         * libgnat/s-stposu.adb (Allocate_Any_Controlled): Fix logic in
6417         lock/unlock.
6419 2020-07-15  Piotr Trojanek  <trojanek@adacore.com>
6421         * sem_util.adb (Is_Object_Reference): Return True on
6422         N_Target_Name.
6424 2020-07-15  Arnaud Charlet  <charlet@adacore.com>
6426         * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Add proper
6427         handling of Aspect_Predicate_Failure, consistent with
6428         Check_Aspect_At_Freeze_Point.
6430 2020-07-15  Arnaud Charlet  <charlet@adacore.com>
6432         * sem_ch13.adb (Check_Aspect_Too_Late): Mention -gnat2020 switch
6433         in error message.
6435 2020-07-15  Eric Botcazou  <ebotcazou@adacore.com>
6437         * einfo.ads (Delayed Freezing and Elaboration): Adjust description.
6438         * freeze.adb (Freeze_Object_Declaration): Likewise.
6439         * sem_ch3.adb (Delayed_Aspect_Present): Likewise.  Do not return
6440         true for Alignment.
6441         * sem_ch13.adb (Analyze_Aspect_Specifications): Do not always delay
6442         for Alignment.  Moreover, for Alignment and various Size aspects,
6443         do not delay if the expression is an attribute whose prefix is the
6444         Standard package.
6446 2020-07-15  Eric Botcazou  <ebotcazou@adacore.com>
6448         * exp_ch6.adb (Requires_Atomic_Or_Volatile_Copy): Return false
6449         inside an initialization procedure.
6451 2020-07-15  Ghjuvan Lacambre  <lacambre@adacore.com>
6453         * sem_util.adb (Is_Renaming): Add ekind checks.
6455 2020-07-15  Arnaud Charlet  <charlet@adacore.com>
6457         * doc/gnat_ugn/gnat_utility_programs.rst: Remove doc on obsolete
6458         tools.
6459         * gnat_ugn.texi: Regenerate.
6461 2020-07-15  Arnaud Charlet  <charlet@adacore.com>
6463         * sem_res.adb (Resolve_Type_Conversion): Protect against null
6464         entity.  Add proper tag for -gnatwr warning.
6466 2020-07-15  Arnaud Charlet  <charlet@adacore.com>
6468         * sem_ch6.adb (Analyze_Procedure_Call): Detect use of operators
6469         in a procedure call.
6470         * sem_util.adb: Minor edit.
6472 2020-07-15  Piotr Trojanek  <trojanek@adacore.com>
6474         * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Apply scalar
6475         range checks against the base type of an index type, not against
6476         the index type itself.
6478 2020-07-15  Eric Botcazou  <ebotcazou@adacore.com>
6480         * einfo.ads (Delayed Freezing and Elaboration): Minor tweaks.
6481         Document the discrepancy between the aspect and the non-aspect
6482         cases for alignment settings in object declarations.
6484 2020-07-15  Arnaud Charlet  <charlet@adacore.com>
6486         * exp_ch3.adb (Freeze_Type): Remove warning in expander,
6487         replaced by a corresponding error in sem_ch13.adb. Replace
6488         RTE_Available by RTU_Loaded to avoid adding unnecessary
6489         dependencies.
6490         * sem_ch13.adb (Associate_Storage_Pool): New procedure.
6491         (Analyze_Attribute_Definition_Clause
6492         [Attribute_Simple_Storage_Pool| Attribute_Storage_Pool]): Call
6493         Associate_Storage_Pool to add proper legality checks on
6494         subpools.
6496 2020-07-15  Yannick Moy  <moy@adacore.com>
6498         * libgnat/a-cbdlli.adb, libgnat/a-cbdlli.ads,
6499         libgnat/a-cbhama.adb, libgnat/a-cbhama.ads,
6500         libgnat/a-cbhase.adb, libgnat/a-cbhase.ads,
6501         libgnat/a-cbmutr.adb, libgnat/a-cbmutr.ads,
6502         libgnat/a-cborma.adb, libgnat/a-cborma.ads,
6503         libgnat/a-cborse.adb, libgnat/a-cborse.ads,
6504         libgnat/a-cbprqu.adb, libgnat/a-cbprqu.ads,
6505         libgnat/a-cbsyqu.adb, libgnat/a-cbsyqu.ads,
6506         libgnat/a-cdlili.adb, libgnat/a-cdlili.ads,
6507         libgnat/a-cidlli.adb, libgnat/a-cidlli.ads,
6508         libgnat/a-cihama.adb, libgnat/a-cihama.ads,
6509         libgnat/a-cihase.adb, libgnat/a-cihase.ads,
6510         libgnat/a-cimutr.adb, libgnat/a-cimutr.ads,
6511         libgnat/a-ciorma.adb, libgnat/a-ciorma.ads,
6512         libgnat/a-ciormu.adb, libgnat/a-ciormu.ads,
6513         libgnat/a-ciorse.adb, libgnat/a-ciorse.ads,
6514         libgnat/a-cohama.adb, libgnat/a-cohama.ads,
6515         libgnat/a-cohase.adb, libgnat/a-cohase.ads,
6516         libgnat/a-coinve.adb, libgnat/a-coinve.ads,
6517         libgnat/a-comutr.adb, libgnat/a-comutr.ads,
6518         libgnat/a-convec.adb, libgnat/a-convec.ads,
6519         libgnat/a-coorma.adb, libgnat/a-coorma.ads,
6520         libgnat/a-coormu.adb, libgnat/a-coormu.ads,
6521         libgnat/a-coorse.adb, libgnat/a-coorse.ads: Add SPARK_Mode =>
6522         Off.
6524 2020-07-15  Eric Botcazou  <ebotcazou@adacore.com>
6526         * sem_ch3.adb (Delayed_Aspect_Present): Fix oversight in loop.
6527         * freeze.adb (Freeze_Object_Declaration): Use Declaration_Node
6528         instead of Parent for the sake of consistency.
6530 2020-07-15  Javier Miranda  <miranda@adacore.com>
6532         * sem_attr.adb (Resolve_Attribute): Resolve overloaded
6533         N_Selected_Component prefix of 'Access. Required to handle
6534         overloaded prefixed view of protected subprograms.
6536 2020-07-15  Arnaud Charlet  <charlet@adacore.com>
6538         * doc/gnat_ugn/about_this_guide.rst: Remove old section and
6539         update for Ada 202x.
6540         * doc/gnat_ugn/getting_started_with_gnat.rst: Add a system
6541         requirements section. Remove obsolete section and minimal
6542         rewording on the getting started section.
6543         * gnat_ugn.texi: Regenerate.
6545 2020-07-15  Piotr Trojanek  <trojanek@adacore.com>
6547         * exp_ch5.adb (Expand_Assign_Array): Use short-circuit operator
6548         (style).
6549         * sem_res.adb (Resolve_Indexed_Component): Fix style in comment.
6550         * sem_util.adb (Is_Effectively_Volatile_Object): Handle slices
6551         just like indexed components; handle qualified expressions and
6552         type conversions lie in Is_OK_Volatile_Context.
6553         (Is_OK_Volatile_Context): Handle qualified expressions just like
6554         type conversions.
6556 2020-07-15  Piotr Trojanek  <trojanek@adacore.com>
6558         * sem_prag.adb (Atomic_Components): Simplify with Ekind_In.
6559         (Complex_Representation): Fix type of E_Id, which just like when
6560         for pragma Atomic_Components will hold an N_Identifier node, not
6561         an entity.
6562         * sem_util.adb (Is_Effectively_Volatile): Refactor to avoid
6563         unnecessary computation.
6565 2020-07-15  Arnaud Charlet  <charlet@adacore.com>
6567         * inline.adb, inline.ads
6568         (Inline_Static_Expression_Function_Call): Renamed
6569         Inline_Static_Function_Call.
6570         * sem_ch13.adb (Analyze_Aspect_Static): Allow static intrinsic
6571         imported functions under -gnatX.
6572         * sem_util.ads, sem_util.adb (Is_Static_Expression_Function):
6573         Renamed Is_Static_Function.
6574         (Is_Static_Expression_Function_Call): Renamed
6575         Is_Static_Function_Call.
6576         * sem_ch6.adb, sem_elab.adb, sem_res.adb: Update calls to
6577         Is_Static_Function*.
6578         * sem_eval.adb (Fold_Dummy, Eval_Intrinsic_Call, Fold_Shift):
6579         New.
6580         (Eval_Call): Add support for intrinsic calls, code refactoring.
6581         (Eval_Entity_Name): Code refactoring.
6582         (Eval_Logical_Op): Update comment.
6583         (Eval_Shift): Call Fold_Shift. Update comments.
6584         * par-prag.adb (Par [Pragma_Extensions_Allowed]): Set
6585         Ada_Version to Ada_Version_Type'Last to handle
6586         Extensions_Allowed (On) consistently.
6587         * opt.ads (Extensions_Allowed): Update documentation.
6588         * sem_attr.adb: Update comment.
6589         * doc/gnat_rm/implementation_defined_pragmas.rst: Update
6590         documentation of Extensions_Allowed.
6591         * gnat_rm.texi: Regenerate.
6593 2020-07-15  Arnaud Charlet  <charlet@adacore.com>
6595         * sem_aggr.adb (Resolve_Iterated_Component_Association): Ensure
6596         Typ is never accessed uninitialized.
6598 2020-07-15  Piotr Trojanek  <trojanek@adacore.com>
6600         * doc/gnat_rm/representation_clauses_and_pragmas.rst: Fix typo.
6601         * gnat_rm.texi: Regenerate.
6602         * libgnat/s-secsta.ads (Memory_Alignment): Likewise.
6604 2020-07-15  Gary Dismukes  <dismukes@adacore.com>
6606         * exp_ch6.adb: Add a comma and fix a typo (machinary =>
6607         machinery) in comment.
6608         * exp_aggr.adb: Reformat, fix capitalization, and add a couple
6609         of commas in a comment. Adjust columns in several code
6610         fragments.
6611         * sem_aggr.adb: Reformat and add a comma in a comment.
6613 2020-07-15  Eric Botcazou  <ebotcazou@adacore.com>
6615         * exp_ch9.adb (Expand_N_Timed_Entry_Call): Use the Sloc of
6616         the delay statement in the expansion.
6618 2020-07-15  Ed Schonberg  <schonberg@adacore.com>
6620         * sem_aggr.adb (Resolve_Iterated_Component_Association): New
6621         procedure, internal to Resolve_Container_Aggregate, to complete
6622         semantic analysis of Iterated_Component_Associations.
6623         * exp_aggr.adb (Expand_Iterated_Component): New procedure,
6624         internal to Expand_Container_Aggregate, to expand the construct
6625         into an implicit loop that performs individual insertions into
6626         the target aggregate.
6628 2020-07-15  Justin Squirek  <squirek@adacore.com>
6630         * exp_ch6.adb (Make_Build_In_Place_Call_Allocator): Normalize
6631         the associated node for internally generated objects to be like
6632         their SOAAT counter-parts.
6634 2020-07-15  Arnaud Charlet  <charlet@adacore.com>
6636         * libgnat/g-socket.adb (Wait_On_Socket): Fix potentially
6637         uninitialized variable.
6639 2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
6641         * sem_ch8.adb (Find_Direct_Name): Fix code to match the comment.
6643 2020-07-10  Eric Botcazou  <ebotcazou@adacore.com>
6645         * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Address>:
6646         Issue an unconditional warning for an overlay that changes the
6647         scalar storage order.
6649 2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
6651         * sem_ch8.adb (Is_Actual_Parameter): Fix processing when parent
6652         is a procedure call statement; extend comment.
6654 2020-07-10  Bob Duff  <duff@adacore.com>
6656         * sem_res.adb (Resolve_Expression_With_Actions): Check the rules
6657         of AI12-0368, and mark the declare expression as static or known
6658         at compile time as appropriate.
6659         * sem_ch4.adb: Minor reformatting.
6660         * libgnat/a-stoufo.ads, libgnat/a-stoufo.adb: Allow up to 9
6661         replacement parameters. I'm planning to use this in the test
6662         case for this ticket.
6664 2020-07-10  Ed Schonberg  <schonberg@adacore.com>
6666         * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Create a
6667         proper signature when the access type denotes a parameterless
6668         subprogram.
6669         * exp_ch6.adb (Expand_Call): Handle properly a  parameterless
6670         indirect call when the corresponding access type has contracts.
6672 2020-07-10  Eric Botcazou  <ebotcazou@adacore.com>
6674         * exp_aggr.adb
6675         (Convert_To_Positional): Add Dims local variable
6676         and pass it in calls to Is_Flat and Flatten.
6677         (Check_Static_Components): Pass Dims in call to
6678         Is_Static_Element.
6679         (Nonflattenable_Next_Aggr): New predicate.
6680         (Flatten): Add Dims parameter and Expr local variable.  Call
6681         Nonflattenable_Next_Aggr in a couple of places.  In the case
6682         when an Others choice is present, check that the element is
6683         either static or a nested aggregate that can be flattened,
6684         before disregarding the replication limit for elaboration
6685         purposes.  Check that a nested array is flattenable in the case
6686         of a multidimensional array in any position.  Remove redundant
6687         check in the Others case and pass Dims in call to
6688         Is_Static_Element.  Use Expr variable.
6689         (Is_Flat): Change type of Dims parameter from Int to Nat.
6690         (Is_Static_Element): Add Dims parameter.  Replace tests on
6691         literals with call to Compile_Time_Known_Value.  If everything
6692         else failed and the dimension is 1, preanalyze the expression
6693         before calling again Compile_Time_Known_Value on it.  Return
6694         true for null.
6695         (Late_Expansion): Do not expand further if the assignment to the
6696         target can be done directly by the back end.
6698 2020-07-10  Arnaud Charlet  <charlet@adacore.com>
6700         * osint-c.adb (Set_File_Name): Preserve casing of file.
6701         * osint.adb (File_Names_Equal): New.
6702         (Executable_Name): Use File_Equal instead of
6703         Canonical_Case_File_Name.
6705 2020-07-10  Pascal Obry  <obry@adacore.com>
6707         * libgnat/g-socket.adb (Wait_On_Socket): Fix memory leaks and
6708         file descriptor leaks.  A memory leak was created each time the
6709         routine was called without a selector (Selector = Null). Also,
6710         in case of exception in the routine a memory leak and descriptor
6711         leak was created as the created file selector was not closed.
6713 2020-07-10  Pascal Obry  <obry@adacore.com>
6715         * libgnat/g-socket.adb: Minor style fixes.
6717 2020-07-10  Javier Miranda  <miranda@adacore.com>
6719         * sem_util.adb
6720         (Immediate_Context_Implies_Is_Potentially_Unevaluated): New
6721         subprogram.
6722         (Is_Potentially_Unevaluated): Do not stop climbing the tree on
6723         the first candidate subexpression; required to handle nested
6724         expressions.
6726 2020-07-10  Gary Dismukes  <dismukes@adacore.com>
6728         * exp_aggr.adb, exp_spark.adb, sem_ch13.ads, sem_ch13.adb,
6729         snames.ads-tmpl: Minor reformatting and typo fixes.
6731 2020-07-10  Yannick Moy  <moy@adacore.com>
6733         * sem_util.adb (Has_Enabled_Property): Add handling of
6734         non-variable objects.
6736 2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
6738         * sem_ch3.adb (Check_Completion): Refactor chained
6739         if-then-elsif-...  statement to be more like a case
6740         statement (note: we can't simply use case statement because of
6741         Is_Intrinsic_Subprogram in the first condition).
6743 2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
6745         * einfo.ads (E_Protected_Object): Enumeration literal removed.
6746         * lib-xref.ads (Xref_Entity_Letters): Remove reference to
6747         removed literal.
6748         * sem_ch3.adb (Check_Completion): Likewise.
6749         * sem_util.adb (Has_Enabled_Property): Likewise.
6751 2020-07-10  Arnaud Charlet  <charlet@adacore.com>
6753         * exp_aggr.adb (Max_Aggregate_Size): Use small limit for
6754         aggregate inside subprograms.
6755         * sprint.adb (Sprint_Node_Actual [N_Object_Declaration]): Do not
6756         print the initialization expression if the No_Initialization
6757         flag is set.
6758         * sem_util.ads, sem_util.adb (Predicate_Enabled): New.
6759         * exp_ch4.adb (Expand_N_Type_Conversion): Code cleanup and apply
6760         predicate check consistently.
6761         * exp_ch6.adb (Expand_Actuals.By_Ref_Predicate_Check): Ditto.
6762         * sem_ch3.adb (Analyze_Object_Declaration): Ditto.
6763         * exp_ch3.adb (Build_Assignment): Revert handling of predicate
6764         check for allocators with qualified expressions, now handled in
6765         Freeze_Expression directly.
6766         * sem_aggr.adb: Fix typos.
6767         * checks.adb: Code refactoring: use Predicate_Enabled.
6768         (Apply_Predicate_Check): Code cleanup.
6769         * freeze.adb (Freeze_Expression): Freeze the subtype mark before
6770         a qualified expression on an allocator.
6771         * exp_util.ads, exp_util.adb (Within_Internal_Subprogram):
6772         Renamed Predicate_Check_In_Scope to clarify usage, refine
6773         handling of predicates within init procs which should be enabled
6774         when the node comes from source.
6775         * sem_ch13.adb (Freeze_Entity_Checks): Update call to
6776         Predicate_Check_In_Scope.
6778 2020-07-10  Eric Botcazou  <ebotcazou@adacore.com>
6780         * exp_ch4.adb (Expand_Array_Comparison): Reformat.
6781         (Expand_Concatenate): Use standard size values directly and use
6782         Standard_Long_Long_Unsigned instead of RE_Long_Long_Unsigned.
6783         (Expand_Modular_Op): Use Standard_Long_Long_Integer in case the
6784         modulus is larger than Integer.
6785         (Expand_N_Op_Expon): Use standard size value directly.
6786         (Narrow_Large_Operation): Use Uint instead of Nat for sizes and
6787         use a local variable for the size of the type.
6788         (Get_Size_For_Range): Return Uint instead of Nat.
6789         (Is_OK_For_Range): Take Uint instead of Nat.
6791 2020-07-10  Javier Miranda  <miranda@adacore.com>
6793         * exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator):
6794         Build the internal anonymous access type using as a reference
6795         the designated type imposed by the context (instead of using the
6796         return type of the called function).
6798 2020-07-10  Yannick Moy  <moy@adacore.com>
6800         * sem_res.adb (Resolve_Actuals): Protect call to
6801         Is_Valued_Procedure.
6803 2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
6805         * sem_ch3.adb (Process_Discriminants): Revert recent change to
6806         location of Set_Ekind; detect effectively volatile discriminants
6807         by their type only.
6809 2020-07-10  Joffrey Huguet  <huguet@adacore.com>
6811         * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Add global
6812         contract (Global => null) to all functions.
6814 2020-07-10  Ed Schonberg  <schonberg@adacore.com>
6816         * aspects.ads: Add Aspect_Aggregate.
6817         * exp_aggr.adb (Expand_Container_Aggregate): Expand positional
6818         container aggregates into separate initialization and insertion
6819         operations.
6820         * sem_aggr.ads (Resolve_Container_Aggregate): New subprogram.
6821         * sem_aggr.adb (Resolve_Container_Aggregate): Parse aspect
6822         aggregate, establish element types and key types if present, and
6823         resolve aggregate components.
6824         * sem_ch13.ads (Parse_Aspect_Aggregate): Public subprogram used
6825         in validation, resolution and expansion of container aggregates
6826         * sem_ch13.adb
6827         (Parse_Aspect_Aggregate): Retrieve names of primitives specified
6828         in aspect specification.
6829         (Validate_Aspect_Aggregate): Check legality of specified
6830         operations given in aspect specification, before nane
6831         resolution.
6832         (Resolve_Aspect_Aggregate): At freeze point resolve operations
6833         and verify that given operations have the required profile.
6834         * sem_res.adb (Resolve): Call Resolve_Aspect_Aggregate if aspect
6835         is present for type.
6836         * snames.ads-tmpl: Add names used in aspect Aggregate: Empty,
6837         Add_Named, Add_Unnamed, New_Indexed, Assign_Indexed.
6839 2020-07-10  Arnaud Charlet  <charlet@adacore.com>
6841         * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-shabig.o.
6842         * libgnat/s-shabig.ads: New file to share definitions.
6843         * libgnat/s-genbig.ads, libgnat/s-genbig.adb: Reorganized to
6844         make it more generic and flexible in terms of memory allocation
6845         and data structure returned.
6846         (To_String): Moved to System.Generic_Bignums to allow sharing
6847         this code.
6848         (Big_And, Big_Or, Big_Shift_Left, Big_Shift_Right): New.
6849         * libgnat/s-bignum.adb, libgnat/s-bignum.ads: Adapt to new
6850         System.Generic_Bignums spec.
6851         * libgnat/a-nbnbin.adb: Likewise.
6852         (To_String): Moved to System.Generic_Bignums to allow sharing
6853         this code.
6854         * libgnat/a-nbnbre.adb (Normalize): Fix handling of Num = 0
6855         leading to an exception.
6857 2020-07-10  Eric Botcazou  <ebotcazou@adacore.com>
6859         * freeze.adb (Freeze_Expr_Types): Replace call to Find_Aspect
6860         with call to Find_Value_Of_Aspect and adjust accordingly.
6862 2020-07-10  Eric Botcazou  <ebotcazou@adacore.com>
6864         * einfo.adb (Write_Field24_Name): Handle E_Loop_Parameter.
6865         * freeze.adb (Freeze_Expr_Types): Freeze the iterator type used as
6866         Default_Iterator of the name of an N_Iterator_Specification node.
6868 2020-07-10  Eric Botcazou  <ebotcazou@adacore.com>
6870         * checks.adb (Determine_Range): Deal with Min and Max attributes.
6871         * exp_ch6.adb (Expand_Call_Helper): When generating code to pass
6872         the accessibility level to the caller in the case of an actual
6873         which is an if-expression, also remove the nodes created after
6874         the declaration of the dummy temporary.
6875         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use Natural as
6876         the type of the minimum accessibility level object.
6878 2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
6880         * sem_ch3.adb (Process_Discriminants): Set Ekind of the
6881         processed discriminant entity before passing to
6882         Is_Effectively_Volatile, which was crashing on a failed
6883         assertion.
6884         * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Prevent
6885         call to No_Caching_Enabled with entities other than variables,
6886         which was crashing on a failed assertion.
6887         (Analyze_Pragma): Style cleanups.
6888         * sem_util.adb (Is_Effectively_Volatile): Enforce comment with
6889         an assertion; prevent call to No_Caching_Enabled with entities
6890         other than variables.
6891         (Is_Effectively_Volatile_Object): Only call
6892         Is_Effectively_Volatile on objects, not on types.
6893         (No_Caching_Enabled): Enforce comment with an assertion.
6895 2020-07-10  Yannick Moy  <moy@adacore.com>
6897         * debug.adb: Update comments to free usage of -gnatdF.
6899 2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
6901         * exp_spark.adb (Expand_SPARK_Delta_Or_Update): Refactored from
6902         Expand_SPARK_N_Attribute_Reference; rewrite into N_Aggregate or
6903         N_Delta_Aggregate depending on what is being rewritten.
6904         (Expand_SPARK_N_Delta_Aggregate): New routine to expand
6905         delta_aggregate.
6906         (Expand_SPARK_N_Attribute_Reference): Call the refactored
6907         routine.
6909 2020-07-10  Piotr Trojanek  <trojanek@adacore.com>
6911         * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Fix
6912         expansion of attribute Update.
6914 2020-07-10  Arnaud Charlet  <charlet@adacore.com>
6916         * sem.adb (Walk_Library_Items): Fix handling of Ghost units.
6918 2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
6920         * tracebak.c [generic implementation]: Add pragma GCC diagnostic
6921         to disable warning about __builtin_frame_address.
6923 2020-07-08  Dmitriy Anisimkov  <anisimko@adacore.com>
6925         * socket.c [_WIN32] (__gnat_minus_500ms): Parentheses around &&
6926         operations.  Remove notes about TN in comment.
6928 2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
6930         * adaint.h (__gnat_expect_portable_execvp): Fix prototype.
6931         (__gnat_expect_poll): Likewise.
6932         * expect.c [_WIN32]: Include adaint.h file.
6933         (__gnat_waitpid): Remove useless variable.
6934         (__gnat_expect_portable_execvp): Add ATTRIBUTE_UNUSED on parameter.
6935         * raise-gcc.c [SEH] (__gnat_personality_v0): Add ATTRIBUTE_UNUSED.
6936         * socket.c [_WIN32] (__gnat_getservbyport): Add ATTRIBUTE_UNUSED on
6937         a couple of parameters.
6938         (__gnat_gethostbyname): Likewise.
6939         (__gnat_gethostbyaddr): Likewise.
6940         (__gnat_getservbyname): Likewise.
6941         (__gnat_last_socket_in_set): Use variables local to loops.
6942         (__gnat_socket_ioctl): Cast 3rd parameter to proper type if _WIN32.
6943         (__gnat_inet_pton): Cast 2nd parameter to proper type if _WIN32.
6944         * sysdep.c (__gnat_localtime_tzoff): Remove superfluous test.
6945         * terminals.c [_WIN32]: Include io.h file.
6946         (is_gui_app): Remove useless variables and fix unsigned comparison.
6947         (nt_spawnve): Add ATTRIBUTE_UNUSED on first parameter.  Initialize a
6948         local variable and remove others that are useless.  Add missing cast
6949         (__gnat_setup_child_communication): Remove useless variable and call
6950         Use proper formatting string in call to sprintf.
6951         (__gnat_setup_parent_communication): Cast to proper type.
6952         (find_child_console): Fix prototype and remove useless variable.
6953         (find_process_handle): Likewise.
6954         (_gnat_interrupt_process): Move to after __gnat_interrupt_pid.
6955         (__gnat_reset_tty): Add ATTRIBUTE_UNUSED on parameter, remove return
6956         (__gnat_setup_winsize): Add ATTRIBUTE_UNUSED on all parameters.
6958 2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
6960         * exp_ch4.adb (Expand_N_Allocator): In the subtype mark case, do
6961         not apply constraint checks if the No_Initialization flag is set.
6963 2020-07-08  Javier Miranda  <miranda@adacore.com>
6965         * exp_ch9.adb
6966         (Build_Class_Wide_Master): Insert the declaration of _Master
6967         before its use; required to avoid assertion failure in the
6968         backend.
6970 2020-07-08  Arnaud Charlet  <charlet@adacore.com>
6972         * libgnat/i-cexten.ads (long_long, unsigned_long_long): Now
6973         subtypes of Interfaces.C types.
6974         * libgnat/a-calcon.ads, libgnat/a-calcon.adb
6975         (To_Unix_Nano_Time): Use Interfaces.C.long_long instead of
6976         Interfaces.C.Extensions.long_long.
6978 2020-07-08  Vasiliy Fofanov  <fofanov@adacore.com>
6980         * debug.adb: Document new switch.
6981         * exp_ch6.adb (Warn_BIP): New function that warns if the switch
6982         is on.  Call it from Make_Build_In_Place_* functions.  Warn_BIP
6983         is not needed in Make_Build_In_Place_Iface_*, because those call
6984         Make_Build_In_Place_Call_In_Object_Declaration or similar.
6986 2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
6988         * erroutc.adb (Matches): Fix comments.
6990 2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
6992         * freeze.adb (Has_Decl_In_List): New predicate to check that an
6993         entity is declared in a list of nodes.
6994         (Freeze_Expression): Use it to deal with Expression_With_Actions,
6995         short-circuit expression, if- and case-expression and ensure that
6996         the freeze node is put onto their Actions list if the entity is
6997         declared locally.
6999 2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7001         * freeze.adb (In_Expanded_Body): Return true for the body of a
7002         generated predicate function.
7004 2020-07-08  Gary Dismukes  <dismukes@adacore.com>
7006         * sem_attr.adb: Remove hyphens in comments, plus minor code
7007         reformatting.
7008         * sem_ch13.adb: Fix typo (that => than).
7009         * sem_util.adb: Add hyphen in comment ("class-wide").
7011 2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7013         * freeze.adb (Freeze_Array_Type): Add comment on implementation
7014         choice for byte-packed array types.
7016 2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
7018         * sem_attr.adb (Analyze_Attribute): Correct prefix of 'Result
7019         this prefix is a generic function but the enclosing aspect or
7020         pragma is attached to its instance.
7021         * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Analyze
7022         generic subprogram formal parameters (including the implicit
7023         result of a generic function) and only then analyse its aspects,
7024         because with Relaxed_Initialization the aspect expression might
7025         refer to those formal parameters.
7026         * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Accept
7027         aspect on generic subprograms; install formal parameters of a
7028         generic subprogram but not formal parameters of the generic unit
7029         itself (the previous code was inspired by aspects Post and
7030         Depends, where both kinds of formals are allowed).
7031         * sem_util.ads (Enter_Name): Fix name of a subprogram referenced
7032         in comment.
7034 2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
7036         * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Call
7037         Analyze_Aspect_Specifications after setting Ekind of the
7038         analyzed entity.
7039         * sem_ch13.adb (Analyze_Aspect_Yield): Remove minimal decoration
7040         of generic subprograms.
7042 2020-07-08  Arnaud Charlet  <charlet@adacore.com>
7044         * sem_prag.adb (Process_Inline): Check for duplicate
7045         pragma+aspect Inline. Minor code cleanup.
7046         (Check_Duplicate_Pragma): Add warning for duplicate
7047         pragma [No_]Inline under -gnatwr.
7048         * sinfo.ads, sinfo.adb (Next_Rep_Item): Allow N_Null_Statement
7049         which can appear when a pragma is rewritten.
7050         * sem_util.ads, sem_util.adb, bindo-writers.adb: Fix bad
7051         copy/paste now flagged.
7052         * libgnat/s-mmap.ads: Remove redundant pragma Inline.
7054 2020-07-08  Ed Schonberg  <schonberg@adacore.com>
7056         * sem_util.adb (Build_Class_Wide_Clone_Body): Update entities to
7057         refer to the right spec.
7059 2020-07-08  Bob Duff  <duff@adacore.com>
7061         * sem_ch13.adb (Predicate_Failure): Check that the type has
7062         predicates.  Remove the setting of Has_Delayed_Aspects and
7063         Freeze_Node, because (if the code is legal) it should have
7064         already been done by the predicate aspect.
7066 2020-07-08  Gary Dismukes  <dismukes@adacore.com>
7068         * par-ch4.adb (P_Iterated_Component_Association): Typo
7069         corrections.
7071 2020-07-08  Ed Schonberg  <schonberg@adacore.com>
7073         * par.adb (P_Iterator_Specification): Make public for use in
7074         other parser subprograms.
7075         * par-ch4.adb (P_Iterated_Component_Association): In Ada_2020,
7076         recognize use of Iterator_Specification in an element iterator.
7077         To simplify disambiguation between the two iterator forms, mark
7078         the component association as carrying an Iterator_Specification
7079         only when the element iterator (using "OF") is used.
7080         * par-ch5.adb (P_Loop_Parameter_Specification): In Ada_2020,
7081         parse iterator filter when present.
7082         (P_Iterator_Specification): Ditto.  Remove declaration of
7083         P_Iterator_Specification, now in parent unit.
7084         * exp_ch5.adb (Expand_N_Loop_Statement): Apply Iterator filter
7085         when present.
7086         (Expand_Iterator_Loop_Over_Array): Ditto.
7087         (Expand_Iterator_Loop_Over_Container): Ditto.
7088         * sem_aggr.adb (Resolve_Array_Aggregate): Emit error nessage if
7089         an iterated component association includes a iterator
7090         specificcation with an element iterator, i.e. one that uses the
7091         OF keyword.
7092         * sem_ch5.adb (Analyze_Iterator_Specification): Analyze Iterator
7093         filter when present.
7094         (Analyze_Loop_Parameter_Specification): Ditto.
7095         * sinfo.adb: Suprogram bodies for new syntactic element
7096         Iterator_Filter.
7097         * sinfo.ads: Add Iterator_Filter to relevant nodes.  Structure
7098         of Component_Association and Iteroted_Component_Association
7099         nodes is modified to take into account the possible  presence of
7100         an iterator specification in the latter.
7102 2020-07-08  Yannick Moy  <moy@adacore.com>
7104         * sem_util.ads, sem_util.adb (Is_Attribute_Loop_Entry): New
7105         function for GNATProve.
7107 2020-07-08  Ghjuvan Lacambre  <lacambre@adacore.com>
7109         * sem_ch13.adb (Analyze_Record_Representation_Clause,
7110         Check_Record_Representation_Clause): Add expected and actual
7111         size to error message.
7113 2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
7115         * sem_util.ads, sem_util.adb (Safe_To_Capture_Value): Return
7116         True for in-parameters.
7118 2020-07-08  Justin Squirek  <squirek@adacore.com>
7120         * exp_attr.adb (Expand_Attribute): Set
7121         Stores_Attribute_Old_Prefix to generated renamings of 'Old
7122         constants for later use in generating finalization routines.
7123         * exp_ch7.adb (Build_Finalizer): Minor reformatting. Use "or
7124         else" operators.
7126 2020-07-08  Gary Dismukes  <dismukes@adacore.com>
7128         * exp_ch6.adb (Expand_Simple_Function_Return): Remove ugly code
7129         that was copying the return expression, resetting Analyzed
7130         flags, etc. for the return expression of static expression
7131         functions.
7132         * inline.adb (Inline_Static_Expression_Function_Call): Set the
7133         Parent of the copied expression to that of the call. This avoids
7134         a blowup in Insert_Actions when GNATprove_Mode is set and there
7135         are nested SEF calls. Add ??? comment.
7136         * sem_ch6.adb (Analyze_Expression_Function): In the case of a
7137         static expression function, create a new copy of the expression
7138         and replace the function's expression with the copy; the
7139         original expression is used in the expression function's body
7140         and will be analyzed and rewritten, and we need to save a clean
7141         copy for later use in processing static calls to the function.
7142         This allows removing the kludgy code that was in
7143         Expand_Simple_Function_Return.
7144         * sem_eval.adb (Eval_Qualified_Expression): Return immediately
7145         if any errors have been posted on the qualified expression, to
7146         avoid blowups when GNATprove_Mode is enabled (or with -gnatd.F),
7147         since illegal static expressions are handled differently in that
7148         case and attempting to fold such expressions would fail.
7150 2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7152         * repinfo.adb (Compute_Max_Length): Skip hidden discriminants.
7153         (List_Record_Layout): Likewise.
7154         (List_Structural_Record_Layout): Use First_Discriminant instead
7155         of First_Stored_Discriminant and Next_Discriminant instead of
7156         Next_Stored_Discriminant to walk the list of discriminants.
7158 2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
7160         * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Analyze
7161         optional boolean expressions.
7162         * sem_util.ads, sem_util.adb (Has_Relaxed_Initialization): Adapt
7163         query; update comment.
7165 2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
7167         * einfo.ads (Current_Value): Fix typo in comment.
7168         * exp_ch2.adb (Expand_Current_Value): Remove unnecessary "Start
7169         of processing ..." comment.
7170         * exp_util.adb (Set_Entity_Current_Value): Fix unbalanced paren
7171         in comment.
7172         (Get_Current_Value_Condition): Fix layout in comment.
7173         * sem_ch5.adb (Analyze_Cond_Then): Replace commented condition
7174         with pragma Assert.
7176 2020-07-08  Piotr Trojanek  <trojanek@adacore.com>
7178         * exp_ch5.adb (Expand_N_If_Statement): Detect True/False
7179         prefixed with Standard.
7181 2020-07-08  Bob Duff  <duff@adacore.com>
7183         * sem_ch13.adb (Analyze_Aspect_Specifications): Add freeze node
7184         for the Underlying_Full_View if it exists. The freeze node is
7185         what triggers the generation of the predicate function.
7186         * freeze.adb: Minor reformatting.
7188 2020-07-08  Eric Botcazou  <ebotcazou@adacore.com>
7190         * exp_ch4.adb (Narrow_Large_Operation): Use the base type instead
7191         of the first subtype of standard integer types as narrower type.
7193 2020-07-07  Eric Botcazou  <ebotcazou@adacore.com>
7195         * freeze.adb (Freeze_Array_Type): Use Ctyp more consistently.
7196         Move code setting the alignment in the non-packed case to...
7197         * layout.adb (Layout_Type): ...here.
7199 2020-07-07  Bob Duff  <duff@adacore.com>
7201         * treepr.adb (Print_Node): Add code to test Is_Extension.
7203 2020-07-07  Arnaud Charlet  <charlet@adacore.com>
7205         * sem_ch4.adb (Try_Container_Indexing): Add ??? comment. Protect
7206         against malformed tree in case of errors.
7208 2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
7210         * einfo.adb, sem_ch10.adb, sem_ch12.adb, sem_ch8.adb: Use
7211         Is_Generic_Subprogram.
7213 2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
7215         * sem_ch8.adb (Analyze_Use_Package): Replace low-level,
7216         error-prone Ekind_In tests with high-level Is_Generic_Subprogram
7217         and Is_Subprogram.
7219 2020-07-07  Arnaud Charlet  <charlet@adacore.com>
7221         * sem_ch6.adb (Check_Formal_Subprogram_Conformance): New
7222         subprogram to handle checking without systematically emitting an
7223         error.
7224         (Check_Conformance): Update call to
7225         Check_Formal_Subprogram_Conformance and fix handling of Conforms
7226         and Errmsg parameters.
7228 2020-07-07  Arnaud Charlet  <charlet@adacore.com>
7230         * exp_ch4.adb (Tagged_Membership): Generate a call to
7231         CW_Membership instead of using Build_CW_Membership.
7232         (Expand_N_In): Remove wrong handling of null access types and
7233         corresponding comment.
7234         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Generate a
7235         call to CW_Membership instead of using Build_CW_Membership.
7236         * rtsfind.ads: Add CW_Membership.
7237         * exp_atag.ads, exp_atag.adb (Build_CW_Membership): Removed.
7238         * einfo.ads: Fix typo.
7239         * libgnat/a-tags.ads, libgnat/a-tags.adb (CW_Membership): Moved
7240         back to spec.
7242 2020-07-07  Ed Schonberg  <schonberg@adacore.com>
7244         * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Create
7245         proper subprogram specification for body, using names in the
7246         subprogram declaration but distinct entities.
7247         * exp_ch6.adb (Expand_Call): If this is an indirect call
7248         involving a subprogram wrapper, insert pointer parameter in list
7249         of actuals with a parameter association, not as a positional
7250         parameter.
7252 2020-07-07  Justin Squirek  <squirek@adacore.com>
7254         * exp_ch6.adb (Expand_Branch): Verify the original node is a
7255         conditional expression before recursing further.
7256         (Insert_Level_Assign): Transform assertion into an explicit
7257         raise.
7259 2020-07-07  Steve Baird  <baird@adacore.com>
7261         * sem_attr.adb (Eval_Attribute): Generalize static evaluation of
7262         Size attribute references to also handle
7263         Max_Size_In_Storage_Elements references.
7265 2020-07-07  Javier Miranda  <miranda@adacore.com>
7267         * sem_util.adb (Is_Potentially_Unevaluated): Code cleanup.
7269 2020-07-07  Eric Botcazou  <ebotcazou@adacore.com>
7271         * checks.ads (Expander Routines): Update the description of the
7272         Do_Range_Check mechanism.
7273         * checks.adb (Selected_Range_Checks): Fix typo.
7274         * exp_ch9.adb: Add with and use clause for Checks.
7275         (Actual_Index_Expression): Generate a range check if requested.
7276         (Entry_Index_Expression): Likewise.
7277         * sem_attr.adb (Resolve_Attribute) <Attribute_Count>: Call
7278         Apply_Scalar_Range_Check instead of Apply_Range_Check.
7279         * sem_ch9.adb (Analyze_Accept_Statement): Likewise.
7280         * sem_res.adb (Resolve_Entry): Likewise, after having set the
7281         actual index type on the prefix of the indexed component.
7282         (Resolve_Indexed_Component): Remove useless conditional construct.
7284 2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
7286         * contracts.adb (Analyze_Entry_Or_Subprogram_Contract,
7287         Process_Preconditions_For): Freeze expression that has been
7288         relocated to pragma Precondition, not the expression which is
7289         still in the aspect.
7291 2020-07-07  Arnaud Charlet  <charlet@adacore.com>
7293         * sem_ch6.adb (Check_Conformance): Remove unnecessary (and
7294         wrong) code.
7295         * sem_ch8.adb (Check_Null_Exclusion): Post error at proper
7296         location.  Introduce new helper Null_Exclusion_Mismatch and fix
7297         implementation wrt formal subprograms used in generic bodies.
7298         (Analyze_Subprogram_Renaming): Fix missing setting of
7299         Error_Msg_Sloc.
7300         (Analyze_Object_Renaming): Replace "in Anonymous_Access_Kind" by
7301         Is_Anonymous_Access_Type.
7302         * sem_util.adb (Has_Null_Exclusion): Fix handling of
7303         N_Parameter_Specification.
7304         * sem_ch12.adb (Instantiate_Object): Replace "in
7305         Anonymous_Access_Kind" by Is_Anonymous_Access_Type.
7307 2020-07-07  Ed Schonberg  <schonberg@adacore.com>
7309         * freeze.adb (Freeze_Expr_Types): Freeze the designated type of
7310         the explicit dereference.
7312 2020-07-07  Javier Miranda  <miranda@adacore.com>
7314         * sem_util.adb (Is_Potentially_Unevaluated): Protect reading
7315         attribute Etype.
7317 2020-07-07  Bob Duff  <duff@adacore.com>
7319         * libgnat/g-catiio.adb (Value, Parse_ISO_8601): Unsuppress
7320         checks, and don't rely on 'Valid.
7322 2020-07-07  Arnaud Charlet  <charlet@adacore.com>
7324         * Makefile.rtl: Remove dead code.
7325         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
7326         Document gnatbind -xdr switch.
7327         * gnat_ugn.texi: Regenerate.
7329 2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
7331         * doc/gnat_ugn/building_executable_programs_with_gnat.rst
7332         (Validity Checking): Add "p" to the list of switches enabled by
7333         -gnatVa.
7334         * gnat_ugn.texi: Regenerate.
7336 2020-07-07  Ghjuvan Lacambre  <lacambre@adacore.com>
7338         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Add call
7339         to Check_Restriction_No_Specification_Of_Aspect.
7340         * sem_prag.adb (Analyze_Pragma): Likewise.
7341         * restrict.ads (Check_Restriction_No_Specification_Of_Aspect):
7342         Mention possible new node kinds in documentation.
7343         * restrict.adb (Check_Restriction_No_Specification_Of_Aspect):
7344         Retrieve aspect id from different fields if given node is an
7345         N_Pragma or an N_Attribute_Definition_Clause.
7347 2020-07-07  Gary Dismukes  <dismukes@adacore.com>
7349         * contracts.adb (Add_Invariant_And_Predicate_Checks): Relax the
7350         condition for doing invariant checks so that in-mode parameters
7351         of procedures are also checked (required by AI05-0289, and
7352         restricted to procedures by AI12-0044). This is done in a
7353         procedure's nested postconditions procedure.
7354         * exp_ch6.adb (Expand_Actuals): Also perform postcall invariant
7355         checks for in parameters of procedures (but not functions).
7356         Moved invariant-checking code to end of Expand_Actuals
7357         (including the nested function Is_Public_Subp).
7359 2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
7361         * sem_aggr.adb (Resolve_Delta_Array_Aggregate): Make Index_Type
7362         a constant.
7364 2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
7366         * exp_aggr.adb (Expand_N_Delta_Aggregate): Use type of the delta
7367         base expression for the anonymous object of the delta aggregate.
7369 2020-07-07  Javier Miranda  <miranda@adacore.com>
7371         * sem_util.ads (Interval_Lists): Reordering routine.
7372         * sem_util.adb (Interval_Lists): Reordering routines to keep
7373         them alphabetically ordered.
7375 2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
7377         * sem_attr.adb (Resolve_Attribute): Do not call
7378         Check_Non_Static_Context.
7380 2020-07-07  Arnaud Charlet  <charlet@adacore.com>
7382         * sem_elab.adb (Is_Guaranteed_ABE): Take into account null
7383         procedures.
7385 2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
7387         * sem_ch5.adb (Analyze_Assignment): Reuse Is_Assignable.
7389 2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
7391         * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Add scalar
7392         range checks for 'Update on arrays just like for 'Update on
7393         records.
7394         * sem_attr.adb (Analyze_Array_Component_Update): Do not set
7395         range checks for single-dimensional arrays.
7396         (Resolve_Attribute): Do not set range checks for both single-
7397         and multi- dimensional arrays.
7399 2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
7401         * sem.ads (Sem): Fix description.
7403 2020-07-07  Piotr Trojanek  <trojanek@adacore.com>
7405         * sem_ch13.adb (Analyze_Relaxed_Parameter): Fix for protected
7406         entries.
7408 2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
7410         * checks.adb (Apply_Scalar_Range_Check): Use Is_RTE.
7412 2020-07-06  Bob Duff  <duff@adacore.com>
7414         * libgnat/g-catiio.ads: Document newly supported format.  Add
7415         ISO_Time constant, for convenience.
7416         * libgnat/g-catiio.adb (Image_Helper): New helper function to do
7417         all the formatting work, called by the two exported Image
7418         functions.  Add support for "%:::z" here. Add a Time_Zone
7419         parameter used by the "%:::z" processing. This parameter is not
7420         used for the actual time zone computations; local time is always
7421         used for that, for ease of implementation reasons.  It would
7422         make sense to use Append throughout this function, but that's a
7423         cleanup for another day.
7424         (Image): Modify these to pass the local time zone, or the
7425         specified time zone, as appropriate.
7427 2020-07-06  Bob Duff  <duff@adacore.com>
7429         * libgnat/g-catiio.ads: Change the regular expression that
7430         documents the allowed format to match what ISO-8601 allows.
7431         * libgnat/g-catiio.adb (Scan_Subsecond): Rewrite so it doesn't
7432         assume the subsecond comes last.
7433         (Parse_ISO_8601): Parse an optional subsecond, followed by an
7434         optional time zone, rather than making these alternatives to
7435         each other.
7437 2020-07-06  Bob Duff  <duff@adacore.com>
7439         * libgnat/g-catiio.adb (Parse_ISO_8601): Minor cleanups:
7440         Give some objects clearer names.
7441         Make some objects more local to where they are used.
7442         Remove some validity checks that can't fail, because some of
7443         the variables tested have been moved so they're not visible here.
7444         Anyway, Wrong_Syntax is about errors in the input, not data
7445         validity.
7446         Use Time_Zone_Seen instead of Local_Sign = ' ' to determine
7447         that a time zone indication was seen.
7448         We don't need to distinguish two different kinds of
7449         syntax error (End_Of_Source_Reached and Wrong_Syntax),
7450         so use Wrong_Syntax always.
7451         Remove comment, "Certain scanning scenarios may handle
7452         this exception on their own."; there are no such scenarios.
7454 2020-07-06  Bob Duff  <duff@adacore.com>
7456         * libgnat/g-catiio.ads, libgnat/g-catiio.adb (Image): New
7457         function. It might seem like the local-time Image should be
7458         implemented in terms of the Time_Zone Image, but that would be
7459         far harder to implement, so we do it the other way around.
7461 2020-07-06  Thomas Quinot  <quinot@adacore.com>
7463         * libgnat/g-sechas.ads, libgnat/g-sechas.adb: Refactor to use
7464         Stream_Element_Array as the internal buffer type.
7465         * libgnat/g-shshco.adb: Adjust to use Stream_Element_Offset
7466         instead of Integer as the index in the internal state buffer.
7468 2020-07-06  Gary Dismukes  <dismukes@adacore.com>
7470         * doc/gnat_rm/implementation_defined_pragmas.rst, errout.ads,
7471         erroutc.adb, exp_ch4.adb, exp_ch6.adb, freeze.adb: Comment
7472         rewording/reformatting/typo fixes.  Replace "ie." with "that is"
7473         in comment; "can not" -> "cannot", and remove an extraneous
7474         underscore in another comment.
7475         * gnat_rm.texi, gnat_ugn.texi: Regenerate.
7477 2020-07-06  Javier Miranda  <miranda@adacore.com>
7479         * sem_util.ads (Interval_Lists.Aggregate_Intervals): New
7480         subprogram.
7481         * sem_util.adb (Has_Null_Others_Choice,
7482         Non_Static_Or_Null_Range, Interval_Lists.Aggregate_Intervals):
7483         New subprograms.
7484         (Is_Potentially_Unevaluated): Adding support to detect
7485         potentially unevaluated components of array aggregates.
7487 2020-07-06  Bob Duff  <duff@adacore.com>
7489         * libgnat/g-catiio.adb (Parse_ISO_8601): New name for
7490         Parse_ISO_8861_UTC.  8601 is the correct ISO standard number.
7491         Also, "UTC" was confusing. All Time values are represented in
7492         UTC, but the ISO 8601 date strings include a time zone.
7493         If a time zone was specified, call
7494         Ada.Calendar.Formatting.Time_Of instead of
7495         GNAT.Calendar.Time_Of, because the latter adjusts to the current
7496         time zone, whereas we want to use (just) the time zone specified
7497         in the ISO string.  This allows us to pass Time_Zone instead to
7498         Time_Of, instead of adjusting by Local_Disp by hand.
7499         If no time zone was specified, call GNAT.Calendar.Time_Of as
7500         before.
7501         Use expanded names to clarify which Time_Of is being called.
7502         Remove redundant comment, and move nonredundant part of the
7503         commment to the spec.
7504         (Value): Minor: use "not in" instead of "or else".
7505         * libgnat/g-catiio.ads: Comment moved here. Correct the ISO
7506         standard number.
7507         * libgnat/g-calend.adb: Add ??? comments.
7508         * libgnat/a-calend.ads, libgnat/a-calend.adb: Update obsolete
7509         comments regarding the representation of type Time. Move the
7510         information about the epoch (year 2150) to the spec, and avoid
7511         uttering "2150" more than once.
7512         * libgnat/a-catizo.ads (Time_Offset): Add comment.
7514 2020-07-06  Ed Schonberg  <schonberg@adacore.com>
7516         * exp_ch5.adb (Find_Component): If the target type is a derived
7517         record type and the required component is a discriminant that is
7518         renamed in the derived type declaration, use the name of the
7519         original discriminant to locate the intended target component.
7521 2020-07-06  Justin Squirek  <squirek@adacore.com>
7523         * sem_ch12.adb (Analyze_Associations): Add check for errors on
7524         the generic formal before continuing with instantiation.
7526 2020-07-06  Arnaud Charlet  <charlet@adacore.com>
7528         * libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
7529         libgnat/a-nbnbin__gmp.adb: Use more Valid_Big_Integer.
7531 2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
7533         * exp_util.ads (Get_Index_Subtype): Fix duplicate "Last".
7535 2020-07-06  Ed Schonberg  <schonberg@adacore.com>
7537         * sinfo.ads: Indicate that Field 1 of an N_Delta_Aggregate is
7538         unused. Previously it was erroneously labelled as holding an
7539         Expressions list, in analogy with other aggregate constructs,
7540         but there are no Expressions attached to this node syntactically
7541         or semantically.
7543 2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
7545         * sem_attr.adb (Eval_Attribute): Check if constant has an
7546         initialization expression.
7548 2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
7550         * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
7551         scalar range checks.
7552         * sem_attr.adb (Resolve_Attribute): Do not set scalar range
7553         checks when resolving attribute Update.
7555 2020-07-06  Gary Dismukes  <dismukes@adacore.com>
7557         * sem_attr.adb (Analyze_Attribute, Attribute_Constrained): Issue
7558         a warning if the attribute prefix is a current instance
7559         reference within an aspect of a type or subtype.
7560         (Address_Checks): Replace test of Is_Object (Ent) with
7561         Is_Object_Reference (P) so that testing for current instances
7562         will be done.
7563         (Eval_Attribute): Add test for current instance reference, to
7564         ensure that we still fold array attributes when current
7565         instances are involved, since value prefixes are allowed for
7566         array attributes, and will now be excluded by
7567         Is_Object_Reference.
7568         * sem_util.ads (Is_Current_Instance_Reference_In_Type_Aspect):
7569         New exported query function.
7570         * sem_util.adb (Is_Object_Reference): Return False for the case
7571         where N is a current instance reference within an
7572         aspect_specification of a type or subtype (basically if the
7573         reference occurs within a predicate, invariant, or DIC aspect
7574         expression).
7575         (Is_Current_Instance_Reference_In_Type_Aspect): New function
7576         that tests whether a node is a reference to a current instance
7577         formal of a predicate, invariant, or
7578         Default_Initial_Condition (DIC) subprogram.
7580 2020-07-06  Ed Schonberg  <schonberg@adacore.com>
7582         * sem_res.adb (Resolve_Declare_Expression): New subprogram, to
7583         install the scope holding local declarations of the expression,
7584         before completing its resolution.
7585         (Resolve): For an Expression_With_Actions that comes from a
7586         source occurrence of a Declare_Expression, call new subprogram.
7588 2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
7590         * sem_attr.adb (Analyze_Attribute): Reuse SPARK_Implicit_Load.
7592 2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
7594         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Propagate
7595         exception when switch -gnatdk is used and no previous errors are
7596         present.
7597         * sem_eval.adb (Compile_Time_Known_Value, Is_In_Range):
7598         Likewise.
7599         * sem_warn.adb (Operand_Has_Warnings_Suppressed): Likewise.
7601 2020-07-06  Richard Kenner  <kenner@adacore.com>
7603         * exp_unst.adb (Needs_Fat_Pointer): Don't check for formal.
7604         (Unnest_Subprogram): Use 'Unchecked_Access instead of 'Access
7605         when populating activation record.
7607 2020-07-06  Eric Botcazou  <ebotcazou@adacore.com>
7609         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Rename parameter
7610         from Bit_Packed_Array to Force.
7611         (Expand_Actuals): Do not apply BIP processing if the subprogram
7612         is intrinsic.  Adjust calls to Add_Simple_Call_By_Copy_Code and
7613         add one for In parameters whose actual is a CPP constructor call.
7615 2020-07-06  Eric Botcazou  <ebotcazou@adacore.com>
7617         * sem_attr.adb (Eval_Attribute): Do not apply range checks in
7618         the case of 'Pos applied to an integer type here.
7620 2020-07-06  Ed Schonberg  <schonberg@adacore.com>
7622         * sem_ch3.adb (Analyze_Object_Declaration): If the type is an
7623         Unchecked_Union, and the expression is an aggregate. complete
7624         the analysis and resolution of the aggregate, and treat like a
7625         regular object declaration, instead of as a renaming
7626         declarattion.
7628 2020-07-06  Eric Botcazou  <ebotcazou@adacore.com>
7630         * exp_ch9.adb (Is_Potentially_Large_Family): Add documentation.
7631         (Actual_Index_Expression): Use Entry_Index_Type.
7632         (Build_Entry_Count_Expression): Likewise.
7633         (Build_Find_Body_Index): Likewise.
7634         (Collect_Entry_Families): Likewise. Use directly the bounds of
7635         the index type to find out whether the family is large.
7636         (Entry_Index_Expression): Likewise.
7638 2020-07-06  Piotr Trojanek  <trojanek@adacore.com>
7640         * sem_res.adb (Resolve_Range): Resolve both low and high bounds
7641         with the range type.
7643 2020-07-06  Arnaud Charlet  <charlet@adacore.com>
7645         * aspects.ads (Is_Representation_Aspect):
7646         Default_Component_Value is a representation aspect.
7647         * sem_ch13.adb (Check_Aspect_Too_Late, Rep_Item_Too_Late): Relax
7648         RM 13.1(10) rule wrt primitive operations for Ada 202x.
7650 2020-07-06  Eric Botcazou  <ebotcazou@adacore.com>
7652         * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Move to library
7653         level and use a new predicate Is_OK_Aggregate to recognize the
7654         aggregates suitable for direct assignment by the back-end.
7655         (Convert_Array_Aggr_In_Allocator): If neither in CodePeer mode nor
7656         generating C code, generate a direct assignment instead of further
7657         expanding if Aggr_Assignment_OK_For_Backend returns true.
7659 2020-07-06  Gary Dismukes  <dismukes@adacore.com>
7661         * sem_aux.adb: Add a with clause for Nlists.
7662         (Nearest_Ancestor): Test for the case of concurrent
7663         types (testing for both Is_Concurrent_Type and
7664         Is_Concurrent_Record_Type), and return the first ancestor in the
7665         Interfaces list if present (otherwise will return Empty if no
7666         interfaces).
7667         * sem_ch13.adb (Build_Predicate_Functions): Add a ??? comment
7668         about missing handling for adding predicates when they can be
7669         inherited from multiple progenitors.
7671 2020-07-06  Arnaud Charlet  <charlet@adacore.com>
7673         * par-ch6.adb (P_Return_Object_Declaration): Set
7674         Has_Init_Expression flag.
7676 2020-07-02  Eric Botcazou  <ebotcazou@adacore.com>
7678         * debug.adb (d.K): Document new usage.
7679         * fe.h (Debug_Flag_Dot_KK): Declare.
7680         * gcc-interface/decl.c (gnat_to_gnu_field): Give an error when the
7681         component overlaps with the parent subtype, except with -gnatd.K.
7683 2020-06-26  Eric Botcazou  <ebotcazou@adacore.com>
7685         * exp_ch4.adb (Expand_Set_Membership): Expand the membership test
7686         using left associativity instead of right associativity.
7688 2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
7690         * gcc-interface/utils2.c (build_binary_op): Remove space.
7692 2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
7694         * gcc-interface/trans.c (gnat_to_gnu) <N_Allocator>: Minor tweaks.
7695         Call Has_Constrained_Partial_View on base type of designated type.
7697 2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
7699         * gcc-interface/utils.c (gnat_write_global_declarations): Output
7700         integral global variables first and the imported functions later.
7702 2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
7704         * gcc-interface/decl.c (elaborate_expression_1): When GNAT encodings
7705         are not used, do not create a variable for debug info purposes if
7706         the expression is itself a user-declared variable.
7708 2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
7710         * gcc-interface/ada-tree.h (DECL_RENAMED_OBJECT): Delete.
7711         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Always use
7712         the stabilized reference directly for renaming and create a variable
7713         pointing to it separately if requested.
7714         * gcc-interface/misc.c (gnat_print_decl): Adjust for deletion.
7715         * gcc-interface/trans.c (Identifier_to_gnu): Likewise.
7716         (gnat_to_gnu) <N_Object_Renaming_Declaration>:
7717         Do not deal with side-effects here.
7718         <N_Exception_Renaming_Declaration>: Likewise.
7720 2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
7722         * gcc-interface/decl.c (elaborate_expression): Replace calls to
7723         Is_OK_Static_Expression with Compile_Time_Known_Value.
7725 2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
7727         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Set
7728         debug type to the base type and only if the subtype is artificial.
7730 2020-06-23  Eric Botcazou  <ebotcazou@adacore.com>
7732         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Do
7733         not test Is_Bit_Packed_Array in the memset path.
7735 2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
7737         * gcc-interface/trans.c (lvalue_required_for_attribute_p): Do not deal
7738         with 'Pos or 'Val.
7739         (Attribute_to_gnu): Likewise.
7740         * gcc-interface/utils.c (create_field_decl): Small formatting fix.
7742 2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
7744         * gcc-interface/trans.c (adjust_for_implicit_deref): Delete.
7745         (maybe_implicit_deref): Likewise.
7746         (Attribute_to_gnu): Replace calls to maybe_implicit_deref by calls
7747         to maybe_padded_object.
7748         (Call_to_gnu): Likewise.
7749         (gnat_to_gnu) <N_Indexed_Component>: Likewise.
7750         <N_Slice>: Likewise.
7751         <N_Selected_Component>: Likewise.
7752         <N_Free_Statement>: Remove call to adjust_for_implicit_deref and
7753         manually make sure that the designated type is complete.
7754         * gcc-interface/utils2.c (build_simple_component_ref): Add comment.
7756 2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
7758         * gcc-interface/decl.c (gnat_to_gnu_param): Tidy up.
7759         (gnat_to_gnu_subprog_type): For a variadic C function, do not
7760         build unnamed parameters and do not add final void node.
7761         * gcc-interface/misc.c: Include snames.h.
7762         * gcc-interface/trans.c (Attribute_to_gnu): Tidy up.
7763         (Call_to_gnu): Implement support for unnamed parameters in a
7764         variadic C function.
7765         * gcc-interface/utils.c: Include snames.h.
7766         (copy_type): Tidy up.
7768 2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
7770         * exp_ch5.adb (Expand_N_Assignment_Statement): Do not apply
7771         range checks to allocators here.
7773 2020-06-19  Justin Squirek  <squirek@adacore.com>
7775         * lib.adb (Check_Same_Extended_Unit): Add check to determine if
7776         the body for the subunits exist in the same file as their
7777         specifications.
7779 2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
7781         * exp_aggr.adb (In_Place_Assign_OK): In an allocator context,
7782         check the bounds of an array aggregate against those of the
7783         designated type, except if the latter is unconstrained.
7785 2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
7787         * sem_ch3.adb (Is_Visible_Component): Reason only on the private
7788         status of the original type in an instance body.
7790 2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
7792         * sem_res.adb (Resolve_Qualified_Expression): Do not override the
7793         type of the node when it is unconstrained if it is for an allocator.
7795 2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
7797         * sem_res.adb (Resolve_Allocator): Call Resolve_Qualified_Expression
7798         on the qualified expression, if any, instead of doing an incomplete
7799         type resolution manually.
7800         (Resolve_Qualified_Expression): Apply predicate check to operand.
7802 2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
7804         * sem_ch4.adb (Analyze_Selected_Component): In an instance body,
7805         also invoke Find_Component_In_Instance on the parent subtype of
7806         a derived tagged type immediately visible.  Remove obsolete case.
7808 2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
7810         * exp_attr.adb (Get_Integer_Type): Return the largest supported
7811         unsigned integer type if need be.
7813 2020-06-19  Justin Squirek  <squirek@adacore.com>
7815         * sem_warn.adb (Warn_On_Known_Condition): Add general sanity
7816         check that asserts the original source node being checked
7817         contains an entity. If not, it could be the result of special
7818         case expansion for type conversions.
7820 2020-06-19  Ed Schonberg  <schonberg@adacore.com>
7822         * sem_ch6.adb (Analyze_Expression_Function): Do not indicate
7823         that the function has a completion if it appears within a Ghost
7824         generic package.
7826 2020-06-19  Bob Duff  <duff@adacore.com>
7828         * libgnat/a-ststbo.adb (Write): Replace pragma Assert with "if
7829         ... raise Constraint_Error".
7831 2020-06-19  Justin Squirek  <squirek@adacore.com>
7833         * widechar.adb, widechar.ads (Skip_Wide): Catch validity check
7834         failure when skipping over characters, and update comment to
7835         reflect Skip_Wide's usage in error printing.
7837 2020-06-19  Javier Miranda  <miranda@adacore.com>
7839         * exp_ch3.ads (Ensure_Activation_Chain_And_Master): New
7840         subprogram.
7841         * exp_ch3.adb (Ensure_Activation_Chain_And_Master): New
7842         subprogram that factorizes code.
7843         (Expand_N_Object_Declaration): Call new subprogram.
7844         * sem_ch6.adb (Analyze_Function_Return): Returning a
7845         build-in-place unconstrained array type defer the full analysis
7846         of the returned object to avoid generating the corresponding
7847         constrained subtype; otherwise the bounds would be created in
7848         the stack and a dangling reference would be returned pointing to
7849         the bounds.
7851 2020-06-19  Arnaud Charlet  <charlet@adacore.com>
7853         * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
7854         libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
7855         libgnat/a-nbnbre.ads: Update spec according to AI12-0366.
7857 2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
7859         * checks.ads: Remove excessive whitespace in declarations of
7860         functions for check suppression.
7862 2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
7864         * sem_ch7.adb (Hide_Public_Entities): Split handling of objects
7865         and subprograms, and do not reject the latter upfront in nested
7866         instance specs if there are no referencer subprograms at all.
7867         (Analyze_Package_Body_Helper): Also call Hide_Public_Entities on
7868         nested generic instances.
7870 2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
7872         * sem_attr.adb (Analyze_Attribute): Reject illegal positional
7873         component associations; fix syntax in comment about named
7874         component associations.
7876 2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
7878         * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Modify a nested
7879         Get_Component_Type routine to return a component and not just
7880         its type; use this routine to decorate the identifier within the
7881         delta aggregate.
7883 2020-06-19  Arnaud Charlet  <charlet@adacore.com>
7885         * sem_ch4.adb (Find_Equality_Types.Check_Access_Attribute): New.
7886         (Find_Equality_Types): Move universal_access related checks at
7887         the end of the processing and add call to
7888         Check_Access_Attribute.
7890 2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
7892         * sem_prag.adb (Process_Convention): Revert previous change.
7894 2020-06-19  Eric Botcazou  <ebotcazou@adacore.com>
7896         * checks.ads (Apply_Static_Length_Check): Move up.
7897         (Apply_Range_Check): Add parameter Insert_Node.
7898         * checks.adb (Apply_Selected_Range_Checks): Merge into...
7899         (Apply_Range_Check): ...this.  Add parameter Insert_Node,
7900         pass it as Warn_Node to Selected_Range_Checks and use it
7901         as insertion point for the checks.
7902         * sem_ch3.adb (Analyze_Subtype_Declaration): Rewrite block
7903         dealing with the range checks for the subtype indication.
7904         Use local variable and call Apply_Range_Check in both cases.
7906 2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
7908         * exp_attr.adb (Expand_N_Attribute_Reference): Call Ensure_Valid
7909         on the expression of an object declaration that captures the
7910         value of 'Old prefix.
7912 2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
7914         * exp_attr.adb (Expand_N_Attribute_Reference): Add comment.
7915         * sem_attr.adb (Analyze_Attribute): Add ??? comment.
7916         * sem_util.ads (Valid_Scalars): This routine is only used for
7917         'Valid_Scalars and not for 'Valid.
7919 2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
7921         * exp_attr.adb (Expand_N_Attribute_Reference): Do not call
7922         Scalar_Part_Present on the array component's type.
7923         (Build_Array_VS_Func): Remove Comp_Typ parameter, because it can
7924         be easily computed from the Array_Top parameter *and redundant
7925         parameters are confusing and error-prone).
7927 2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
7929         * exp_attr.adb (Build_Record_VS_Func): Strip privacy and type
7930         derivation from the root type when 'Valid_Scalars is applied to
7931         a class-wide type.
7933 2020-06-19  Piotr Trojanek  <trojanek@adacore.com>
7935         * checks.adb (Apply_Parameter_Validity_Checks): Remove testing
7936         of Check_Validity_Of_Parameters for every formal parameter and
7937         function result.
7939 2020-06-19  Arnaud Charlet  <charlet@adacore.com>
7941         * sem_warn.adb (Warn_On_Overlapping_Actuals): Add missing
7942         warning tag.
7944 2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
7946         * exp_ch4.adb (Get_Size_For_Range): Only make sure to return a
7947         size lower than that of the original type if possible.
7948         * libgnat/s-rannum.adb (Random_Discrete): Back out optimization
7949         added for 32-bit types.
7951 2020-06-18  Arnaud Charlet  <charlet@adacore.com>
7953         * sem_ch6.ads, sem_ch6.adb (Check_Formal_Conformance): New
7954         subprogram.
7955         (Check_Conformance): Move code to Check_Formal_Conformance.
7956         * sem_ch8.adb (Analyze_Subprogram_Renaming): Check for formal
7957         conformance when needed.
7959 2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
7961         * exp_ch4.adb (Narrow_Large_Operation): New procedure to try
7962         and narrow large arithmetic and comparison operations.
7963         (Expand_N_In): Call it.
7964         (Expand_N_Op_Abs): Likewise.
7965         (Expand_N_Op_Add): Likewise.
7966         (Expand_N_Op_Divide): Likewise.
7967         (Expand_N_Op_Eq): Likewise.
7968         (Expand_N_Op_Ge): Likewise.
7969         (Expand_N_Op_Gt): Likewise.
7970         (Expand_N_Op_Le): Likewise.
7971         (Expand_N_Op_Lt): Likewise.
7972         (Expand_N_Op_Minus): Likewise.
7973         (Expand_N_Op_Mod): Likewise.
7974         (Expand_N_Op_Multiply): Likewise.
7975         (Expand_N_Op_Ne): Likewise.
7976         (Expand_N_Op_Plus): Likewise.
7977         (Expand_N_Op_Rem): Likewise.
7978         (Expand_N_Op_Subtract): Likewise.
7979         (Expand_N_Type_Conversion): Use Convert_To procedure.
7980         * exp_ch9.adb (Is_Pure_Barrier) <N_Identifier>: Skip all
7981         numeric types.
7982         <N_Type_Conversion>: Use explicit criterion.
7984 2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
7986         * exp_ch4.adb (Expand_Allocator_Expression): Apply constraint
7987         and predicate checks for the qualified expression on entry,
7988         followed by constraint and predicate checks for the allocator
7989         itself, and return early if this results in a static error.
7990         (Expand_N_Allocator): Do not do the same here.  Instead apply
7991         constraint and predicate checks for arrays in the subtype
7992         indication case.
7993         * exp_ch5.adb (Expand_N_Assignment_Statement): Do not apply
7994         range checks to allocators here.
7996 2020-06-18  Javier Miranda  <miranda@adacore.com>
7998         * exp_ch6.adb (BIP_Suffix_Kind, Is_Build_In_Place_Entity): Move
7999         declarations...
8000         * exp_ch6.ads: Here.
8001         * exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Do not rely
8002         on the name of the scope to locate the extra formal BIPalloc
8003         since they are copied when the pointer type associated with
8004         dispatching calls is built; rely on routines
8005         Is_Build_In_Place_Entity and BIP_Suffix_Kind.
8006         * exp_disp.adb (Expand_Dispatching_Call): Set the scope of the
8007         first extra formal of the internally built pointer type.
8008         * sem_ch3.adb (Derive_Subprogram): Do not inherit extra formals
8009         from a limited interface parent since limitedness is not
8010         inherited in such case (AI-419) and this affects the extra
8011         formals.
8012         * sprint.adb (Write_Itype): Output extra formals of subprogram
8013         types.
8015 2020-06-18  Ghjuvan Lacambre  <lacambre@adacore.com>
8017         * errout.adb (Write_Error_Summary): Display number of warnings
8018         treated as errors.
8019         * errutil.ads: Update comment.
8021 2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
8023         * exp_attr.adb (Analyze_Attribute) <Asm_{In,Out}put>: Alphabetize.
8024         <Component_Size>: Add check for universal integer attribute.
8025         <Aft>, <Bit_Order>, <Definite>, <Max_Alignment_For_Allocation>,
8026         <Scalar_Storage_Order>: Raise Program_Error on them.
8027         * sem_attr.adb (Eval_Attribute) <Component_Size>: Add comment on
8028         the packed array case.
8030 2020-06-18  Steve Baird  <baird@adacore.com>
8032         * sem_util.adb (Object_Access_Level): Treat a 'Old attribute
8033         reference like an aggregate in determining its static
8034         accessibility level; after the evaluation of the relevant
8035         post-condition, the implicitly declared constant associated with
8036         an Old attribute reference ceases to exist. Similarly for
8037         Loop_Entry attribute.
8038         * exp_ch6.adb (Expand_Call_Helper): For an attribute reference
8039         that is expanded into a reference to an implicitly declared
8040         constant (e.g., a 'Old or 'Loop_Entry attribute), compute the
8041         dynamic accessibility level of that constant by looking at the
8042         declaration of the constant (as opposed to looking at the
8043         attribute reference).
8045 2020-06-18  Steve Baird  <baird@adacore.com>
8047         * exp_ch3.adb (Expand_N_Object_Declaration): Do not generate a
8048         default initial condition check for the declaration of an
8049         imported object.
8051 2020-06-18  Arnaud Charlet  <charlet@adacore.com>
8053         * Makefile.rtl: Add s-statxd.o.
8054         * bindgen.adb (Gen_Adainit): Add support for XDR_Stream.
8055         * bindusg.adb (Display): Add mention of -xdr.
8056         * gnatbind.adb: Process -xdr switch.
8057         * init.c (__gl_xdr_stream): New.
8058         * opt.ads (XDR_Stream): New.
8059         * libgnat/s-stratt__xdr.adb: Rename to...
8060         * libgnat/s-statxd.adb: this and adjust.
8061         * libgnat/s-statxd.ads: New.
8062         * libgnat/s-stratt.ads, libgnat/s-stratt.adb: Choose between
8063         default and XDR implementation at runtime.
8064         * libgnat/s-ststop.ads: Update comments.
8065         * doc/gnat_rm/implementation_advice.rst: Update doc on XDR
8066         streaming.
8067         * gnat_rm.texi: Regenerate.
8069 2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
8071         * sem_attr.adb (Analyze_Attribute) <To_Address>: Use the address
8072         size of the target instead of the host when checking the value of
8073         a static expression.  Also use standard idiom for exponentiation.
8075 2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
8077         * sem_prag.adb (Process_Convention): Give a warning on C_Variadic_n
8078         being applied to a subprogram with exactly n parameters.
8080 2020-06-18  Arnaud Charlet  <charlet@adacore.com>
8082         * libgnarl/s-osinte__linux.ads, libgnat/g-io.adb,
8083         libgnat/g-socket.adb, libgnat/g-socthi.adb,
8084         libgnat/g-socthi.ads, libgnat/g-socthi__vxworks.adb,
8085         libgnat/g-socthi__vxworks.ads, libgnat/g-sothco.ads,
8086         libgnat/s-io.adb, libgnat/a-except.adb: Fix function profile
8087         mismatch with imported C functions.
8089 2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
8091         * exp_ch6.adb (Expand_Call_Helper): Remove superfluous calls
8092         to Relocate_Node and merge calls to Analyze and Resolve in a
8093         couple of places.  Do not attempt to generate a range check
8094         for an actual parameter against the formal's type of a derived
8095         subprogram after generating a conversion to the formal's type
8096         of the parent subprogram.
8098 2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
8100         * checks.adb (Compute_Range_For_Arithmetic_Op): New procedure to
8101         compute a range for an arithmetical operation extracted from...
8102         (Minimize_Eliminate_Overflows): ...here.  Call it.
8103         (Determine_Range_Cache_O): New cache for Original_Node nodes.
8104         (Determine_Range): Call Compute_Range_For_Arithmetic_Op for all
8105         arithmetic expressions. Use Attribute_Id in lieu of Attribute_Name
8106         for attributes. Add handling for Range_Length alongside Length.
8107         Add specific handling for Alignment, Bit, First_Bit, Last_Bit,
8108         Max_Size_In_Storage_Elements, Position, Bit_Position,
8109         Component_Size, Object_Size, Size, Value_Size, Descriptor_Size.
8110         (Enable_Overflow_Check): Omit the check for Abs and Minus if the
8111         operand cannot be the largest negative number.
8112         (Selected_Length_Checks): Use Pos for Number_Dimensions.
8113         * exp_attr.adb (Expand_N_Attribute_Reference): Move compile-time
8114         handling of Bit_Position, Descriptor_Size, First_Bit, Last_Bit
8115         and Position to...
8116         * sem_attr.adb (Eval_Attribute): ...here.  Move up Alignment for
8117         objects and use Compile_Time_Known_Attribute in this case too.
8119 2020-06-18  Ghjuvan Lacambre  <lacambre@adacore.com>
8121         * erroutc.ads: Declare new Is_Compile_Time_Msg boolean,
8122         add new Compile_Time_Pragma field to Error_Msg_Object type.
8123         (Count_Compile_Time_Pragma_Warnings): New function.
8124         * erroutc.adb (Count_Compile_Time_Pragma_Warnings): New
8125         function.
8126         (Compilation_Errors): Take Compile_Time warnings into account
8127         when tallying Errors/Warnings.
8128         * errout.ads (Error_Msg): New procedure.
8129         * errout.adb (Error_Msg): New procedure.
8130         (Error_Msg_Internal): Set new Compile_Time_Pragma field in
8131         Error_Msg_Object.
8132         * errutil.adb (Error_Msg): Set new Compile_Time_Pragma field in
8133         Error_Msg_Object.
8134         * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Pass
8135         True to new Error_Msg procedure.
8136         * doc/gnat_rm/implementation_defined_pragmas.rst: Update doc for
8137         the Compile_Time_Warning pragma.
8138         * gnat_rm.texi: Regenerate.
8139         * opt.ads: Update comment.
8141 2020-06-18  Arnaud Charlet  <charlet@adacore.com>
8143         * sem_ch4.adb (Check_Compatible_Profiles): Add explicit
8144         initialization.
8146 2020-06-18  Piotr Trojanek  <trojanek@adacore.com>
8148         * checks.adb (Generate_Index_Checks): Handle
8149         N_Subtype_Indication returned from Scalar_Range.
8151 2020-06-18  Piotr Trojanek  <trojanek@adacore.com>
8153         * checks.adb, sem_ch3.adb: Minor refactorings.
8154         * sem_eval.adb (Eval_Qualified_Expression): Fix reference to RM
8155         rule in comment; only set a local variable Hex in the branch
8156         where it is used.
8158 2020-06-18  Piotr Trojanek  <trojanek@adacore.com>
8160         * sem_eval.adb (Check_Non_Static_Context): Use Is_RTE.
8162 2020-06-18  Arnaud Charlet  <charlet@adacore.com>
8164         * sem_ch4.adb (Find_Equality_Types.Check_Access_Object_Types):
8165         New function, used to implement RM 4.5.2 (9.6/2).
8166         (Find_Equality_Types.Check_Compatible_Profiles): New function,
8167         used to implement RM 4.5.2(9.7/2).
8168         (Find_Equality_Types.Reference_Anonymous_Access_Type): New
8169         function.
8170         (Find_Equality_Types.Try_One_Interp): Fix handling of anonymous
8171         access types which was accepting both too much and too little.
8172         Remove accumulated special and incomplete cases for
8173         instantiations, replaced by Has_Compatible_Type.
8174         (Analyze_Overloaded_Selected_Component): Use
8175         Is_Anonymous_Access_Type instead of Ekind_In.
8176         * sem_res.adb: Code cleanup and bug fix: use
8177         Is_Anonymous_Access_Type instead of Ekind_In.  Relax checking of
8178         anonymous access parameter when universal_access "=" is
8179         involved.
8180         * sem_type.adb: Likewise.
8181         (Find_Unique_Type): Move code from here...
8182         (Specific_Type): ...to here. Also add missing handling of access
8183         to class wide types.
8184         * einfo.ads, einfo.adb (Is_Access_Object_Type): New.
8186 2020-06-18  Bob Duff  <duff@adacore.com>
8188         * libgnat/a-strsto.ads, libgnat/a-ststbo.adb,
8189         libgnat/a-ststbo.ads, libgnat/a-ststun.adb,
8190         libgnat/a-ststun.ads: New files, containing packages
8191         Ada.Streams.Storage, Ada.Streams.Storage.Bounded, and
8192         Ada.Streams.Storage.Unbounded.
8193         * impunit.adb, Makefile.rtl: Add new file names.
8195 2020-06-18  Javier Miranda  <miranda@adacore.com>
8197         * sem_ch13.adb (Has_Good_Profile): Enforce strictness in the
8198         check. Required to detect wrong profiles for Input and Output.
8199         (Analyze_Stream_TSS_Definition): Minor enhancement in the text
8200         of the error for class-wide attributes.
8202 2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
8204         * exp_attr.adb (Get_Integer_Type): Pick an unsigned type based
8205         on the Esize of the base type of the input type.
8207 2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
8209         * exp_ch4.adb (Expand_Array_Equality): For the optimization of
8210         the 2-element case, build new expression lists for the indices.
8212 2020-06-18  Richard Kenner  <kenner@adacore.com>
8214         * sem_util.adb (Enclosing_Subprogram): No longer need
8215         Convention_Protected.
8217 2020-06-18  Claire Dross  <dross@adacore.com>
8219         * sem_util.adb (Is_OK_Volatile_Context): Return False on
8220         definitions of constants declared in declare expressions.
8222 2020-06-18  Piotr Trojanek  <trojanek@adacore.com>
8224         * doc/gnat_rm/implementation_defined_aspects.rst
8225         (Relaxed_Initialization): New implementation-defined aspect.
8226         * doc/gnat_rm/implementation_defined_attributes.rst
8227         (Initialized): New implementation-defined attribute.
8228         * gnat_rm.texi: Regenerate.
8230 2020-06-18  Javier Miranda  <miranda@adacore.com>
8232         * exp_disp.adb (Expand_Dispatching_Call): Add missing decoration
8233         of attribute Extra_Accessibility_Of_Result.
8234         * freeze.adb (Check_Extra_Formals): No check required if
8235         expansion is disabled; Adding check on
8236         Extra_Accessibilty_Of_Result.
8237         (Freeze_Subprogram): Fix decoration of
8238         Extra_Accessibility_Of_Result.
8239         * sem_ch3.adb (Derive_Subprogram): Fix decoration of
8240         Extra_Accessibility_Of_Result
8242 2020-06-18  Eric Botcazou  <ebotcazou@adacore.com>
8244         * exp_ch4.adb (Optimize_Length_Comparison): Accept 32-bit values
8245         in the full unsigned range.
8247 2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
8249         * checks.adb (Apply_Universal_Integer_Attribute_Checks): Do not do
8250         anything when the type of the node is already Universal_Integer.
8252 2020-06-17  Arnaud Charlet  <charlet@adacore.com>
8254         * sem_ch10.adb (Expand_With_Clause): Add missing handling of
8255         N_Generic_Subprogram_Declaration, N_Subprogram_Declaration,
8256         N_Subprogram_Body.
8258 2020-06-17  Ed Schonberg  <schonberg@adacore.com>
8260         * sem_ch13.adb: (Check_Inherited_Indexing): Check that a type
8261         derived from an indexable container type cannot specify an
8262         indexing aspect if the same aspect is not specified for the
8263         parent type (RM 4.1.6 (6/5), AI12-160). Add a check that a
8264         specified indexing aspect for a derived type is confirming.
8266 2020-06-17  Gary Dismukes  <dismukes@adacore.com>
8268         * exp_ch9.adb (Build_Protected_Subp_Specification): Add ???
8269         comment about the flag Has_Nested_Subprogram not being set here.
8270         (Expand_N_Protected_Body): If the original body for a protected
8271         subprogram has the flag Has_Nested_Subprogram set, then set that
8272         flag on the new unprotected subprogram body that's created for
8273         it, and reset the Scope fields of its top level declarations,
8274         which have been effectively taken from the original protected
8275         subprogram body. Add ??? comment about unclear testing of
8276         Corresponding_Spec.
8278 2020-06-17  Javier Miranda  <miranda@adacore.com>
8280         * aspects.ads (type Aspect_Id): Add Aspect_Yield as a Boolean
8281         aspect, and update the Is_Representation_Aspect, Aspect_Names,
8282         and Aspect_Delay arrays.
8283         * einfo.ads, einfo.adb (Has_Yield_Aspect, Yield_Aspect): New
8284         subprograms.
8285         * exp_ch6.adb (Add_Return, Expand_Non_Function_Return,
8286         Expand_Simple_Function_Return): Add calls to Yield.
8287         * exp_ch9.adb (Build_Accept_Body, Expand_N_Accept_Statement):
8288         Add calls to Yield.
8289         * rtsfind.ads (RE_Yield): Adding support to generate calls to
8290         the runtime service Ada.Dispatching.Yield
8291         * sem_ch13.adb (Analyze_Aspect_Yield): New subprogram.
8292         * sem_ch3.adb (Derive_Subprogram): Inherit attribute
8293         Has_Yield_Aspect.
8294         * sem_ch8.adb (Analyze_Subprogram_Renaming): Check consistency
8295         of Has_Yield in the actual subprogram of a generic
8296         instantiation.
8297         * sem_disp.adb (Check_Dispatching_Operation): Check that if the
8298         Yield aspect is specified for a dispatching subprogram that
8299         inherits the aspect, the specified value shall be confirming.
8300         * sem_prag.adb (Analyze_Pragma [Pragma_Implemented]): Check that
8301         the implementation kind By_Protected_Procedure cannot be applied
8302         to a procedure that has aspect Yield.
8304 2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
8306         * exp_ch4.adb (Expand_N_Op_Expon): Replace all occurrences of
8307         the original right operand with the relocated version.
8309 2020-06-17  Javier Miranda  <miranda@adacore.com>
8311         * exp_ch6.adb (Has_BIP_Extra_Formal): New subprogram.
8312         (Needs_BIP_Task_Actuals): Add support for the subprogram type
8313         internally generated for dispatching calls.
8314         * exp_disp.adb (Expand_Dispatching_Call): Adding code to
8315         explicitly duplicate the extra formals of the target subprogram.
8316         * freeze.adb (Check_Extra_Formals): New subprogram.
8317         (Freeze_Subprogram): Fix decoration of Extra_Formals.
8318         * sem_ch3.adb (Derive_Subprogram): Fix decoration of
8319         Extra_Formals.
8321 2020-06-17  Bob Duff  <duff@adacore.com>
8323         * par.adb (P_Basic_Declarative_Items): Update comment about
8324         Declare_Expression.
8325         * par-ch3.adb (P_Declarative_Items): Pass in Declare_Expression
8326         flag, and if True, skip the call to Style.Check_Indentation.
8327         * par-ch4.adb (P_Declare_Expression): Fix incorrect comment.
8329 2020-06-17  Arnaud Charlet  <charlet@adacore.com>
8331         * sem_res.adb (Valid_Conversion): Change error message to make
8332         it more user-friendly.
8334 2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
8336         * checks.ads (Apply_Length_Check_On_Assignment): Declare.
8337         * checks.adb (Apply_Length_Check_On_Assignment): New procedure
8338         to apply a length check to an expression in an assignment.
8339         * exp_ch5.adb (Expand_Assign_Array): Call it instead of calling
8340         Apply_Length_Check to generate a length check.
8341         * sem_ch5.adb (Analyze_Assignment): Likewise.
8343 2020-06-17  Piotr Trojanek  <trojanek@adacore.com>
8345         * einfo.adb (Is_Relaxed_Initialization_State): Add reference to
8346         SPARK RM.
8347         * sem_attr.adb (Analyze_Attribute_Old_Result): Likewise.
8348         * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Reject
8349         aspect on completions of private types and deferred constants.
8350         * sem_util.ads, sem_util.adb (Has_Relaxed_Initialization):
8351         Adjust comments; support queries for constants.
8353 2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
8355         * cstand.adb (Stloc): Change to a renaming.
8356         (Staloc): Likewise.
8357         (Build_Unsigned_Integer_Type): Remove Nam parameter, use local
8358         constants and do not call Make_Name.
8359         (Make_Dummy_Index): Use local constants.
8360         (Create_Standard): Pass the name of entities as parameter in
8361         calls to New_Standard_Entity and remove calls to Make_Name.
8362         Adjust calls to Build_Unsigned_Integer_Type.
8363         (Identifier_For): Use local constant.
8364         (Make_Component): Pass the name of the component as parameter
8365         in call to New_Standard_Entity and remove call to Make_Name.
8366         (Make_Formal): Likewise.  Rename Formal_Name parameter into
8367         Nam and use local constant.
8368         (Make_Name): Delete.
8369         (New_Operator): Use local constant.
8370         (New_Standard_Entity): Rename S parameter into Nam and build
8371         the name here.  Remove call to Make_Name.
8372         (Register_Float_Type): Pass the name of the type as parameter
8373         in call to New_Standard_Entity and remove call to Make_Name.
8375 2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
8377         * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
8378         Remove condition added for scalar types.
8380 2020-06-17  Gary Dismukes  <dismukes@adacore.com>
8382         * exp_ch3.ads (Build_Access_Subprogram_Wrapper_Body): Adjust
8383         colon columns; reformat comment.
8384         * exp_ch3.adb
8385         (Build_Access_Subprogram_Wrapper_Body): Likewise.
8386         * sem_ch3.adb (Build_Access_Subprogram_Wrapper): Reformat spec
8387         comment and reformat comment in body.
8388         (Analyze_Full_Type_Declaration): Reformat comment.
8389         (Replace_Type_Name): Fixed three typos, plus reformatting of
8390         comment.
8391         * sem_prag.adb (Analyze_Pre_Post_Condition): Fix typos.
8392         * sem_warn.adb (Warn_On_Overlapping_Actuals): Edit comments:
8393         remove hyphen, add missing word.
8395 2020-06-17  Bob Duff  <duff@adacore.com>
8397         * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
8398         libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb,
8399         libgnat/a-cborma.adb, libgnat/a-cborse.adb,
8400         libgnat/a-cdlili.adb, libgnat/a-chtgbk.adb,
8401         libgnat/a-chtgke.adb, libgnat/a-cidlli.adb,
8402         libgnat/a-cihama.adb, libgnat/a-cihase.adb,
8403         libgnat/a-cimutr.adb, libgnat/a-ciorma.adb,
8404         libgnat/a-ciorse.adb, libgnat/a-cobove.adb,
8405         libgnat/a-cohama.adb, libgnat/a-cohase.adb,
8406         libgnat/a-coinve.adb, libgnat/a-comutr.adb,
8407         libgnat/a-convec.adb, libgnat/a-coorma.adb,
8408         libgnat/a-coorse.adb, libgnat/a-crbtgk.adb,
8409         libgnat/a-crbtgo.adb, libgnat/a-rbtgso.adb: Move tampering
8410         checks earlier.
8412 2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
8414         * exp_attr.adb (Get_Integer_Type): Use standard types without
8415         a specific size.
8416         * sem_res.adb (Resolve_Unchecked_Type_Conversion): Remove a
8417         redundant intermediate conversion to Universal_Integer.
8419 2020-06-17  Piotr Trojanek  <trojanek@adacore.com>
8421         * sem_util.ads, sem_util.adb (Get_Iterable_Type_Primitive): Fix
8422         comment and enforce it with an assertion in the body.
8424 2020-06-17  Ed Schonberg  <schonberg@adacore.com>
8426         * sem_ch3.adb (Analyze_Full_Type_Declaration): For an
8427         access_to_subprogram declaration that has aspect specifications,
8428         call Build_Access_ Subprogram_Wrapper at once, so that pre- and
8429         postcondition aspects are analyzed in the context of a
8430         subprogram declaration.
8431         (Build_Access_Subprogram_Wrapper): Examine aspect specifications
8432         of an Access_To_Subprogram declaration. If pre- or
8433         postconditions are declared for it, create declaration for
8434         subprogram wrapper and add the corresponding aspect
8435         specifications to it. Replace occurrences of the type name by
8436         that of the generated subprogram, so that attributes 'Old and
8437         'Result can appear in a postcondition.
8438         * exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Moved
8439         here from sem_prag.adb.
8440         * exp_ch3.ads (Build_Access_Subprogram_Wrapper_Body): Visible
8441         subprogram.
8442         * sem_prag.adb (Build_Access_Subprogram_Wrapper / _Body): Moved
8443         to sem_ch3.adb and exp_ch3.adb.
8445 2020-06-17  Piotr Trojanek  <trojanek@adacore.com>
8447         * atree.adb (Preserve_Comes_From_Source): Rewrite using
8448         Set_Comes_From_Source and Comes_From_Source, which enforce that
8449         the parameters are valid.
8450         * exp_ch4.adb, exp_ch5.adb, sem_ch12.adb, sem_ch6.adb,
8451         sem_res.adb: Rewrite using Preserve_Comes_From_Source.
8453 2020-06-17  Arnaud Charlet  <charlet@adacore.com>
8455         * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Remove obsolete
8456         comments.
8458 2020-06-17  Gary Dismukes  <dismukes@adacore.com>
8460         * aspects.ads (type Aspect_Id): Add Aspect_Static as a Boolean
8461         aspect, and update the Is_Representation_Aspect, Aspect_Names,
8462         and Aspect_Delay arrays.
8463         * exp_ch6.adb (Expand_Simple_Function_Return): In the case of a
8464         return for a static expression function, capture a copy of the
8465         expression of the return statement before it's expanded and
8466         reset its Analyzed flags. Then, just before leaving this
8467         procedure, if the expression was rewritten, set the
8468         Original_Node of the rewritten expression to the new copy and
8469         also set the Expression of the associated static expression
8470         function to designate that copy. This ensures that later copies
8471         of the expression made via New_Copy_Tree will fully copy all
8472         nodes of the expression tree.
8473         * inline.ads (Inline_Static_Expression_Function_Call): New
8474         procedure to evaluate and produce the result of a static call to
8475         a static expression function.
8476         * inline.adb: Add with and use for Sem_Res.
8477         (Establish_Actual_Mapping_For_Inlined_Call): New procedure
8478         extracted from code in Expand_Inlined_Call that traverses the
8479         actuals and formals of an inlined call and in some cases creates
8480         temporaries for holding the actuals, plus establishes an
8481         association between formals and actuals (via the Renamed_Object
8482         fields of the formals).
8483         (Formal_Is_Used_Once): Function removed from Expand_Inlined_Call
8484         and now nested in the above procedure.
8485         (Expand_Inlined_Call): Code for doing the formal/actual
8486         traversal is moved to Create_Actual_Temporaries and replaced
8487         with a call to that new procedure.
8488         (Inline_Static_Expression_Function_Call): New procedure to
8489         evaluate a static call to a static expression function,
8490         substituting actuals for their corresponding formals and
8491         producing a fully folded and static result expression. The
8492         function has subsidiary functions Replace_Formal and Reset_Sloc
8493         that take care of doing the mapping of formals to actuals and
8494         resetting the Slocs of subnodes of the mapped expression to that
8495         of the call so errors will be flagged on the call rather than
8496         function.
8497         * sem_ch6.adb (Analyze_Expression_Function): In the case of a
8498         static expression function, perform an additional preanalysis of
8499         the function's expression to ensure that it's a potentially
8500         static expression (according to the requirements of
8501         6.8(3.2/5-3.4/5)), and issue an error if it's not. The global
8502         flag Checking_Potentially_Static_Expression is set and unset
8503         around this checking.
8504         * sem_ch13.adb (Analyze_Aspect_Static): New procedure to enforce
8505         selected requirements of the new aspect Static on expression
8506         functions, including checking that the language version is
8507         Ada_2020 and that the entity to which it applies is an
8508         expression function whose formal parameters are of a static
8509         subtype and have mode 'in', its result subtype is a static
8510         subtype, and it has no pre- or postcondition aspects. A ???
8511         comment is added to indicate the need for adding checking that
8512         type invariants don't apply to the result type if the function
8513         is a boundary entity.
8514         (Analyze_One_Aspect): Call Analyze_Aspect_Static for aspect
8515         Static.
8516         * sem_elab.adb (Build_Call_Marker): Return without creating a
8517         call marker when the subprogram is a static expression function,
8518         since no ABE checking is needed for such functions.
8519         * sem_eval.ads (Checking_Potentially_Static_Expression): New
8520         function to return whether the checking for potentially static
8521         expressions is enabled.
8522         (Set_Checking_Potentially_Static_Expression): New procedure to
8523         enable or disable checking of potentially static expressions.
8524         * sem_eval.adb (Checking_For_Potentially_Static_Expression): New
8525         global flag for determining whether preanalysis of potentially
8526         static expression is being done, which affects the behavior of
8527         certain static evaluation routines.
8528         (Checking_Potentially_Static_Expression): New function to return
8529         whether the checking for potentially static expressions is
8530         enabled.
8531         (Eval_Call): When evaluating a call within a static expression
8532         function with checking of potentially static expression
8533         functions enabled, substitutes a static value in place of the
8534         call to allow folding of the expression.
8535         (Eval_Entity_Name): When evaluating a formal parameter of a
8536         static expression function with checking of potentially static
8537         expression functions enabled, substitutes a static value in
8538         place of the reference to the formal to allow folding of the
8539         expression.
8540         (Set_Checking_Potentially_Static_Expression): New procedure to
8541         enable or disable checking of potentially static expressions.
8542         * sem_res.adb (Resolve_Call): Test for a recursive call
8543         occurring within a static expression function and issue an error
8544         for such a call. Prevent the establishment of a transient scope
8545         in the case this is a call to a (string-returning) static
8546         expression function. When calling a static expression function,
8547         if no error has been posted on the function, call
8548         Inline_Static_Expression_Function_Call to convert the call into
8549         its equivalent static value.
8550         * sem_util.ads (Is_Static_Expression_Function): New function
8551         returning whether the subprogram entity passed to it is a static
8552         expression function.
8553         (Is_Static_Expression_Function_Call): New function to determine
8554         whether the call node passed to it is a static call to a static
8555         expression function.
8556         * sem_util.adb (Compile_Time_Constraint_Error): Suppress
8557         compile-time Constraint_Error reporting when checking for a
8558         potentially static expression.
8559         (Is_Static_Expression_Function): New function returning whether
8560         the subprogram entity passed to it is a static expression
8561         function by testing for the presence of aspect Static.
8562         (Has_All_Static_Actuals): New function in
8563         Is_Static_Expression_Function_Call that traverses the actual
8564         parameters of a function call and returns True only when all of
8565         the actuals are given by static expressions. In the case of a
8566         string-returning function, we call Resolve on each actual to
8567         ensure that their Is_Static_Expression flag properly reflects
8568         whether they're static, to allow suppressing creation of a
8569         transient scope within Resolve_Call. A prominent ??? comment is
8570         added to explain this rather unconventional call to Resolve.
8571         (Is_Static_Expression_Function_Call): New function that
8572         determines whether a node passed to it is a call to a static
8573         expression function all of whose actual parameters are given by
8574         static expressions.
8576 2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
8578         * exp_ch4.adb (Optimize_Length_Comparison): New local variable to
8579         record whether this may be a dynamic superflat case.
8580         (Is_Optimizable): Accept 0 as lower bound and set it in this case,
8581         but return false if the operand is not a length too.
8582         (Rewrite_For_Equal_Lengths): New procedure.
8583         Optimize the comparison of two lengths in the superflat case when
8584         the arrays have the same bounds.
8586 2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
8588         * doc/gnat_rm/implementation_defined_attributes.rst (Bit): Sharpen
8589         the comparison with System.Storage_Unit.
8590         (Descriptor_Size): Clear confusion about alignment and padding.
8591         * gnat_rm.texi: Regenerate.
8593 2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
8595         * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
8596         Do not replace the bound for an array type if it is public.
8598 2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
8600         * exp_ch4.adb (Optimize_Length_Comparison): Make sure the base
8601         types are the same when comparing Y'Last and X'Last directly.
8603 2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
8605         * exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_First>:
8606         Replace it with a direct reference to an entity which is not a
8607         discriminant for constrained array types.  Add same condition
8608         for scalar types.
8609         <Attribute_Last>: Merge with above implementation.
8610         * exp_ch4.adb (Optimize_Length_Comparison): Be prepared for a
8611         second entity whose length is compared.  Rename Prepare_64 to
8612         Convert_To_Long_Long_Integer.  If the second entity is present,
8613         compute the difference of the 'First attributes and compare the
8614         sum of 'Last of the second entity with this difference against
8615         'Last of the first entity.  Add a special case when the 'First
8616         attributes are equal.  Suppress overflow checks in all cases.
8618 2020-06-17  Piotr Trojanek  <trojanek@adacore.com>
8620         * doc/gnat_rm/implementation_defined_pragmas.rst, lib-writ.ads,
8621         par-prag.adb, sem_ch12.adb, sem_ch8.adb, sem_prag.adb: Fix
8622         casing of GNATprove.
8623         * gnat_rm.texi: Regenerate.
8625 2020-06-17  Piotr Trojanek  <trojanek@adacore.com>
8627         * checks.adb (Generate_Range_Check): Simplify redundant
8628         condition.
8629         * sem_ch3.adb (Check_Initialization, Process_Discriminants):
8630         Likewise.
8631         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Likewise.
8633 2020-06-17  Eric Botcazou  <ebotcazou@adacore.com>
8635         * exp_fixd.adb (Build_Conversion): Also preserve the
8636         Conversion_OK flag of an inner conversion.
8638 2020-06-17  Piotr Trojanek  <trojanek@adacore.com>
8640         * sem_ch5.adb (Analyze_Iterator_Specification): Enable expansion
8641         that creates a renaming that removes side effects from the
8642         iterated object in the GNATprove mode; then analyze reference to
8643         this renaming (it is required for GNATprove and harmless for
8644         GNAT).
8646 2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
8648         * sinfo.ads (Conversion_OK): Document use for 'Pos and 'Val.
8649         * exp_attr.adb (Get_Integer_Type): New function returning a
8650         small integer type appropriate for an enumeration type.
8651         (Expand_N_Attribute_Reference) <Attribute_Enum_Rep>: Call it.
8652         <Attribute_Pos>: For an enumeration type with a standard
8653         representation, expand to a conversion with Conversion_OK.
8654         <Attribute_Val>: Likewise.
8655         * exp_ch4.adb (Expand_N_Type_Conversion): Do not expand when
8656         the target is an enumeration type and Conversion_OK is set.
8658 2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
8660         * sem_ch4.adb (Common_Type): Go to Underlying_Full_View, if any.
8662 2020-06-16  Richard Kenner  <kenner@adacore.com>
8664         * exp_unst.adb (Subp_Index): Change way we detect internal
8665         protected subprograms.
8667 2020-06-16  Richard Kenner  <kenner@adacore.com>
8669         * comperr.adb (Compiler_Abort): Clarify message displayed to
8670         customers.
8672 2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
8674         * checks.adb, doc/gnat_ugn/the_gnat_compilation_model.rst,
8675         einfo.ads, exp_ch5.adb, exp_ch7.adb, lib-xref.ads,
8676         libgnat/g-spitbo.ads, make.adb, sem_aux.adb, sem_ch3.adb,
8677         sem_ch4.adb, sem_ch5.adb, urealp.adb: Fix wrong casing.
8678         * gnat_ugn.texi: Regenerate.
8680 2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
8682         * einfo.adb, exp_spark.adb, exp_util.adb, sem_eval.adb: Replace
8683         "Ekind ... in Object_Kind" with "Is_Object (...)".
8685 2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
8687         * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix typo in
8688         comment.
8690 2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
8692         * exp_util.adb (Evaluate_Name): Force evaluation of aggregates;
8693         recursively evaluate expression of a qualified expression; fix
8694         location of the comment for an attribute referenced and an
8695         indexed component.
8697 2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
8699         * freeze.adb (Freeze_Expression): Use consistent style and
8700         formatting in a couple of cases.
8702 2020-06-16  Steve Baird  <baird@adacore.com>
8704         * libgnat/a-nbnbin.ads, libgnat/a-nbnbre.ads: Uncomment the
8705         commented-out Integer_Literal aspect specification for type
8706         Big_Integer.
8708 2020-06-16  Javier Miranda  <miranda@adacore.com>
8710         * exp_ch6.adb (BIP_Suffix_Kind, Check_BIP_Actuals,
8711         Is_Build_In_Place_Entity): New subprograms.
8712         (Make_Build_In_Place_Call_In_Allocator,
8713         Make_Build_In_Place_Call_In_Anonymous_Context,
8714         Make_Build_In_Place_Call_In_Assignment,
8715         Make_Build_In_Place_Call_In_Object_Declaration): Add assertions.
8716         (Needs_BIP_Task_Actuals): Add missing support for thunks.
8717         (Expand_Actuals): Ensure that the BIP call has available an
8718         activation chain and the _master variable.
8719         * exp_ch9.adb (Find_Enclosing_Context): Initialize the list of
8720         declarations of empty blocks when the _master variable must be
8721         declared and the list was not available.
8723 2020-06-16  Bob Duff  <duff@adacore.com>
8725         * par-ch4.adb (P_Case_Expression): Move to be local.
8726         (P_Declare_Expression): New parsing routine.
8727         (P_Unparen_Cond_Expr_Etc): New name for
8728         P_Unparen_Cond_Case_Quant_Expression which was missing one case
8729         in its name (iterated component association), and we're adding a
8730         new case (declare expression), so lets use "Etc" instead of
8731         trying to pack all those things into the name.  Add call to
8732         P_Declare_Expression, and check for missing parens.
8733         (P_Expression_If_OK, P_Expression_Or_Range_Attribute_If_OK): Add
8734         Tok_Declare.
8735         * par.adb (P_Basic_Declarative_Items): Add parameter
8736         Declare_Expression so we can tailor the error message about
8737         incorrect bodies.
8738         (P_Case_Expression): Move to body.
8739         * par-ch3.adb (P_Basic_Declarative_Items): Tailor the error
8740         message about incorrect bodies.
8741         * par-ch7.adb (P_Package): Pass Declare_Expression => False to
8742         P_Basic_Declarative_Items.
8743         * sem.ads (In_Declare_Expr): Counter used to determine whether
8744         we are analyzing a declare_expression. Needed to give errors
8745         about things that are not allowed in declare_expression, such as
8746         the 'Access attribute.
8747         * sem.adb (Do_Analyze): Save/restore In_Declare_Expr.
8748         * sem_ch4.adb (Analyze_Expression_With_Actions): Give this node
8749         its own scope.  That seems better in general, but it is
8750         necessary for declare_expressions.  For example, an identifier
8751         declared in a declare_expression should not clash with the same
8752         identifier in an outer scope.  If this is a declare_expression,
8753         indicated by Comes_From_Source, then check legality rules, and
8754         incr/decr In_Declare_Expr.
8755         * sem_aggr.adb (Resolve_Aggregate): Allow an applicable index
8756         constraint for a declare_expression, so if its expression is an
8757         array aggregate, it can have "others => ...".
8758         * sem_attr.adb (Analyze_Access_Attribute): Disallow these
8759         attributes in declare_expressions. Add comment to make it clear
8760         that Unrestricted_Access is included.
8761         * sinfo.ads, sinfo.adb, atree.ads, atree.adb: Remove the
8762         now-incorrect comment in sinfo.ads that says
8763         N_Expression_With_Actions has no proper scope.  Add 17-parameter
8764         versions of Nkind_In.  Remove the 16-parameter versions of
8765         Nkind_In.
8767 2020-06-16  Arnaud Charlet  <charlet@adacore.com>
8769         * sem_aux.ads, sem_aux.adb (Is_Record_Or_Limited_Type): New
8770         function.
8771         * exp_ch4.adb, sem_ch4.adb (Analyze_Membership_Op,
8772         Expand_Set_Membership.Make_Cond): Choose between primitive and
8773         predefined equality for membership tests.
8775 2020-06-16  Ed Schonberg  <schonberg@adacore.com>
8777         * sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify code and
8778         implement AI12-0216 which clarifies the conditions under which
8779         overlapping actuals in a call are illegal. If proper warnings
8780         are enabled, GNAT also emits warnings in legal cases of
8781         overlopping actuals.
8783 2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
8785         * freeze.adb (Freeze_Expression): Stop climbing the parent chain
8786         at a N_{Case,If}_Expression node for a type or an entity that
8787         does not come from source.
8789 2020-06-16  Steve Baird  <baird@adacore.com>
8791         * snames.ads-tmpl: Define names of the three new aspects.
8792         * aspects.ads: Define the three new aspects.
8793         * sem_util.ads, sem_util.adb, sem_dim.adb: Move the function
8794         String_From_Numeric_Literal from being declared in the body of
8795         package Sem_Dim to being declared in the visible part of package
8796         Sem_Util.
8797         * sem_ch13.ads, sem_ch13.adb: Declare new visible procedure
8798         Validate_Literal_Aspect. This is where most of the legality
8799         checking occurs for an aspect specification for one of the three
8800         new aspects, as well as resolution of the subprogram named in
8801         the aspect specification. Follow example of other aspects (e.g.,
8802         Validate_Literal_Aspect is called in much the same way as
8803         Validate_Iterable_Aspect in Analyze_Aspects_At_Freeze_Point; a
8804         small amount of legality checking is performed in
8805         Analyze_One_Aspect in much the same way as for Default_Value or
8806         Default_Component_Value aspects). Most of the work is done in
8807         Validate_Literal_Aspect.
8808         * contracts.adb (Add_Contract_Item): Call
8809         Validate_Literal_Aspect in much the same way that
8810         Validate_Iterable_Aspect was already being called.
8811         * sem_res.adb (Resolve): Rewrite a literal as a call if it is a
8812         user-defined literal.  This is where the dynamic semantics of
8813         the 3 new aspects are implemented.
8814         * sem_ch6.adb (Fully_Conformant_Expressions): Two numeric
8815         literals that have different text but the same value (e.g.,
8816         12345 and 12_345) do not conform if they are user-defined
8817         literals. Introduce a new function
8818         User_Defined_Numeric_Literal_Mismatch to avoid duplication in
8819         making this check.
8820         * sem_type.adb (Has_Compatible_Type): A numeric literal can be
8821         compatible with a non-numeric type (and a string literal can be
8822         compatible with a non-string type) if it can be interpreted as a
8823         user-defined literal.
8825 2020-06-16  Arnaud Charlet  <charlet@adacore.com>
8827         * sem_aggr.adb (Resolve_Extension_Aggregate): Fix implementation
8828         of AI05-0115 by checking the correct type.
8830 2020-06-16  Arnaud Charlet  <charlet@adacore.com>
8832         * sem_ch6.adb (Analyze_Subprogram_Specification): Generate error
8833         message for functions returning interfaces.
8835 2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
8837         * sem_ch13.adb (Membership_Entry): Relax assertion to also
8838         recognize qualified identifiers.
8840 2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
8842         * exp_util.adb (Evaluate_Name): Force evaluation of operators.
8844 2020-06-16  Arnaud Charlet  <charlet@adacore.com>
8846         * sem_ch4.adb (Analyze_Membership_Op): Reset entity of equality
8847         nodes for membership tests with singletons.
8848         (Analyze_User_Defined_Binary_Op): Always perform the analysis
8849         since nodes coming from the expander also may refer to non
8850         standard operators as part of membership expansion.
8851         * exp_ch4.adb (Expand_Set_Membership.Make_Cond): Reset entity of
8852         equality node.
8853         * sem_type.ads: Fix typo in comment.
8855 2020-06-16  Ghjuvan Lacambre  <lacambre@adacore.com>
8857         * sem_attr.adb (Analyze_Attribute): Add
8858         Check_Not_Incomplete_Type call.
8860 2020-06-16  Gary Dismukes  <dismukes@adacore.com>
8862         * sem_ch6.adb: Add closing paren in a comment.
8863         * sem_util.adb: Correct comment typo (aggreate => aggregate).
8865 2020-06-16  Javier Miranda  <miranda@adacore.com>
8867         * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
8868         Code cleanup.
8870 2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
8872         * freeze.adb (In_Expanded_Body): Remove unreachable code.
8873         (Freeze_Expression): Rename a couple of local variables.
8874         In the case of an expanded body, also freeze locally the
8875         entities declared in a nested block.
8877 2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
8879         * sem_ch4.adb (Transform_Object_Operation): Document that it
8880         may be partially destructive for the parent of the node.
8881         (Try_Object_Operation): Undo the changes made above on failure.
8883 2020-06-16  Javier Miranda  <miranda@adacore.com>
8885         * restrict.adb (Global_No_Tasking): Adding
8886         Targparm.Restrictions_On_Target Fixes regressions with zfp.
8888 2020-06-16  Ed Schonberg  <schonberg@adacore.com>
8890         * freeze.adb: (Freeze_Expression, In_Expanded_Body): Treat the
8891         generated body of an expression function like other bodies
8892         generated during expansion (e.g. stream subprograms) so that
8893         those bodies are not treated as freezing points. Handle properly
8894         other global references in such completions.
8896 2020-06-16  Piotr Trojanek  <trojanek@adacore.com>
8898         * sem_ch8.adb (Analyze_Object_Renaming): Remove trivially
8899         useless initialization of Is_Object_Reference.
8900         * sem_util.adb (Is_Object_Reference): Simplify detection of
8901         binary and unary operators; literally implement rules about
8902         aggregates and qualified expressions; recognize string literals
8903         as object references.
8905 2020-06-16  Eric Botcazou  <ebotcazou@adacore.com>
8907         * sem_ch12.adb (Validate_Derived_Type_Instance): Reword error
8908         message for 12.5.1(8) subclause and add secondary message if
8909         the incompatibility comes from the predicates.
8910         * sem_ch3.adb (Check_Constraining_Discriminant): New procedure
8911         to give the error required by the 3.7(15) subclause.  Mention
8912         "statically" in the error message and add secondary message
8913         if the incompatibility comes from the predicates.
8914         (Build_Derived_Concurrent_Type): Call it when a new discriminant
8915         constrains an old one.
8916         (Build_Derived_Record_Type): Likewise.
8917         * sem_eval.ads (Predicates_Compatible): Declare.
8918         * sem_eval.adb (Predicates_Compatible): New function to implement
8919         the compatibility of predicates specified by the 4.9.1 clause.
8920         (Subtypes_Statically_Compatible): Call it.
8922 2020-06-15  Eric Botcazou  <ebotcazou@adacore.com>
8924         * sem_eval.ads (Predicates_Match): Fix description.
8925         * sem_eval.adb (Predicates_Match): Rewrite.
8927 2020-06-15  Ed Falis  <falis@adacore.com>
8929         * Makefile.rtl: Change name of hie/g-io__vxworks-ppc-cert.adb.
8931 2020-06-15  Arnaud Charlet  <charlet@adacore.com>
8933         * sem_ch8.adb (Premature_Usage): Add support for subtype
8934         references and replace set of if-then-else by a case statement.
8936 2020-06-15  Piotr Trojanek  <trojanek@adacore.com>
8938         * sem_prag.adb (Analyze_Depends_In_Decl_Part,
8939         Analyze_Global_In_Decl_Part): Bring back task discriminants for
8940         analysis of the Global/Depends contracts; add comments.
8942 2020-06-15  Eric Botcazou  <ebotcazou@adacore.com>
8944         * einfo.ads (Return_Applies_To): Document special usage for E_Block.
8945         * einfo.adb (Write_Field8_Name): Write it for E_Block too.
8946         * exp_ch4.adb (Expand_N_Type_Conversion): Remove implementation of
8947         the check prescribed by AI05-0073.
8948         * exp_ch6.adb (Apply_CW_Accessibility_Check): New procedure to apply
8949         the check prescribed by AI95-344 extracted from...
8950         (Expand_N_Extended_Return_Statement): Apply the check prescribed by
8951         AI95-344 to the expression, if present.  Suppress only access checks
8952         when analyzing the rewritten result.
8953         (Expand_Simple_Function_Return): ...here.  Rename local variable.
8954         Call Apply_CW_Accessibility_Check to apply the check prescribed by
8955         AI95-344, but do not do it for the simple return statement generated
8956         by the expansion of an extended return statement.  Apply the check
8957         prescribed by AI05-0073 to all functions returning anonymous access
8958         type designating a specific tagged type, but not if the expression
8959         was null or tag checks are suppressed for the type, and use Not In
8960         operator rather than comparing the tags explicitly.
8961         * sem.adb (Analyze): Handle all Suppress values.
8962         * sem_ch6.adb (Analyze_Function_Return): Do not explicitly apply
8963         predicate checks in the case of an extended return statement.
8964         Do not apply an implicit conversion to the anonymous access result
8965         type in the case of the simple return statement generated by the
8966         expansion of an extended return statement.
8967         (New_Overloaded_Entity): Small comment tweak.
8968         * treepr.adb (Print_Node): Fix typo in flag string.
8970 2020-06-15  Bob Duff  <duff@adacore.com>
8972         * exp_put_image.ads, exp_put_image.adb
8973         (Image_Should_Call_Put_Image): New function to determine whether
8974         the call to Put_Image should be generated.
8975         (Build_Image_Call): New procedure to generate the call to
8976         Put_Image.
8977         * exp_imgv.adb (Expand_Image_Attribute): Use underlying types to
8978         bypass privacy (only in Ada 2020). If
8979         Image_Should_Call_Put_Image is True (which happens only in Ada
8980         2020), then call Build_Image_Call.
8981         * rtsfind.ads, rtsfind.adb: Add the necessary declarations in
8982         Ada.Strings.Text_Output.Buffers.
8983         * sem_attr.adb (Check_Image_Type): Enable the Ada 2020 case.
8984         * libgnat/a-stoufo.ads, libgnat/a-stoufo.adb: Use the less
8985         restrictive type that allows newline characters.
8987 2020-06-15  Gary Dismukes  <dismukes@adacore.com>
8989         * exp_ch9.ads (Build_Master_Declaration): Add commas.
8990         * exp_ch9.adb (Build_Master_Entity): Spelling fix ("build" =>
8991         "built").
8992         (Build_Task_Activation_Call): Fix word order.
8994 2020-06-15  Arnaud Charlet  <charlet@adacore.com>
8996         * libgnat/a-nbnbin.ads (Big_Positive, Big_Natural): Fix
8997         predicate.
8999 2020-06-15  Piotr Trojanek  <trojanek@adacore.com>
9001         * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): Fix
9002         dealing with scopes on subprogram bodies that act as specs.
9003         * sem_util.adb (Has_Relaxed_Initialization): Fix trivial
9004         mistake.
9006 2020-06-15  Javier Miranda  <miranda@adacore.com>
9008         * restrict.ads (Set_Global_No_Tasking, Global_No_Tasking): New
9009         subprograms.
9010         * restrict.adb (Set_Global_No_Tasking, Global_No_Tasking): New
9011         subprograms.
9012         * sem_ch3.adb (Access_Definition): Do not skip building masters
9013         since they may be required for BIP calls.
9014         (Analyze_Subtype_Declaration): Propagate attribute
9015         Is_Limited_Record in class-wide subtypes and subtypes with
9016         cloned subtype attribute; propagate attribute
9017         Is_Limited_Interface.
9018         * sem_ch6.adb (Check_Anonymous_Return): Do not skip building
9019         masters since they may be required for BIP calls. Use
9020         Build_Master_Declaration to declare the _master variable.
9021         (Create_Extra_Formals): Add decoration of Has_Master_Entity when
9022         the _master formal is added.
9023         * exp_ch3.adb (Init_Formals): Adding formal to decorate it with
9024         attribute Has_Master_Entity when the _master formal is added.
9025         (Build_Master): Do not skip building masters since they may be
9026         required for BIP calls.
9027         (Expand_N_Object_Declaration): Ensure activation chain and
9028         master entity for objects initialized with BIP function calls.
9029         * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
9030         Adding support to detect and save restriction No_Tasking when
9031         set in the run-time package System or in a global configuration
9032         pragmas file.
9033         * sem_util.adb (Current_Entity_In_Scope): Overload this
9034         subprogram to allow searching for an entity by its Name.
9035         * sem_util.ads (Current_Entity_In_Scope): Update comment.
9036         * exp_ch4.adb (Expand_N_Allocator): Do not skip building masters
9037         since they may be required for BIP calls.
9038         * exp_ch6.ads (Might_Have_Tasks): New subprogram.
9039         * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add
9040         support for BIP calls returning objects that may have tasks.
9041         (Make_Build_In_Place_Call_In_Allocator): Build the activation
9042         chain if the result might have tasks.
9043         (Make_Build_In_Place_Iface_Call_In_Allocator): Build the class
9044         wide master for the result type.
9045         (Might_Have_Tasks): New subprogram.
9046         (Needs_BIP_Task_Actuals): Returns False when restriction
9047         No_Tasking is globally set.
9048         * exp_ch9.ads (Build_Master_Declaration): New subprogram.
9049         * exp_ch9.adb (Build_Activation_Chain_Entity): No action
9050         performed when restriction No_Tasking is globally set.
9051         (Build_Class_Wide_Master): No action performed when restriction
9052         No_Tasking is globally set; use Build_Master_Declaration to
9053         declare the _master variable.
9054         (Build_Master_Declaration): New subprogram.
9055         (Build_Master_Entity): No action performed when restriction
9056         No_Tasking is globally set; added support to handle transient
9057         scopes and _finalizer routines.
9058         (Build_Master_Renaming): No action performed when restriction
9059         No_Tasking is globally set.
9060         (Build_Task_Activation_Call): Skip generating the call when
9061         the chain is an ignored ghost entity.
9062         (Find_Master_Scope): Generalize the code that detects transient
9063         scopes with master entity.
9064         * einfo.ads (Has_Nested_Subprogram): Minor comment reformatting.
9066 2020-06-15  Arnaud Charlet  <charlet@adacore.com>
9068         * sem_attr.adb (Eval_Attribute): Protect against previous
9069         errors.
9070         * sem_ch13.adb (Analyze_Aspect_Default_Value): Remove redundant
9071         error checking, handling in Analyze_Aspect_Specifications.
9072         (Analyze_Aspect_Specifications): Refine error messages on
9073         Default_[Component_]Value.
9074         (Check_Aspect_Too_Late): New procedure.
9075         (Rep_Item_Too_Late.Is_Derived_Type_With_Constraint): Remove,
9076         dead code.
9077         * aspects.ads (Is_Representation_Aspect): Default_Value is a
9078         representation aspect.
9080 2020-06-15  Arnaud Charlet  <charlet@adacore.com>
9082         * libgnat/a-wichha.ads, libgnat/a-wichha.adb,
9083         libgnat/a-wichun.ads, libgnat/a-wichun.adb (Is_Basic, To_Basic):
9084         New.
9085         * libgnat/s-utf_32.ads, libgnat/s-utf_32.adb (Is_UTF_32_Basic,
9086         To_UTF_32_Basic, Decomposition_Search): New subprograms.
9087         (Unicode_Decomposition): New table.
9089 2020-06-15  Gary Dismukes  <dismukes@adacore.com>
9091         * exp_ch6.adb (Add_Call_By_Copy_Code): In the case of a view
9092         conversion passed to a scalar out-mode parameter where the
9093         formal has Default_Value set, declare the copy temp with the
9094         base type of the formal's subtype and initialize the copy temp
9095         with the actual's value.
9097 2020-06-15  Justin Squirek  <squirek@adacore.com>
9099         * exp_ch4.adb (Expand_N_Case_Expression): Set default value for
9100         Target to silence potential warnings.
9101         (Expand_N_If_Expression): Add calculation to check when the if
9102         expression is used directly in the context of an actual of an
9103         anonymous access type and add a special path to force expansion
9104         of the if expression in this case.
9105         * exp_ch6.adb (Expand_Branch): Generate an assignment to the
9106         level temporary for a given branch.
9107         (Expand_Call_Helper): Add expansion to allow for creating a
9108         temporary to store associated accessiblity levels on each branch
9109         of the conditional expression.  Also perform expansion of
9110         function calls into expressions with actions, and fixup
9111         references to N with Call_Node.
9112         (Insert_Level_Assign): Move through nested conditional
9113         expressions to each branch.
9114         * sem_util.ads, sem_util.adb (Is_Anonymous_Access_Actual): Added
9115         to detect when to force expansion of if expressions.
9117 2020-06-15  Piotr Trojanek  <trojanek@adacore.com>
9119         * sem_prag.adb (Analyze_Depends_In_Decl_Part,
9120         Analyze_Global_In_Decl_Part): Do not install task discriminants
9121         for analysis of the Global/Depends contracts.
9123 2020-06-15  Piotr Trojanek  <trojanek@adacore.com>
9125         * contracts.adb (Analyze_Object_Contract): Do not expect
9126         Global/Depends on single protected units.
9128 2020-06-15  Justin Squirek  <squirek@adacore.com>
9130         * sem_res.adb (Valid_Conversion): Add missing condition to
9131         trigger proper static accessiblity failiures when the target
9132         type is an anonymous access.
9134 2020-06-15  Piotr Trojanek  <trojanek@adacore.com>
9136         * exp_ch6.adb (Expand_Call_Helper): Replace repeated Ekind with
9137         Ekind_In.
9139 2020-06-15  Piotr Trojanek  <trojanek@adacore.com>
9141         * exp_ch6.adb, sem_util.adb: Remove excessive parents,
9142         especially since they don't make the code any easier to read.
9144 2020-06-15  Piotr Trojanek  <trojanek@adacore.com>
9146         * aspects.ads (Aspect_Id): Add Aspect_Relaxed_Initialization.
9147         (Implementation_Defined_Aspect): Add new aspect.
9148         (Aspect_Argument): Add new aspect with Optional_Expression
9149         argument.
9150         (Is_Representation_Aspect): Add new aspect as a
9151         non-representation one.
9152         (Aspect_Names): Add name for the new aspect.
9153         (Aspect_Delay): Add new aspect as a non-delayed one.
9154         * sem_ch3.adb: Minor reformatting.
9155         * einfo.ads, einfo.adb (Is_Relaxed_Initialization_State): New
9156         query; reuses existing code for querying abstract state options.
9157         * exp_attr.adb (Expand_N_Attribute_Reference): For now ignore
9158         attribute 'Initialized.
9159         * sem_attr.adb (Analyze_Attribute_Old_Result): Allow attribute
9160         'Result to be used in the aspect Relaxed_Initialization
9161         expression.
9162         (Analyze_Attribute): Analyze attribute 'Initialized; based on
9163         existing code for attribute 'Valid_Scalars.
9164         (Eval_Attribute): Do not expect attribute 'Initialized, just
9165         like attribute 'Valid_Scalars is not expected.
9166         * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): New
9167         routine.
9168         (Analyze_Aspect_Specifications): Analyze new aspect in a
9169         dedicated routine.
9170         (Check_Aspect_At_Freeze_Point): Do not expect new aspect.
9171         * sem_prag.adb (Analyze_Abstract_State): Support option
9172         Relaxed_Initialization on abstract states.
9173         * sem_util.ads, sem_util.adb (Has_Relaxed_Initialization): New
9174         query for the GNATprove backend.
9175         * snames.ads-tmpl (Snames): Add Name_Ids for the new aspect and
9176         attribute; add an Attribute_Id for the new attribute.
9178 2020-06-15  Bob Duff  <duff@adacore.com>
9180         * exp_put_image.adb, libgnat/s-putima.adb, libgnat/s-putima.ads,
9181         rtsfind.ads: Enable Put_Image if Is_Access_Subprogram_Type (Typ).
9182         Remove comment saying it's disabled in that case.  Rename
9183         Put_Image_Access_Prot to be Put_Image_Access_Prot_Subp to
9184         clarify that we're talking about access-to-subprogram, not
9185         access-to-protected-object.
9187 2020-06-15  Bob Duff  <duff@adacore.com>
9189         * sem_attr.adb (Check_Image_Type): New procedure for checking
9190         the type, depending on language version. Disable the Ada 2020
9191         support until the corresponding expander work is done.
9192         (Analyze_Image_Attribute): Call Check_Image_Type.  Rearrange the
9193         code to be simplier and more logical.  When P_Type is modified,
9194         modify P_Base_Type accordingly.
9195         * sem_util.adb (Is_Object_Image): Do not return False if the
9196         prefix is a type. X'Image should be considered an image of an
9197         object iff X is an object (albeit illegal pre-2020 if
9198         nonscalar).
9200 2020-06-15  Bob Duff  <duff@adacore.com>
9202         * libgnat/s-putima.ads, libgnat/s-putima.adb
9203         (Put_Image_Access_Subp, Put_Image_Access_Prot): New procedures
9204         for printing access-to-subprogram objects.  Remove an explicit
9205         " ", because Put_Image includes the annoying leading blank.
9206         * rtsfind.ads: Add new procedures in s-putima.
9207         * exp_put_image.adb: Call new procedures as appropriate.
9209 2020-06-15  Bob Duff  <duff@adacore.com>
9211         * exp_imgv.adb (Expand_Image_Attribute): Allow private types.
9212         Put_Image generates Image for numeric types, and private types
9213         whose full type is numeric. This requires the Conversion_OK flag
9214         for integer and floating-point types. For fixed point, we need
9215         the extra conversion.
9216         * exp_put_image.adb (Build_Elementary_Put_Image_Call): Remove
9217         special handling of real types.
9218         (Enable_Put_Image): Enable for reals.
9220 2020-06-15  Bob Duff  <duff@adacore.com>
9222         * exp_attr.adb (Put_Image): Use underlying type for strings.
9223         Remove unchecked union processing.
9224         * exp_put_image.adb (Tagged_Put_Image_Enabled): Use -gnatd_z to
9225         enable default Put_Image for tagged types.  This allows testing
9226         that feature.
9227         (Build_String_Put_Image_Call): Set Conversion_OK flag.
9228         (Make_Component_List_Attributes): Remove unchecked union
9229         processing.
9230         (Enable_Put_Image): Disable for unchecked unions.  Enable for
9231         nonscalar types (which were mistakenly disabled in earlier
9232         changes).
9233         * debug.adb: Document -gnatd_z switch.
9234         * libgnat/s-putima.adb (Put_Image_String, Put_Image_Wide_String,
9235         Put_Image_Wide_Wide_String): Double double-quote characters.
9236         Forget about special handling of control characters for now --
9237         that's rare enough to not be a priority, and it's not clear what
9238         the right thing to do is anyway.
9239         * namet.adb: Minor: Improve debugger-friendliness.
9240         * sinfo.ads: Minor: Add "???" comment.
9242 2020-06-15  Piotr Trojanek  <trojanek@adacore.com>
9244         * sem_util.ads, sem_util.adb (Is_Renaming_Declaration): Remove.
9246 2020-06-15  Ed Schonberg  <schonberg@adacore.com>
9248         * freeze.adb (Freeze_Expression): When traversing the tree
9249         looking for the proper insertion point for the freeze node of an
9250         entity that is declared in an outer scope, set the candidate
9251         subprogram body node properly.  Previous code has an off-by-one
9252         error.
9254 2020-06-15  Eric Botcazou  <ebotcazou@adacore.com>
9256         * exp_attr.adb (Expand_N_Attribute_Reference) <Has_Same_Storage>:
9257         Do not do superfluous work.  Add the condition (X'Size /= 0) on
9258         both paths and turn binary AND into short-circuit AND THEN.
9260 2020-06-15  Steve Baird  <baird@adacore.com>
9262         * sem_attr.adb (Analyze_Attribute): In the Loop_Entry case,
9263         replace a call to Statically_Denotes_Object with a call to
9264         Statically_Names_Object and clean up the preceding comment.
9266 2020-06-15  Eric Botcazou  <ebotcazou@adacore.com>
9268         * sem_res.adb (Resolve_Set_Membership): Remove local variable.
9269         In the non-overloaded case, call Intersect_Types on the left
9270         operand and the first alternative to get the resolution type.
9271         But test the subtype of the left operand to give the warning.
9273 2020-06-12  Steve Baird  <baird@adacore.com>
9275         * sem_res.adb (Valid_Conversion): The simpler cases of
9276         violations of the aforementioned 8.6 rule are already handled
9277         correctly. These include cases where the operand of the type
9278         conversion is an access parameter or a stand-alone object of an
9279         anonymous access type. Add code to detect violations where the
9280         operand of the type conversion is an access discriminant whose
9281         accessibility level is tied to one of the other simpler cases.
9282         This is implemented in a new function,
9283         Valid_Conversion.Is_Discrim_Of_Bad_Access_Conversion_Argument,
9284         which is called in place of the previous test.
9286 2020-06-12  Bob Duff  <duff@adacore.com>
9288         * exp_attr.adb (Put_Image): Remove assertion. This assertion is
9289         False in mixed-Ada-version programs.
9290         * exp_put_image.adb (Tagged_Put_Image_Enabled): New flag to make
9291         it easy to experiment with Put_Image on tagged types. False in
9292         this version.
9293         (Enable_Put_Image): Enable in pre-2020.  Workarounds: Disable
9294         for tagged types if Tagged_Put_Image_Enabled is False. Disable
9295         for access-to-subprogram types.  Disable if errors have been
9296         detected, or Sink is unavailable.
9297         (Preload_Sink): Move all conditionals here, from Sem_Ch10, so
9298         they can be nearby related code in Enable_Put_Image.  Load Sink
9299         only if we have seen a tagged type.  This removes the dilemma
9300         about calling Preload_Sink when compiling the compiler, which
9301         caused unwanted dependences.
9302         * exp_put_image.ads (Preload_Sink): New formal Compilation_Unit,
9303         needed to move all conditionals here, from Sem_Ch10.
9304         * libgnat/a-stouut.adb (Put_UTF_8): Make this suitable for
9305         inlining, so we don't get warnings about inlining in some tests.
9306         And so it can be inlined!
9307         * opt.ads (Tagged_Seen): New flag (see Preload_Sink).
9308         * scng.adb (Scan): Set new Tagged_Seen flag.
9309         * sem_ch10.adb (Analyze_Compilation_Unit): Move conditionals and
9310         comments regarding Preload_Sink into Preload_Sink.
9312 2020-06-12  Arnaud Charlet  <charlet@adacore.com>
9314         * sem_res.adb (Resolve_Actuals): Check for AI12-0074.
9316 2020-06-12  Olivier Hainque  <hainque@adacore.com>
9318         * libgnat/s-secsta.ads (Memory_Alignment): New constant, memory
9319         alignment for chunks and allocated blocks. Initialize to
9320         Standard'Maximum_Alignment * 2.
9321         (Chunk_Memory): Use it.
9322         * libgnat/s-secsta.adb (Round_Up): Likewise.
9324 2020-06-12  Piotr Trojanek  <trojanek@adacore.com>
9326         * par-prag.adb: Fix ordering.
9327         * snames.ads-tmpl (Name_Test_Case, Pragma_Test_Case): Likewise.
9328         * sem_prag.adb (Sig_Flags): Likewise.
9330 2020-06-12  Arnaud Charlet  <charlet@adacore.com>
9332         * sem_res.adb (Resolve_Entity_Name): Fix handling of expressions
9333         containing array attributes wrt Ada 83 detection.
9335 2020-06-12  Steve Baird  <baird@adacore.com>
9337         * sem_util.ads, sem_util.adb: Define 3 new Boolean-valued
9338         functions - Statically_Denotes_Entity,
9339         Statically_Denotes_Object, and Statically_Names_Object. The
9340         first two were taken from sem_attr.adb. The term "statically
9341         names" is defined in the Ada RM and the new function
9342         Statically_Names_Object is intended to reflect that definition,
9343         or more precisely, as described in a comment in the code, to
9344         reflect the expected future definition of that term.
9345         * sem_attr.adb: Delete functions Statically_Denotes_Object and
9346         Statically_Denotes_Entity; these two functions have been moved
9347         to package Sem_Util. Replace call to Statically_Denotes_Object
9348         with a call to Statically_Names_Object as per AI12-0217 (a
9349         binding interpretation, so no Ada_Version check).
9350         * exp_ch9.adb (Expand_Entry_Barrier.Is_Simple_Barrier): Change
9351         name of function (it was previously Is_Simple_Barrier_Name)
9352         because the function should return True in the case of a static
9353         expression; implement this requirement.  Change function to
9354         include a call to Statically_Names_Object so that, for Ada_2020
9355         and later, it will return True for appropriate subcomponent
9356         names.
9357         (Expand_Entry_Barrier.Is_Pure_Barrier): Handle
9358         N_Indexed_Component and N_Selected_Component cases by calling
9359         Statically_Names_Object.
9360         (Expand_Entry_Barrier): Reorganize to treat Simple_Barriers and
9361         Pure_Barriers more uniformly.  Prevent cascaded errors.
9363 2020-06-12  Ed Schonberg  <schonberg@adacore.com>
9365         * sem_ch12.adb (Find_Matching_Actual): Add guard on search loops
9366         to detect a compilation error when using a compiler built
9367         without assertions.
9368         (Instantiate_Formal_Subprogram): Create a new subprogram name
9369         for the actual only if formal has contract aspects and expansion
9370         is enabled.
9372 2020-06-12  Eric Botcazou  <ebotcazou@adacore.com>
9374         * exp_aggr.adb: Add with and use clauses for Sem_Mech.
9375         (Get_Base_Object): New function to get the base object of a node.
9376         (In_Place_Assign_OK): Add Target_Object parameter.  Deal with a
9377         qualified expression on entry.  Remove short-circuit for array
9378         aggregates with a single "others" choice.  Do not look into the
9379         components of the aggregate if the parent is an allocator.
9380         (Check_Component): Add T_OK parameter and rewrite.
9381         (Safe_Component): Invoke Check_Component with T_OK set to False.
9382         (Convert_To_Assignments): Try to use an in-place assignment for
9383         any target; for that, call Get_Base_Object on the target and pass
9384         the result to In_Place_Assign_OK.
9385         (Expand_Array_Aggregate): Use Parent_Kind and Parent_Node more
9386         consistently.  For an assignment, call Get_Base_Object on the
9387         target and pass the result to In_Place_Assign_OK.
9389 2020-06-12  Dmitriy Anisimkov  <anisimko@adacore.com>
9391         * socket.c (__gnat_minus_500ms): Use GetVersionEx to detect
9392         Windows Server version.
9393         * libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): Remade to
9394         Boolean constant.
9395         * libgnat/g-socket.adb (Set_Socket_Option): Use
9396         Minus_500ms_Windows_Timeout constant instead of function call.
9398 2020-06-12  Arnaud Charlet  <charlet@adacore.com>
9400         * libgnat/a-coinho.ads, libgnat/a-coinho.adb,
9401         libgnat/a-coinho__shared.ads, libgnat/a-coinho__shared.adb
9402         (Swap): New procedure.
9404 2020-06-12  Arnaud Charlet  <charlet@adacore.com>
9406         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do nothing for
9407         a subprogram declared in a protected body.
9408         * exp_ch9.ads, exp_ch9.adb
9409         (Build_Private_Protected_Declaration): Moved to sem_ch6.adb.
9410         (Expand_N_Protected_Body): Do nothing for a subprogram declared
9411         in a protected body.
9412         * sem_ch6.adb (Build_Internal_Protected_Declaration): Moved from
9413         exp_ch9.adb and renamed and fixed to ensure in particular that
9414         such subprograms have convention Intrinsic and have no protected
9415         version.
9416         (Analyze_Subprogram_Body_Helper): Call
9417         Build_Internal_Protected_Declaration.
9418         (Move_Pragmas): Moved up and merged with the more general
9419         version from Build_Private_Protected_Declaration. We only want
9420         to copy selected pragmas, most pragmas are not suitable for a
9421         copy on the spec.
9423 2020-06-12  Ed Schonberg  <schonberg@adacore.com>
9425         * sem_ch6.adb (Check_Overriding_Indicatior): Reject an
9426         overriding indicator on a subprogram declared within a protected
9427         body.
9429 2020-06-12  Piotr Trojanek  <trojanek@adacore.com>
9431         * contracts.adb, einfo.adb, sem_ch4.adb, sem_ch6.adb,
9432         sem_res.adb, sem_util.adb: Replace Ekind_In with Is_Entry.
9434 2020-06-12  Piotr Trojanek  <trojanek@adacore.com>
9436         * sem_res.adb (Resolve_Entry_Call): Add call to
9437         Warn_On_Overlapping_Actuals.
9439 2020-06-12  Arnaud Charlet  <charlet@adacore.com>
9441         * aspects.ads (Is_Representation_Aspect): New array.
9442         * sem_ch13.adb (Analyze_Aspect_Specifications): Check
9443         13.1(9.2/5) for representation aspects.
9445 2020-06-12  Bob Duff  <duff@adacore.com>
9447         * exp_put_image.ads, exp_put_image.adb (Preload_Sink): Procedure
9448         for preloading type Sink.  This has the side effect of loading
9449         various dependents, including Ada.Strings.UTF_Encoding.
9450         (Enable_Put_Image): Disable Put_Image in pre-2020 versions of
9451         Ada.  This limitation can probably be lifted later.  Enable for
9452         tagged types except in predefined units.  Disable for CPP types;
9453         Put_Image is legal, just prints the type name.
9454         * sem_attr.adb (Check_Put_Image_Attribute): Don't complain about
9455         Put_Image of CPP types; instead call the "unknown" version of
9456         Put_Image.
9457         * sem_ch10.adb (Analyze_Compilation_Unit): Call Preload_Sink.
9459 2020-06-12  Piotr Trojanek  <trojanek@adacore.com>
9461         * sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify.
9463 2020-06-12  Piotr Trojanek  <trojanek@adacore.com>
9465         * sem_warn.adb (Warn_On_Overlapping_Actuals): Remove suppression
9466         for internal units.
9468 2020-06-12  Arnaud Charlet  <charlet@adacore.com>
9470         * exp_strm.adb (Build_Elementary_Input_Call): Add support for 24
9471         bits elementary types.
9472         * rtsfind.ads: Add 24 bits integer streaming routines.
9473         * sem_ch13.adb (Analyze_Attribute_Definition_Clause
9474         [Attribute_Stream_Size]): Add support for 24 bits elementary
9475         types.
9476         * libgnat/s-stratt.ads, libgnat/s-stratt.adb,
9477         libgnat/s-stratt__xdr.adb: Add support for signed and unsigned
9478         24 bits integers.
9480 2020-06-12  Piotr Trojanek  <trojanek@adacore.com>
9482         * sem_ch3.adb (Get_Discr_Value): Cleanup.
9484 2020-06-12  Eric Botcazou  <ebotcazou@adacore.com>
9486         * rtsfind.ads (RTU_Id): Add System_Address_To_Access_Conversions.
9487         * sem_elab.adb (Elaboration_Phase_Active): Alphabetize.
9488         (Finalize_All_Data_Structures): Likewise.
9489         (Error_Preelaborated_Call): New procedure.
9490         (Build_Call_Marker): Set Is_Preelaborable_Call flag in marker.
9491         (Build_Access_Marker): Likewise.
9492         (Build_Subprogram_Invocation): Likewise.
9493         (Build_Task_Activation): Likewise.
9494         (Check_Preelaborated_Call): Return when the call is preelaborable.
9495         Call Error_Preelaborated_Call to give the error otherwise.
9496         (Check_Elab_Call): Likewise.
9497         * sem_util.adb (Is_Preelaborable_Function): New predicate.
9498         (Is_Non_Preelaborable_Construct.Visit): Recurse on the
9499         Explicit_Actual_Parameter field of N_Parameter_Association.
9500         (Is_Non_Preelaborable_Construct.Visit_Subexpression): In Ada 2020,
9501         for a call to a preelaborable function, visit the parameter list;
9502         otherwise, raise Non_Preelaborable exception.
9503         (Is_Preelaborable_Construct): Likewise, but recursively check the
9504         parameters instead and return false upon failure, otherwise true.
9505         * sinfo.ads (Is_Preelaborable_Call): New flag in call marker nodes.
9506         (Is_Preelaborable_Call): New inline function.
9507         (Set_Is_Preelaborable_Call): New inline procedure.
9508         * sinfo.adb (Is_Preelaborable_Call): New inline function.
9509         (Set_Is_Preelaborable_Call): New inline procedure.
9511 2020-06-12  Bob Duff  <duff@adacore.com>
9513         * stringt.ads: Remove "use System;".
9515 2020-06-12  Eric Botcazou  <ebotcazou@adacore.com>
9517         * sem_ch4.adb (Try_Container_Indexing): Replace call to
9518         First_Discriminant by Get_Reference_Discriminant to get the
9519         reference discriminant.
9520         * sem_ch13.adb (Check_Indexing_Functions): Likewise.
9521         * sem_ch5.adb (Preanalyze_Range): Call Get_Reference_Discriminant
9522         to get the reference discriminant.
9523         * sem_util.adb (Is_OK_Variable_For_Out_Formal): Treat all
9524         Ada 2012 implicit dereferences in only one place.
9525         (Is_Variable): Minor tweak.
9527 2020-06-12  Ed Schonberg  <schonberg@adacore.com>
9529         * sem_ch12.adb (Has_Contracts): New predicate to check whether a
9530         formal subprogram carries an aspect specification for a pre- or
9531         postcondition.
9532         (Build_Subprogram_Wrappers): If actual is overloaded, create a
9533         new name to be used in call inside wrapper body. This names
9534         carries the interpretations of the actual, and is resolved when
9535         the body is analyzed.
9536         (Build_Subprogram_Body_Wrapper): Use this generated name in
9537         call.
9538         (Build_Subprogram_Decl_Wrapper): Build profile of wrapper from
9539         the profile of formal, and reset type entities for subsequent
9540         analysis.
9542 2020-06-12  Bob Duff  <duff@adacore.com>
9544         * debug.adb: Remove usage of -gnatd_z.
9545         * exp_attr.adb, exp_put_image.ads, exp_put_image.adb: Clean up
9546         the enable/disable code. If Put_Image is disabled for a type,
9547         systematically call the "unknown" version.  Improve comments.
9548         Consolidate workarounds.  Remove usage of -gnatd_z.
9550 2020-06-12  Eric Botcazou  <ebotcazou@adacore.com>
9552         * sem_elab.adb: Fix typos in comments.
9554 2020-06-12  Justin Squirek  <squirek@adacore.com>
9556         * sem_util.adb (Object_Access_Level): Add processing of implicit
9557         dereferences.
9559 2020-06-12  Bob Duff  <duff@adacore.com>
9561         * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
9562         libgnat/a-nbnbin__gmp.adb, libgnat/a-nbnbre.adb,
9563         libgnat/a-nbnbre.ads: Update Put_Image, and uncomment the aspect
9564         specification.  Add pragmas Ada_2020.
9565         * libgnat/a-stouut.ads, libgnat/a-stteou.ads: Add Preelaborate,
9566         because the Big_Numbers packages have Preelaborate, and now
9567         depend on these Text_Output packages.
9569 2020-06-12  Eric Botcazou  <ebotcazou@adacore.com>
9571         * einfo.ads (No_Return): Document it for all subprograms.
9572         * einfo.adb (Set_No_Return): Adjust assertion accordingly.
9573         * sem_ch3.adb (Check_Abstract_Overriding): Implement the
9574         check prescribed by RM 6.5.1(6/2) here instead of...
9575         (Derive_Subprogram): Adjust comment accordingly.
9576         * sem_disp.adb (Override_Dispatching_Operation): ...here.
9577         Remove superfluous return statement.
9578         * sem_ch6.adb (Check_No_Return_Expression): New procedure.
9579         (Analyze_Function_Return): Call it to implement the check
9580         prescribed by AI12-0269 for simple return statements of
9581         No_Return functions, and also checks extended statements.
9582         (Analyze_Return_Statement): Only give an error on a return
9583         statement in No_Return procedures.  Use idiomatic form.
9584         * sem_ch8.adb (Analyze_Subprogram_Renaming): Adjust error
9585         message for No_Return renaming subprogram.
9586         * sem_prag.adb (Analyze_Pragma) <Pragma_No_Return>: Accept
9587         it on functions and generic functions in Ada 2020.
9589 2020-06-11  Eric Botcazou  <ebotcazou@adacore.com>
9591         * sem_res.adb (Resolve_Implicit_Dereference): In an instance,
9592         reset the type of the prefix if it is private before building
9593         the dereference.
9595 2020-06-11  Eric Botcazou  <ebotcazou@adacore.com>
9597         * exp_util.adb (Safe_Unchecked_Type_Conversion): Add missing
9598         Is_Type guard before calling Has_Discriminants on Etype.
9600 2020-06-11  Bob Duff  <duff@adacore.com>
9602         * libgnat/a-nbnbin__gmp.adb: There's no Optional_Big_Integer
9603         anymore.  Invalid_Big_Integer is not used.
9604         Greatest_Common_Divisor returns Big_Positive.
9606 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9608         * sem_aggr.adb (Get_Value): Refine type of the Compon parameter.
9610 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9612         * sem_aggr.adb (Resolve_Record_Aggregate): Refine type of
9613         Others_Box.
9615 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9617         * checks.adb, exp_ch7.adb, exp_ch9.adb, exp_smem.adb, lib.adb,
9618         nlists.adb, sem.adb, sem_aggr.adb, sem_ch3.adb, sem_ch6.adb,
9619         sem_ch8.adb, sem_dim.adb, sem_res.adb, sem_util.adb,
9620         sem_warn.adb: Replace uses of Next function with procedure.
9622 2020-06-11  Eric Botcazou  <ebotcazou@adacore.com>
9624         * exp_pakd.ads: Add paragraph about scalar storage order.
9625         * exp_pakd.adb (Install_PAT): Do not set the scalar storage
9626         order of the PAT here but...
9627         (Set_PB_Type): ...here instead and...
9628         (Create_Packed_Array_Impl_Type): ...here as well.
9629         * rtsfind.ads (RE_Id): Add RE_Rev_Packed_Bytes{1,2,4}.
9630         (RE_Unit_Table): Likewise.
9631         * libgnat/s-unstyp.ads (Rev_Packed_Bytes1): New derived type.
9632         (Rev_Packed_Bytes2): Likewise.
9633         (Rev_Packed_Bytes4): Likewise.
9635 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9637         * sem_ch4.adb, sem_ch6.adb, sem_res.adb, sem_util.ads: Fix
9638         references to SPARK RM 7.1.3 rule numbers.
9640 2020-06-11  Ed Schonberg  <schonberg@adacore.com>
9642         * sem_warn.adb (Warn_On_Overlapping_Actuals): Simplify code,
9643         remove inner predicate Is_Covered_Formal, preserve warning for
9644         two overlapping composite types when only one is writable, and
9645         for two overlapping and writable elementary types.
9647 2020-06-11  Steve Baird  <baird@adacore.com>
9649         * contracts.adb (Add_Contract_Item): Support specifying
9650         volatility refinement aspects for types.
9651         (Analyze_Contracts): Add call to Analyze_Type_Contract in the
9652         case of a contract for a type.
9653         (Freeze_Contracts): Add call to Analyze_Type_Contract in the
9654         case of a contract for a type.
9655         (Check_Type_Or_Object_External_Properties): A new procedure
9656         which performs the work that needs to be done for both object
9657         declarations and types.
9658         (Analyze_Object_Contract): Add a call to
9659         Check_Type_Or_Object_External_Properties and remove the code in
9660         this procedure which did much of the work that is now performed
9661         by that call.
9662         (Analyze_Type_Contract): Implement this new routine as nothing
9663         more than a call to Check_Type_Or_Object_External_Properties.
9664         * contracts.ads: Update comment for Add_Contract_To_Item because
9665         types can have contracts.  Follow (questionable) precedent and
9666         declare new routine Analyze_Type_Contract as visible (following
9667         example of Analyze_Object_Contract), despite the fact that it is
9668         never called from outside of the package where it is declared.
9669         * einfo.adb (Contract, Set_Contract): Id argument can be a type;
9670         support this case.
9671         (Write_Field34_Name): Field name is "contract" for a type.
9672         * einfo.ads: Update comment describing Contract attribute.
9673         * sem_ch3.adb (Build_Derived_Numeric_Type): Is_Volatile should
9674         return same answer for all subtypes of a given type. Thus, when
9675         building the base type for something like type Volatile_1_To_10
9676         is range 1 .. 10 with Volatile; that basetype should be marked
9677         as being volatile.
9678         (Access_Type_Declaration): Add SPARK-specific legality check
9679         that the designated type of an access type shall be compatible
9680         with respect to volatility with the access type.
9681         * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Add
9682         SPARK-specific legality check that an actual type parameter in
9683         an instantiation shall be compatible with respect to volatility
9684         with the corresponding formal type.
9685         * sem_ch13.adb (Analyze_Aspect_Specifications): Perform checks
9686         for aspect specs for the 4 volatility refinement aspects that
9687         were already being performed for all language-defined aspects.
9688         * sem_prag.adb (Analyze_External_Property_In_Decl_Part,
9689         Analyze_Pragma): External properties (other than No_Caching) may
9690         be specified for a type, including a generic formal type.
9691         * sem_util.ads: Declare new subprograms - Async_Readers_Enabled,
9692         Async_Writers_Enabled, Effective_Reads, Effective_Writes, and
9693         Check_Volatility_Compatibility.
9694         * sem_util.adb (Async_Readers_Enabled, Async_Writers_Enabled,
9695         Effective_Reads, Effective_Writes): Initial implementation of
9696         new functions for querying aspect values.
9697         (Check_Volatility_Compatibility): New procedure intended for use
9698         in checking all SPARK legality rules of the form "<> shall be
9699         compatible with respect to volatility with <>".
9700         (Has_Enabled_Property): Update comment because Item_Id can be a
9701         type.  Change name of nested Variable_Has_Enabled_Property
9702         function to Type_Or_Variable_Has_Enabled_Property; add a
9703         parameter to that function because recursion may be needed,
9704         e.g., in the case of a derived typ).  Cope with the case where
9705         the argument to Has_Enabled_Property is a type.
9707 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9709         * sem_aggr.adb (Add_Association): Add assertion about the formal
9710         parameters.
9711         (Propagate_Discriminants): Always add an explicit component
9712         association, so that an "others => <>" association is never
9713         needed.
9715 2020-06-11  Bob Duff  <duff@adacore.com>
9717         * exp_put_image.adb (Build_Elementary_Put_Image_Call): If the
9718         underlying type is real, call Put_Image_Unknown.
9719         (Build_Unknown_Put_Image_Call): Pass the type name to
9720         Put_Image_Unknown.
9721         * libgnat/s-putima.ads, libgnat/s-putima.adb
9722         (Put_Image_Unknown): Add Type_Name parameter.  Remove
9723         overly-detailed documentation of what it does; better to leave
9724         it open.
9726 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9728         * sem_ch3.adb (Build_Constrained_Array_Type,
9729         Build_Constrained_Discriminated_Type): Skip unnecessary loop
9730         iterations.
9732 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9734         * sem_aggr.adb (Build_Constrained_Itype): Move to Sem_Util.
9735         * sem_ch3.adb (Build_Subtype, Inherit_Predicate_Flags): Move...
9736         * sem_util.adb (Build_Subtype): Here.  Add parameters for
9737         references to objects previously declared in enclosing scopes.
9738         (Inherit_Predicate_Flags): And here, because it is called by
9739         Build_Subtype.
9740         * sem_util.ads (Build_Overriding_Spec): Reorder alphabetically.
9741         (Build_Subtype): Moved from Sem_Ch3; comments updated.
9742         (Build_Constrained_Itype): Moved from Sem_Aggr; comments
9743         updated.
9745 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9747         * sem_aggr.adb (Case_Table_Type): Change index type from Nat to
9748         Pos.
9750 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9752         * sem_aggr.adb (Build_Constrained_Itype): Previously a declare
9753         block, now a separate procedure; the only change is that now
9754         New_Assoc_List might include components and an others clause,
9755         which we ignore (while we deal with discriminants exactly as we
9756         did before); extend a ??? comment about how this routine is
9757         different from the Build_Subtype
9758         (Resolve_Record_Aggregate): Create a constrained itype not just
9759         for the outermost record aggregate, but for its inner record
9760         aggregates as well.
9762 2020-06-11  Eric Botcazou  <ebotcazou@adacore.com>
9764         * checks.adb (Build_Discriminant_Checks): Build an explicit
9765         dereference when the type is an access type.
9766         * exp_atag.adb (Build_CW_Membership): Add explicit dereferences.
9767         (Build_Get_Access_Level): Likewise.
9768         (Build_Get_Alignment): Likewise.
9769         (Build_Inherit_Prims): Likewise.
9770         (Build_Get_Transportable): Likewise.
9771         (Build_Set_Size_Function): Likewise.
9772         * exp_ch3.adb (Build_Offset_To_Top_Function): Likewise.
9773         * exp_ch4.adb (Expand_Allocator_Expression): Likewise.
9774         (Expand_N_Indexed_Component ): Remove code dealing with implicit
9775         dereferences.
9776         (Expand_N_Selected_Component): Likewise.
9777         (Expand_N_Slice): Likewise.
9778         * exp_ch9.adb (Add_Formal_Renamings): Add explicit dereference.
9779         (Expand_Accept_Declarations): Likewise.
9780         (Build_Simple_Entry_Call): Remove code dealing with implicit
9781         dereferences.
9782         (Expand_N_Requeue_Statement): Likewise.
9783         * exp_disp.adb (Expand_Dispatching_Call): Build an explicit
9784         dereference when the controlling type is an access type.
9785         * exp_spark.adb (Expand_SPARK_N_Selected_Component): Delete.
9786         (Expand_SPARK_N_Slice_Or_Indexed_Component): Likewise.
9787         (Expand_SPARK): Do not call them.
9788         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): Delete.
9789         (Process_Indexed_Component): Call Implicitly_Designated_Type
9790         to get the designated type for an implicit dereference.
9791         (Analyze_Overloaded_Selected_Component): Do not insert an
9792         explicit dereference here.
9793         (Analyze_Selected_Component): Likewise.
9794         (Analyze_Slice): Call Implicitly_Designated_Type to get the
9795         designated type for an implicit dereference.
9796         * sem_ch8.adb (Has_Components): New predicate extracted from...
9797         (Is_Appropriate_For_Record): ...this.  Delete.
9798         (Is_Appropriate_For_Entry_Prefix): Likewise.
9799         (Analyze_Renamed_Entry): Deal with implicit dereferences.
9800         (Find_Selected_Component): Do not insert an explicit dereference
9801         here.  Call Implicitly_Designated_Type to get the designated type
9802         for an implicit dereference.  Call Has_Components, Is_Task_Type
9803         and Is_Protected_Type directly.  Adjust test for error.
9804         * sem_res.adb (Resolve_Implicit_Dereference): New procedure.
9805         (Resolve_Call): Call Resolve_Indexed_Component last.
9806         (Resolve_Entry): Call Resolve_Implicit_Dereference on the prefix.
9807         (Resolve_Indexed_Component): Call Implicitly_Designated_Type to
9808         get the designated type for an implicit dereference and
9809         Resolve_Implicit_Dereference on the prefix at the end.
9810         (Resolve_Selected_Component): Likewise.
9811         (Resolve_Slice): Likewise.  Do not apply access checks here.
9812         * sem_util.ads (Implicitly_Designated_Type): Declare.
9813         * sem_util.adb (Copy_And_Maybe_Dereference): Simplify.
9814         (Implicitly_Designated_Type): New function.
9815         (Object_Access_Level): Fix typo.
9816         * sem_warn.adb (Check_Unset_Reference): Test Comes_From_Source
9817         on the original node.
9819 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9821         * exp_disp.adb: Minor reformatting.
9822         * exp_aggr.adb (Is_Static_Dispatch_Table_Aggregate): Recognize
9823         aggregates of the Ada.Tags.Object_Specific_Data type as static.
9824         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Deconstruct
9825         and do not call it from Build_Constrained_Itype.
9827 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9829         * exp_disp.adb (Make_Secondary_DT): Internally generated OSD
9830         tables are now constant.
9832 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9834         * exp_aggr.adb (Backend_Processing_Possible): Remove useless
9835         call.
9837 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9839         * opt.ads (Building_Static_Dispatch_Tables): Fix punctuation in
9840         comment.
9842 2020-06-11  Arnaud Charlet  <charlet@adacore.com>
9844         * libgnat/s-stposu.ads (Root_Storage_Pool_With_Subpools,
9845         Root_Subpool): Mark with Preelaborable_Initialization.
9847 2020-06-11  Javier Miranda  <miranda@adacore.com>
9849         * exp_ch9.adb (Expand_N_Conditional_Entry_Call): Replace call to
9850         New_Copy_List by calls to the new routine
9851         New_Copy_Separate_List.
9852         * sem_util.ads (New_Copy_Separate_List, New_Copy_Separate_Tree):
9853         New routines.
9854         * sem_util.adb (New_Copy_Separate_List, New_Copy_Separate_Tree):
9855         New routines.
9856         (New_Copy_Tree): Extend the machinery that detects syntactic
9857         nodes to handle lists of indentifiers with field More_Ids;
9858         otherwise such nodes are erroneously handled as semantic nodes.
9859         Copy aspect specifications attached to nodes.
9860         * sem_ch12.adb (Copy_Generic_Node): Protect reading attribute
9861         Etype.
9863 2020-06-11  Bob Duff  <duff@adacore.com>
9865         * sem_ch13.adb (Analyze_Aspect_Specifications): Do not set the
9866         Has_Predicates flag when the Predicate_Failure aspect is seen.
9867         It is legal (but pointless) to use this aspect without a
9868         predicate.  If we set the flag, we generate a half-baked
9869         Predicate procedure, and if that procedure is nested, it causes
9870         unnesting to crash.
9872 2020-06-11  Bob Duff  <duff@adacore.com>
9874         * exp_put_image.adb (Build_Record_Put_Image_Procedure): Remove
9875         special processing of protected types, because those are handled
9876         by Build_Protected_Put_Image_Call.
9877         (Enable_Put_Image): Use the switch -gnatd_z to control enabling
9878         of Put_Image. Disable Put_Image for types in Remote_Types
9879         packages.
9880         * debug.adb: Document -gnatd_z switch.
9881         * exp_imgv.adb, libgnat/a-stteou.ads, opt.ads: Minor cleanups.
9883 2020-06-11  Piotr Trojanek  <trojanek@adacore.com>
9885         * sem_warn.adb (Warn_On_Overlapping_Actuals): Add label to the
9886         outer loop and use it in the exit statement.
9888 2020-06-11  Ghjuvan Lacambre  <lacambre@adacore.com>
9890         * exp_ch3.adb (Build_Assignment): Generate predicate check if
9891         subtype mark has predicate.
9893 2020-06-11  Justin Squirek  <squirek@adacore.com>
9895         * sem_util.adb (Expand_N_Attribute_Reference): Use original
9896         nodes where required to avoid looking at the expanded tree.
9898 2020-06-11  Arnaud Charlet  <charlet@adacore.com>
9900         * libgnat/a-catizo.ads, libgnat/a-nbnbin.ads,
9901         libgnat/a-nbnbre.ads, libgnat/a-nubinu.ads,
9902         libgnat/s-aoinar.ads, libgnat/s-aomoar.ads,
9903         libgnat/s-aotase.ads, libgnat/s-stopoo.ads: Remove aspects that
9904         we will not implement.
9906 2020-06-11  Arnaud Charlet  <charlet@adacore.com>
9908         * libgnat/s-aoinar.adb (Atomic_Fetch_And_Add,
9909         Atomic_Fetch_And_Subtract): Add fallback using
9910         compare-and-exchange, in case the integer type does not map to a
9911         machine type.
9913 2020-06-10  Arnaud Charlet  <charlet@adacore.com>
9915         * libgnat/s-aomoar.ads, libgnat/s-aomoar.adb: New files.
9916         * libgnat/s-atopar.ads: Move...
9917         * libgnat/s-aoinar.ads: Here.
9918         * libgnat/s-atopar.adb: Move...
9919         * libgnat/s-aoinar.adb: Here.
9920         * impunit.adb: Update list of runtime files.
9921         * Makefile.rtl (GNATRTL_NONTASKING_OBJS=): Adjust.
9923 2020-06-10  Arnaud Charlet  <charlet@adacore.com>
9925         * snames.ads-tmpl (Name_Characters_Assertion_Check,
9926         Name_Containers_Assertion_Check,
9927         Name_Interfaces_Assertion_Check, Name_IO_Assertion_Check,
9928         Name_Numerics_Assertion_Check, Name_Strings_Assertion_Check,
9929         Name_System_Assertion_Check): New constants.
9930         * types.ads (Characters_Assertion_Check,
9931         Containers_Assertion_Check, Interfaces_Assertion_Check,
9932         IO_Assertion_Check, Numerics_Assertion_Check,
9933         Strings_Assertion_Check, System_Assertion_Check): New constants.
9934         (All_Checks): Update accordingly.
9936 2020-06-10  Ghjuvan Lacambre  <lacambre@adacore.com>
9938         * exp_ch3.adb (Build_Equivalent_Record_Aggregate): Return Empty
9939         if Etype of record component has predicates.
9941 2020-06-10  Arnaud Charlet  <charlet@adacore.com>
9943         * exp_ch3.adb (Build_Init_Statements): Implement the notion of
9944         "require late initialization".
9946 2020-06-10  Eric Botcazou  <ebotcazou@adacore.com>
9948         * sem_util.adb (Copy_And_Maybe_Dereference): Temporarily copy
9949         the parent node of the original tree when dereferencing.
9951 2020-06-10  Ed Schonberg  <schonberg@adacore.com>
9953         * sem_warn.adb (Warn_On_Overlapping_Actuals): Add a warning when
9954         two actuals in a call overlap, both are composite types that may
9955         be passed by reference, and only one of them is writable.
9957 2020-06-10  Eric Botcazou  <ebotcazou@adacore.com>
9959         * exp_ch4.adb (Expand_N_In): Use an expression with actions to
9960         insert the PE raise statement for the Unchecked_Union case.
9962 2020-06-10  Eric Botcazou  <ebotcazou@adacore.com>
9964         * sem_ch4.adb (Analyze_Call): Use idiomatic condition.
9965         * sem_res.adb (Resolve_Call): Remove obsolete code.
9967 2020-06-10  Eric Botcazou  <ebotcazou@adacore.com>
9969         * sem_util.adb (Copy_And_Maybe_Dereference): New function.
9970         (Build_Access_Record_Constraint): Use it to copy the prefix.
9971         (Build_Actual_Array_Constraint): Likewise.
9972         (Build_Actual_Record_Constraint): Likewise.
9974 2020-06-10  Bob Duff  <duff@adacore.com>
9976         * sem_prag.adb (Invariant): Remove the pragma removing code.  It
9977         doesn't work to remove the pragma, because various flags are set
9978         during Build_Invariant_Procedure_Declaration and
9979         Build_Invariant_Procedure_Body that need to be set to avoid the
9980         spurious warnings.
9981         * exp_util.adb (Make_Invariant_Call): Avoid calling the
9982         invariant-checking procedure if the body is empty. This is an
9983         optimization.
9985 2020-06-10  Vasiliy Fofanov  <fofanov@adacore.com>
9987         * doc/gnat_ugn/gnat_utility_programs.rst: Fix gnatmetric
9988         switches description.
9990 2020-06-10  Arnaud Charlet  <charlet@adacore.com>
9992         * repinfo-input.ads, repinfo-input.adb, repinfo.adb,
9993         repinfo.ads: Update header.
9995 2020-06-10  Eric Botcazou  <ebotcazou@adacore.com>
9997         * exp_aggr.adb (In_Place_Assign_OK): Do not necessarily return
9998         false for a type with discriminants.
9999         (Convert_To_Assignments): Use Parent_Node and Parent_Kind more
10000         consistently.  In the in-place assignment case, first apply a
10001         discriminant check if need be, and be prepared for a rewritten
10002         aggregate as a result.
10004 2020-06-10  Arnaud Charlet  <charlet@adacore.com>
10006         * atree.adb, contracts.adb, debug.adb, freeze.adb,
10007         repinfo-input.adb, repinfo.adb, sem_attr.adb, sem_ch10.adb,
10008         sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb,
10009         sem_ch8.adb, sem_ch9.adb, sem_disp.adb, sem_eval.adb,
10010         sem_prag.adb: Remove more references to ASIS.
10012 2020-06-10  Arnaud Charlet  <charlet@adacore.com>
10014         * libgnat/s-secsta.adb (Round_Up): Fix typo in exception
10015         message.
10017 2020-06-10  Piotr Trojanek  <trojanek@adacore.com>
10019         * par-ch4.adb (P_Membership_Test): Fix typo in a grammar rule.
10021 2020-06-10  Piotr Trojanek  <trojanek@adacore.com>
10023         * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove
10024         expansion of First and Last attributes.
10026 2020-06-10  Piotr Trojanek  <trojanek@adacore.com>
10028         * exp_attr.adb (Expand_N_Attribute_Reference): Remove folding
10029         for Enum_Rep attribute.
10030         * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove
10031         duplicated code for folding Enum_Rep attribute.
10032         * sem_attr.adb (Eval_Attribute): Relax condition for folding
10033         Enum_Rep attribute; previously dead code is now executed when
10034         the attribute prefix is an enumeration literal; refine type in
10035         processing of Enum_Val.
10037 2020-06-10  Javier Miranda  <miranda@adacore.com>
10039         * sem_ch3.adb (Analyze_Declarations): Adjust the machinery that
10040         takes care of late body overriding of initialize, adjust,
10041         finalize.  Remove ASIS mode code.
10043 2020-06-10  Ed Schonberg  <schonberg@adacore.com>
10045         * einfo.ads (Access_Subprogram_Wrapper): New attribute of
10046         Subprogram_Type entities. Denotes subprogram constructed for
10047         Access_To_Subprogram types that include pre- and postconditions.
10048         * einfo.adb: Subprogram bodies for Access_Subprogram_Wrapper.
10049         * exp_ch6.adb (Expand_Call): An indirect call through an
10050         Access_To_subprogram that includes contracts is rewritten as a
10051         call to the corresponding Access_ ubprogram_Wrapper. Handle
10052         derived types that inherit contract from parent.
10053         * sem_prag.adb (Build_Access_Subprogram_Wrapper): Build
10054         subprogram declaration for subprogram that incorporates the
10055         contracts of an Access_To_Subprogram type declaration. Build
10056         corresponding body and attach it to freeze actions for type.
10057         * sem_util.ads, sem_util.adb (Is_Access_Subprogram_Wrapper):
10058         Utility that uses signature of the subprogram to determine
10059         whether it is a generated wrapper for an Access_To_Subprogram
10060         type.
10062 2020-06-10  Ghjuvan Lacambre  <lacambre@adacore.com>
10064         * par-ch6.adb (P_Subprogram): Make sure the specification
10065         belongs to a procedure.
10067 2020-06-10  Piotr Trojanek  <trojanek@adacore.com>
10069         * sem_ch13.adb (All_Membership_Choices_Static): Assert an AST
10070         property documented in sinfo.ads and simplify an excessive
10071         condition.
10073 2020-06-10  Piotr Trojanek  <trojanek@adacore.com>
10075         * exp_attr.adb (Expand_N_Attribute_Reference): Fix a copy-paste
10076         mistake in comment.
10077         * sem_res.adb (Flag_Effectively_Volatile_Objects): Fix a type in
10078         the SPARK RM rule number.
10079         * exp_ch4.adb, sem_util.adb: Fix style in single line comments.
10081 2020-06-10  Piotr Trojanek  <trojanek@adacore.com>
10083         * sem_aux.ads, sem_aux.adb (Get_Low_Bound): Remove.
10085 2020-06-10  Arnaud Charlet  <charlet@adacore.com>
10087         * scn.adb (Determine_License): Remove.
10089 2020-06-10  Justin Squirek  <squirek@adacore.com>
10091         * exp_ch3.adb (Expand_N_Object_Declaration): Add condition to
10092         handle processing of objects initialized by a call to a function
10093         return an anonymous access type.
10094         * exp_ch6.adb, exp_ch6.ads
10095         (Has_Unconstrained_Access_Discriminants): Moved to sem_util.adb
10096         (Needs_Result_Accessibility_Level): Moved to sem_util.adb
10097         * sem_util.adb, sem_util.ads
10098         (Has_Unconstrained_Access_Discriminants): Moved from exp_ch6.adb
10099         (Needs_Result_Accessibility_Level): Moved from exp_ch6.adb
10100         * sem_res.adb (Valid_Conversion): Add condition for the special
10101         case where the operand of a conversion is the result of an
10102         anonymous access type
10104 2020-06-10  Ghjuvan Lacambre  <lacambre@adacore.com>
10106         * par-ch6.adb (P_Subprogram): Reject duplicate subprogram
10107         declarations.
10109 2020-06-10  Eric Botcazou  <ebotcazou@adacore.com>
10111         * exp_ch6.adb (Insert_Post_Call_Actions): Deal with the context
10112         of an if-expression and with a call written in prefixed notation.
10114 2020-06-10  Gary Dismukes  <dismukes@adacore.com>
10116         * einfo.ads: Minor reformatting of a comment.
10117         * exp_aggr.adb: Minor reformatting and a grammar correction.
10118         * exp_attr.adb: Minor reformatting and a typo fix in some
10119         comments.
10120         * sem_ch12.adb: Fix three typos in comments.
10122 2020-06-09  Javier Miranda  <miranda@adacore.com>
10124         * sem_ch6.adb (New_Overloaded_Entity): Add missing call to check
10125         subtype conformance of overriding dispatching primitive.
10126         * sem_eval.adb (Subtypes_Statically_Match): Handle derivations
10127         of private subtypes.
10128         * libgnat/g-exptty.adb, libgnat/g-exptty.ads
10129         (Set_Up_Communications): Fix the profile since null-exclusion is
10130         missing in the access type formals.
10131         * sem_disp.ads (Check_Operation_From_Private_View): Adding
10132         documentation.
10134 2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
10136         * einfo.ads (XEINFO section): Update format description.
10137         (Is_Subprogram_Or_Entry): Move pragma to regular section.
10138         (Is_Subprogram_Or_Generic_Subprogram): Likewise.
10139         * xeinfo.adb (Get_B4): Rename to...
10140         (Get_B0): ...this.
10141         (Translate_Expr): New procedure extracted from...
10142         (XEinfo): ...here.  Try to apply Get_B0 first and then
10143         call Translate_Expr to translate supported constructs.
10145 2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
10147         * exp_ch6.adb (Freeze_Subprogram): Deal with convention C_Family.
10148         * freeze.adb (Freeze_Profile): Likewise.  Add missing guard.
10149         * sem_mech.adb (Set_Mechanisms): Likewise.
10150         * lib-xref.adb (Output_Import_Export_Info): Ditto for C_Variadic.
10151         * repinfo.adb (List_Subprogram_Info): Likewise.
10152         * sem_prag.adb (Set_Convention_From_Pragma): Move main checks for
10153         Stdcall to...
10154         (Process_Convention): ...here.  Add checks for C_Variadic.
10155         * snames.ads-tmpl: Add Name_C_Variadic_0 .. Name_C_Variadic_16.
10156         Use consistent format for subtype declarations.
10157         (Convention_Id): Add Convention_C_Variadic_0 .. C_Variadic_16
10158         and move Convention_CPP up.
10159         (Convention_C_Family): New subtype of Convention_Id.
10160         (Convention_C_Variadic): Likewise.
10161         (Foreign_Convention): Use explicit upper bound.
10162         Add pragma Inline for Is_Configuration_Pragma_Name,
10163         Is_Function_Attribute_Name, Is_Internal_Attribute_Name
10164         and Is_Procedure_Attribute_Name.
10165         * snames.adb-tmpl (Get_Convention_Id): Deal with Name_Variadic_n.
10166         (Get_Convention_Name): Deal with Convention_Variadic_n.
10167         * types.h (Convention_Id): New typedef.
10168         * xsnamest.adb (Name2): New variable.
10169         (Is_Conv): New pattern.
10170         (Get_Subt1): Likewise.
10171         (Get_Subt2): Likewise.
10172         Output subtypes of Convention_Id into the C header file.
10174 2020-06-09  Arnaud Charlet  <charlet@adacore.com>
10176         * exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch9.adb,
10177         exp_disp.adb, exp_util.adb: Add comments related to errors that
10178         should be moved to semantic analysis. Also replace "?" with "??"
10179         in warning messages.
10181 2020-06-09  Arnaud Charlet  <charlet@adacore.com>
10183         * libgnat/a-strunb__shared.ads, libgnat/a-strunb__shared.adb
10184         (Reference, Unreference): No-op for Empty_Shared_String.
10185         Remove unneeded calls to Reference.
10187 2020-06-09  Arnaud Charlet  <charlet@adacore.com>
10189         * exp_ch5.adb (Expand_N_Assignment): Remove kludge for
10190         AI05-0087.
10191         * sem_ch12.adb (Validate_Derived_Type_Instance): Implement
10192         AI05-0087 retroactively since it's a binding interpretation.
10194 2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
10196         * einfo.ads (Has_Foreign_Convention): Fix description.
10197         (Component_Alignment): Move around.
10198         (Has_DIC): Likewise.
10199         (Has_Interrupt_Handler): Likewise.
10200         (Has_Invariants): Likewise.
10201         (Is_Atomic_Or_VFA): Likewise.
10202         (Next_Index): Likewise.
10203         (Scope_Depth): Likewise.
10204         (Init_Component_Size): Likewise.
10205         (Init_Component_Location): Likewise.
10206         (Init_Size): Likewise.
10207         (Inline Pragmas for functions): Add Corresponding_Function,
10208         Corresponding_Procedure, Entry_Max_Queue_Lengths_Array,
10209         Finalize_Storage_Only, Has_DIC, Has_Invariants,
10210         Initialization_Statements, Is_Anonymous_Access_Type,
10211         Next_Stored_Discriminant, Address_Clause, Alignment_Clause,
10212         Float_Rep, Has_Foreign_Convention, Has_Non_Limited_View,
10213         Is_Constant_Object, Is_Discriminal, Is_Finalizer, Is_Null_State,
10214         Is_Prival, Is_Protected_Component, Is_Protected_Record_Type,
10215         Is_Subprogram_Or_Entry, Is_Task_Record_Type, Size_Clause,
10216         Stream_Size_Clause, Type_High_Bound, Type_Low_Bound, Known_*,
10217         Unknown_*.
10218         (Inline Pragmas for procedures): Add Set_Corresponding_Function,
10219         Set_Corresponding_Procedure, Set_Finalize_Storage_Only,
10220         Set_Float_Rep, Set_Initialization_Statements,
10221         Init_Normalized_First_Bit, Init_Normalized_Position,
10222         Init_Normalized_Position_Max.
10223         * einfo.adb (Was_Hidden): Move around.
10224         (Is_Packed_Array): Likewise.
10225         (Model_Emin_Value): Likewise.
10226         (Model_Epsilon_Value): Likewise.
10227         (Model_Mantissa_Value): Likewise.
10228         (Model_Small_Value): Likewise.
10230 2020-06-09  Ed Schonberg  <schonberg@adacore.com>
10232         * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
10233         exact match between formal and actual for aspects Atomic and
10234         Volatile only for formal derived types.
10236 2020-06-09  Arnaud Charlet  <charlet@adacore.com>
10238         * exp_util.adb (Side_Effect_Free): Improve handling of
10239         N_Aggregate.
10241 2020-06-09  Ghjuvan Lacambre  <lacambre@adacore.com>
10243         * sem_res.adb (Resolve_Qualified_Expression): Use Subtype_Mark
10244         type.
10246 2020-06-09  Arnaud Charlet  <charlet@adacore.com>
10248         * exp_aggr.adb (Max_Aggregate_Size): New function to factorize
10249         code.
10250         (Convert_To_Positional, Aggr_Size_OK): Use Max_Aggregate_Size.
10252 2020-06-09  Arnaud Charlet  <charlet@adacore.com>
10254         * sem_util.ads, sem_util.adb (Set_Debug_Info_Defining_Id): New.
10255         * exp_ch3.adb, exp_ch8.adb: Call Set_Debug_Info_Defining_Id when
10256         relevant.
10258 2020-06-09  Justin Squirek  <squirek@adacore.com>
10260         * einfo.ads (Returns_By_Ref): Modify documentation to reflect
10261         that Returns_By_Ref can be applied to E_Subprogram_Type
10262         entities.
10264 2020-06-09  Justin Squirek  <squirek@adacore.com>
10266         * exp_attr.adb (Expand_N_Attribute_Reference): Modify expansion
10267         of 'Overlaps_Storage to take into account zero sized arrays.
10269 2020-06-09  Bob Duff  <duff@adacore.com>
10271         * bindo-graphs.adb, bindo-graphs.ads: For each invocation graph,
10272         record the corresponding library graph.
10273         * bindo-writers.adb (Write_Invocation_Graph_Vertex): Print the
10274         lib item name. Remove library graph parameters.
10275         * bindo-augmentors.adb, bindo-augmentors.ads,
10276         bindo-builders.adb, bindo-diagnostics.adb,
10277         bindo-diagnostics.ads, bindo-elaborators.adb: Remove library
10278         graph parameters.
10280 2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
10282         * checks.adb (Apply_Predicate_Check): Extend trick used for
10283         aggregates to qualified aggregates and object declarations
10284         * einfo.ads (Has_Own_DIC): Mention the underlying full view.
10285         (Has_Own_Invariants): Likewise.
10286         (Has_Predicates): Likewise.
10287         * exp_util.adb (Build_DIC_Procedure_Declaration): Do not deal
10288         with base types explicitly but with underlying full views.
10289         (Build_Invariant_Procedure_Declaration): Likewise.
10290         * sem_ch13.adb (Build_Predicate_Functions): Do not deal with
10291         the full view manually but call Propagate_Predicate_Attributes
10292         to propagate attributes to views.
10293         (Build_Predicate_Function_Declaration): Likewise.
10294         * sem_ch3.adb (Build_Assertion_Bodies_For_Type): Build bodies
10295         for private full views with an underlying full view.
10296         (Build_Derived_Private_Type): Small comment tweak.
10297         (Complete_Private_Subtype): Call Propagate_Predicate_Attributes.
10298         (Process_Full_View): Do not deal with base types explicitly for
10299         DIC and Invariant attributes.  Deal with underlying full views
10300         for them.  Call Propagate_Predicate_Attributes and deal with
10301         underlying full views for them.
10302         * sem_ch7.adb (Preserve_Full_Attributes): Do not cross propagate
10303         DIC and Invariant attributes between full type and its base type.
10304         Propagate Predicate attributes from the full to the private view.
10305         * sem_ch9.adb (Analyze_Protected_Type_Declaration): Likewise.
10306         (Analyze_Task_Type_Declaration): Likewise.
10307         * sem_util.ads (Get_Views): Remove Full_Base parameter and add
10308         UFull_Typ parameter.
10309         (Propagate_Predicate_Attributes): New procedure.
10310         * sem_util.adb (Get_Views): Remove Full_Base parameter and add
10311         UFull_Typ parameter.  Retrieve the Corresponding_Record_Type
10312         from the underlying full view, if any.
10313         (Propagate_DIC_Attributes): Remove useless tests.
10314         (Propagate_Invariant_Attributes): Likewise.
10315         (Propagate_Predicate_Attributes): New procedure.
10317 2020-06-09  Justin Squirek  <squirek@adacore.com>
10319         * exp_ch5.adb (Expand_Predicated_Loop): Perserve the original
10320         loop identifier within the expansion.
10322 2020-06-09  Bob Duff  <duff@adacore.com>
10324         * bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder enumerals
10325         to reflect the order of adding edges. Clarify comments.
10326         * bindo-graphs.adb (Add_Edge_Kind_Check): Correct the
10327         assertions.  Reorder the "when"s to match the order of adding
10328         edges, and therefore the order of enumerals in type
10329         Library_Graph_Edge_Kind.  Change names to "Old_" and "New_" to
10330         clarify what's what.  Combine Invocation_Edge into the "<="
10331         test.  Fix the "raise Program_Error" message, which was
10332         backwards.
10334 2020-06-09  Bob Duff  <duff@adacore.com>
10336         * bindo-graphs.adb (Add_Edge_Kind_Check): Add the Image of the
10337         old and new Kinds to the raise Program_Error message.
10339 2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>
10341         * sem_ch3.adb (Is_Visible_Component): Do not special-case
10342         bodies of instances.
10344 2020-06-09  Arnaud Charlet  <charlet@adacore.com>
10346         * exp_ch4.adb (Expand_N_In): Fix handling of null exclusion.
10348 2020-06-09  Ed Schonberg  <schonberg@adacore.com>
10350         * sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
10351         exact match between formal and actual for aspects Atomic,
10352         Atomic_Component, Volatile, and Volatile_Components.
10354 2020-06-09  Bob Duff  <duff@adacore.com>
10356         * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
10357         the --no-separate-return switch of gnatpp.
10359 2020-06-09  Arnaud Charlet  <charlet@adacore.com>
10361         * sem_warn.adb (Warn_On_Constant_Valid_Condition): Add proper
10362         warning tag.
10364 2020-06-09  Arnaud Charlet  <charlet@adacore.com>
10366         * sem_type.adb (Covers): Fix implementation of AI05-0149.
10367         * sem_res.adb: Fix typo.
10369 2020-06-09  Ed Schonberg  <schonberg@adacore.com>
10371         * exp_ch9.adb (Build_Master_Renaming): Make name in renaming
10372         declaration unique by adding a numeric suffix, to prevent
10373         accidental name conflict when several instantiations of a
10374         package containing an access_to_incomplete type that designate
10375         tasks appear in the same scope.
10377 2020-06-09  Piotr Trojanek  <trojanek@adacore.com>
10379         * libgnarl/a-synbar.ads, libgnarl/a-synbar.adb,
10380         libgnarl/a-synbar__posix.ads, libgnarl/a-synbar__posix.adb
10381         (Ada.Synchronous_Barriers): Annotate with SPARK_Mode => Off.
10383 2020-06-09  Arnaud Charlet  <charlet@adacore.com>
10385         * sem_eval.adb (Eval_Relational_Op, Eval_String_Literal,
10386         Eval_Type_Conversion): Relax rules on relational operators and
10387         type conversions of static string types.
10389 2020-06-09  Arnaud Charlet  <charlet@adacore.com>
10391         * sem_util.ads, sem_util.adb (Is_Partially_Initialized_Type):
10392         Take Default_Value and Default_Component_Value into account.
10393         * sem_ch3.adb (Analyze_Object_Declaration): Update comment.
10395 2020-06-09  Bob Duff  <duff@adacore.com>
10397         * bindo-graphs.adb (Add_Edge_Kind_Check): Disable failing part
10398         of the assertion.
10400 2020-06-08  Steve Baird  <baird@adacore.com>
10402         * sem_prag.adb (Analyze_Pragma.Set_Ravenscar_Profile): Add
10403         appropriate call to Set_Restriction_No_Dependence if Ada_Version
10404         >= Ada2012 and Profile is either Ravenscar or a GNAT-defined
10405         Ravenscar variant (i.e., not Jorvik).
10407 2020-06-08  Arnaud Charlet  <charlet@adacore.com>
10409         * sem_ch5.adb: Fix typo.
10410         * sem_ch8.adb (Analyze_Renamed_Primitive_Operation): Check that
10411         the prefix of a prefixed view must be renamable as an object.
10413 2020-06-08  Arnaud Charlet  <charlet@adacore.com>
10415         * sem_cat.ads: Fix typo.
10416         * sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type): Add
10417         handling of N_Attribute_Definition_Clause.
10418         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Call
10419         Validate_Remote_Access_To_Class_Wide_Type for Storage_Size and
10420         Storage_Pool.
10421         * sem_attr.adb, exp_ch4.adb: Update comments.
10423 2020-06-08  Justin Squirek  <squirek@adacore.com>
10425         * sem_ch4.adb (Analyze_One_Call): Add extra condition to the
10426         predicate for deciding when a given controlled call is visible.
10428 2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
10430         * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Port
10431         changes in frontend expander.
10433 2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
10435         * sem_ch13.adb (All_Membership_Choices_Static): Fix style.
10437 2020-06-08  Steve Baird  <baird@adacore.com>
10439         * libgnat/s-rident.ads: Add Jorvik to the Profile_Name
10440         enumeration type.  Add an element for Jorvik to the array
10441         aggregate that is the initial value of the constant
10442         Profile_Info.
10443         * targparm.adb (Get_Target_Parameters): Handle "pragma Profile
10444         (Jorvik);" similarly to "pragma Profile (Ravenscar);".
10445         * snames.ads-tmpl: Declare Name_Jorvik Name_Id. Unlike
10446         Ravenscar, Jorvik is not a pragma name and has no corresponding
10447         element in the Pragma_Id enumeration type; this means that its
10448         declaration must not occur between those of First_Pragma_Name
10449         and Last_Pragma_Name.
10450         * sem_prag.adb (Analyze_Pragma): Add call to
10451         Set_Ravenscar_Profile for Jorvik, similar to the existing calls
10452         for Ravenscar and the GNAT Ravenscar variants.
10454 2020-06-08  Arnaud Charlet  <charlet@adacore.com>
10456         * sem_ch8.adb (Analyze_Object_Renaming): Update Get_Object_Name
10457         to go through N_Qualified_Expression and N_Type_Conversion.  Fix
10458         another case of wrong usage of E_Anonymous_Access_Type instead
10459         of Anonymous_Access_Kind.
10460         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Work
10461         on the original node.
10462         (Is_Aliased_View): Take into account N_Qualified_Expression.
10464 2020-06-08  Arnaud Charlet  <charlet@adacore.com>
10466         * sem_eval.adb (Eval_Type_Conversion): Fix handling of
10467         enumeration to integer conversions.
10468         * exp_attr.adb (Expand_N_Attribute_Reference
10469         [Attribute_Enum_Rep]): Remove special casing for first-level
10470         renaming, best left to the general folding mechanism via
10471         Eval_Type_Conversion.
10473 2020-06-08  Eric Botcazou  <ebotcazou@adacore.com>
10475         * atree.adb (New_Copy): Do not clear Has_Dynamic_Range_Check.
10476         * checks.ads (Append_Range_Checks): Remove Flag_Node parameter.
10477         (Insert_Range_Checks): Likewise and remove default value of
10478         Static_Loc parameter.
10479         * checks.adb (Append_Range_Checks): Remove Flag_Node parameter.
10480         Do not test and set Has_Dynamic_Range_Check.
10481         (Insert_Range_Checks): Likewise and remove default value of
10482         Static_Loc parameter.
10483         * csinfo.adb (CSinfo): Remove 'L' from [NEUB]_Fields pattern and
10484         do not handle Has_Dynamic_Range_Check.
10485         * exp_ch5.adb (Expand_N_Assignment_Statement): Remove argument
10486         in call to Insert_Range_Checks.
10487         * sem_ch3.adb (Analyze_Subtype_Declaration): Do not fiddle
10488         with Has_Dynamic_Range_Check.
10489         (Process_Range_Expr_In_Decl): Remove argument in calls to
10490         Insert_Range_Checks and Append_Range_Checks.
10491         * sinfo.ads (Has_Dynamic_Range_Check): Delete.
10492         (Set_Has_Dynamic_Range_Check): Likewise.
10493         * sinfo.adb (Has_Dynamic_Range_Check): Delete.
10494         (Set_Has_Dynamic_Range_Check): Likewise.
10495         * treepr.adb (Print_Node): Do not print Has_Dynamic_Range_Check.
10497 2020-06-08  Steve Baird  <baird@adacore.com>
10499         * sem_ch13.ads: Export new function
10500         All_Membership_Choices_Static.
10501         * sem_ch13.adb: Implement new function
10502         All_Membership_Choices_Static.  This involves moving the
10503         functions Is_Static_Choice and All_Membership_Choices_Static,
10504         which were previously declared within the function
10505         Is_Predicate_Static, out to library level so that they can be
10506         called by the new function. The already-exisiting code in
10507         Is_Predicate_Static which became the body of
10508         All_Membership_Choices_Static is replaced with a call to the new
10509         function in order to avoid duplication.
10510         * exp_ch9.adb (Is_Pure_Barrier): Several changes needed to
10511         implement rules of AI12-0290 and RM D.7's definition of
10512         "pure-barrier-eligible". These changes include adding a call to
10513         the new function Sem_13.All_Membership_Choices_Static, as per
10514         the "see 4.9" in RM D.7(1.6/5).
10516 2020-06-08  Richard Kenner  <kenner@adacore.com>
10518         * exp_unst.adb (Visit_Node): When visiting array attribute
10519         nodes, in addition to checking the type of Get_Referenced_Object
10520         of the prefix, also check the actual type of the prefix.
10522 2020-06-08  Gary Dismukes  <dismukes@adacore.com>
10524         * checks.adb (Apply_Predicate_Check): Refine test for being in a
10525         subprogram body to account for no Corresponding_Body case,
10526         avoiding blowups arising due to other changes here.
10527         * exp_ch4.adb (Expand_N_Qualified_Expression): Apply predicate
10528         checks, if any, after constraint checks are applied.
10529         * sem_eval.ads (Check_Expression_Against_Static_Predicate): Add
10530         Check_Failure_Is_Error formal for conditionalizing warning vs.
10531         error messages.
10532         * sem_eval.adb (Check_Expression_Against_Static_Predicate):
10533         Issue an error message rather than a warning when the new
10534         Check_Failure_Is_Error formal is True. In the nonstatic or
10535         Dynamic_Predicate case where the predicate is known to fail,
10536         emit the check to ensure that folded cases get checks applied.
10537         * sem_res.adb (Resolve_Qualified_Expression): Call
10538         Check_Expression_Against_Static_Predicate, passing True for
10539         Check_Failure_Is_Error, to ensure we reject static predicate
10540         violations. Remove code that was conditionally calling
10541         Apply_Predicate_Check, which is no longer needed, and that check
10542         procedure shouldn't be called from a resolution routine in any
10543         case. Also remove associated comment about preventing infinite
10544         recursion and consistency with Resolve_Type_Conversion, since
10545         that handling was already similarly removed from
10546         Resolve_Type_Convesion at some point.
10547         (Resolve_Type_Conversion): Add passing of True for
10548         Check_Failure_Is_Error parameter on call to
10549         Check_Expression_Against_Static_Predicate, to ensure that static
10550         conversion cases that violate a predicate are rejected as
10551         errors.
10553 2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
10555         * snames.ads-tmpl (Name_SPARK): Restore after being deleted.
10557 2020-06-08  Arnaud Charlet  <charlet@adacore.com>
10559         * exp_aggr.adb, exp_ch6.adb, par-ch11.adb, par-ch6.adb,
10560         par-ch7.adb, par-prag.adb, restrict.adb, restrict.ads,
10561         scans.ads, scng.adb, sem_aggr.adb, sem_attr.adb, sem_ch11.adb,
10562         sem_ch12.adb, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
10563         sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
10564         sem_res.adb, sem_util.adb, sem_util.ads, snames.ads-tmpl,
10565         gnatbind.adb, libgnat/s-rident.ads,
10566         doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
10567         Remove processing of SPARK_05 restriction.
10568         * gnat_rm.texi: Regenerate.
10569         * opt.ads: Remove processing of old checksum which is now
10570         handled by gprbuild directly.
10572 2020-06-08  Arnaud Charlet  <charlet@adacore.com>
10574         * sem_ch12.adb (Instantiate_Object): Relax rules related to null
10575         exclusions and generic objects. Handle all anonymous types
10576         consistently and not just E_Anonymous_Access_Type.
10577         * sem_ch8.adb (Analyze_Object_Renaming): Change wording so that
10578         it applies to both renamings and instantiations to avoid
10579         confusion.
10581 2020-06-08  Arnaud Charlet  <charlet@adacore.com>
10583         * libgnat/a-textio.ads (File_Mode): Fix typo in comment.
10585 2020-06-08  Eric Botcazou  <ebotcazou@adacore.com>
10587         * sem_res.adb (Resolve_Indexed_Component): Do not give a warning
10588         for a nonatomic component of an atomic array which is subject to
10589         an address clause in Ada 2020 mode.
10590         (Resolve_Selected_Component): Likewise for an atomic record.
10592 2020-06-08  Philippe Gil  <gil@adacore.com>
10594         * doc/gnat_ugn/the_gnat_compilation_model.rst: in "Handling
10595         Files with Multiple Units" part documents gnatname use for
10596         unmodified files handling and gnatchop use for files
10597         refactoring.
10598         * gnat_ugn.texi: Regenerate.
10600 2020-06-08  Arnaud Charlet  <charlet@adacore.com>
10602         * doc/gnat_rm/implementation_defined_attributes.rst:
10603         Enum_Rep/Enum_Val are standard Ada 202x attributes.
10604         * gnat_rm.texi: Regenerate.
10606 2020-06-08  Javier Miranda  <miranda@adacore.com>
10608         * exp_aggr.adb (Safe_Component): Remove code that considers as
10609         unsafe components that are aggregates; such removal allows the
10610         frontend to proceed and evaluate if they are safe by means of
10611         invoking Safe_Aggregate.
10613 2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
10615         * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Apply
10616         standard expansion to attributes First and Last.
10618 2020-06-08  Piotr Trojanek  <trojanek@adacore.com>
10620         * exp_attr.adb, exp_util.ads, exp_util.adb (Get_Index_Subtype):
10621         Move from the body of Exp_Attr to Exp_Util and expose from the
10622         spec.
10623         * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Replace
10624         duplicated code with a call to Get_Index_Subtype.
10626 2020-06-08  Arnaud Charlet  <charlet@adacore.com>
10628         * sem_ch8.adb (Analyze_Object_Renaming): Simplify code by moving
10629         many special cases to Is_Object_Reference and removing others by
10630         only checking renamings coming from sources.
10631         * sem_util.adb (Is_Object_Reference): Update for AI12-0226 and
10632         add more regular handling of 'Priority. Remove special cases no
10633         longer needed now that we are only checking renamings coming
10634         from sources.
10636 2020-06-08  Claire Dross  <dross@adacore.com>
10638         * libgnat/a-cofove.adb (Insert_Space): The computation of Index
10639         generates a spurious compiler warning about a value not being in
10640         range for a statically dead branch.  Silence it using pragma
10641         Warnings.
10643 2020-06-08  Bob Duff  <duff@adacore.com>
10645         * bindo-graphs.adb (function Add_Edge): Rename
10646         Add_Edge_With_Return to Add_Edge; we can tell it returns because
10647         it's a function, and overloading seems appropriate in this case.
10648         If Activates_Task=True, and we're not going to add a new edge
10649         because an existing Pred-->Succ edge already exists, then set
10650         Activates_Task to True on the preexisting edge.  This ensures
10651         that the message:
10652         info: use pragma Restrictions (No_Entry_Calls_In_Elaboration_Code)
10653         appears when appropriate, no matter in what order the edges
10654         happened to be processed.
10655         (procedure Add_Edge): Remove redundant assertions.
10656         (Activates_Task): Other kinds of edges can have
10657         Activates_Task=True.  For example, if we had a With_Edge and
10658         then an Invocation_Edge with Activates_Task=True, then the
10659         With_Edge has Activates_Task set to True.
10660         (Add_Edge_Kind_Check): New procedure to prevent other bugs of
10661         this nature. For example, if we were to sometimes call Add_Edge
10662         for a Spec_Before_Body_Edge followed by Add_Edge for a
10663         With_Edge, and sometimes in the other order, that would cause a
10664         similar bug to what we're fixing here.
10665         (Set_Is_Recorded_Edge): Val parameter is not used. Get rid of
10666         it.
10667         (Set_Activates_Task): New procedure to set the Activates_Task flag.
10668         * bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder the
10669         enumeration literals to facilitate Add_Edge_Kind_Check.
10670         * ali.adb (Known_ALI_Lines): The comment about "still available"
10671         was wrong. Fix that by erasing the comment, and encoding the
10672         relevant information in real code. Take advantage of Ada's full
10673         coverage rules by removing "others =>".  Also DRY.
10675 2020-06-08  Ed Schonberg  <schonberg@adacore.com>
10677         * par-ch12.adb (P_Formal_Derived_Type_Definition): Handle
10678         properly formal derived types that include aspect
10679         specifications, so that the "with" keyword appears twice in the
10680         formal type declaration.
10681         * sem_ch13.adb (Has_Generic_Parent): Return true if the type
10682         itself is a generic formal.
10684 2020-06-08  Dmitriy Anisimkov  <anisimko@adacore.com>
10686         * socket.c (__gnat_minus_500ms): Remove
10687         IsWindowsVersionOrGreater from condition.
10689 2020-06-08  Claire Dross  <dross@adacore.com>
10691         * libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads,
10692         libgnat/a-cfhase.ads, libgnat/a-cforma.ads, libgnat/a-cforse.ads
10693         (Delete): Add Depends contract.
10695 2020-06-08  Arnaud Charlet  <charlet@adacore.com>
10697         * snames.ads-tmpl (Name_Program_Error_Check,
10698         Name_Tasking_Check): New constants.
10699         * types.ads (Program_Error_Check, Tasking_Check): New constants.
10700         (All_Checks): Update accordingly.
10702 2020-06-05  Arnaud Charlet  <charlet@adacore.com>
10704         * sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Use ??.
10706 2020-06-05  Arnaud Charlet  <charlet@adacore.com>
10708         * cstand.adb (Create_Standard): Update comments.
10710 2020-06-05  Arnaud Charlet  <charlet@adacore.com>
10712         * scng.adb (Scan): Fix typo to take into account all future
10713         versions of Ada.
10714         * sem_attr.ads (Attribute_Impl_Def): Add Attribute_Reduce for
10715         now.
10716         * sem_attr.adb (Analyze_Attribute): Only allow 'Reduce under
10717         -gnatX.
10718         * snames.ads-tmpl (Name_Reduce): Update comment.
10720 2020-06-05  Thomas Quinot  <quinot@adacore.com>
10722         * exp_disp.adb (Expand_Interface_Thunk): Add comment about
10723         gnatcov reliance on specific name used for thunks.
10725 2020-06-05  Ed Schonberg  <schonberg@adacore.com>
10727         * sem_ch3.adb (Analyze_Subtype_Declaration): For scalar types,
10728         and for subtype declarations without a constraint, subtype
10729         inherits Atomic flag from base type.
10731 2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
10733         * doc/gnat_rm/implementation_defined_attributes.rst (Enum_Rep):
10734         Remove extra colon.
10735         * gnat_rm.texi: Regenerate.
10737 2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
10739         * atree.adb (New_Copy): Clear Has_Dynamic_Range_Check on
10740         subexpression nodes.
10741         * checks.adb (Append_Range_Checks): Assert that the node
10742         doesn't have the Has_Dynamic_Range_Check flag set.
10743         (Insert_Range_Checks): Likewise.
10744         * exp_ch3.adb (Expand_N_Subtype_Indication): Do not apply
10745         range checks for a full type or object declaration.
10746         * sem_ch3.ads: Move with and use clauses for Nlists to...
10747         (Process_Range_Expr_In_Decl): Change default to No_List for
10748         the Check_List parameter.
10749         * sem_ch3.adb: ...here.
10750         (Process_Range_Expr_In_Decl): Likewise.  When the insertion
10751         node is a declaration, only insert on the list if is present
10752         when the declaration involves discriminants, and only insert
10753         on the node when there is no list otherwise.
10755 2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
10757         * sem_aggr.adb (Resolve_Record_Aggregate): Create the
10758         N_Aggregate node with its Expressions field set to No_List and
10759         not to an empty list.
10761 2020-06-05  Dmitriy Anisimkov  <anisimko@adacore.com>
10763         * libgnat/s-os_lib.adb (Is_Dirsep): Moved from Build_Path to
10764         package level to reuse.
10765         (Normalize_Pathname.Final_Value): Reduce 2 'if' statements to
10766         one.
10767         (Normalize_Pathname.Fill_Directory): New procedure instead of
10768         function Get_Directory. Remove slash to backslash conversion and
10769         drive letter uppercasing on Windows.
10771 2020-06-05  Arnaud Charlet  <charlet@adacore.com>
10773         * sem.adb (Assert_Done): Relax check for main unit, as it was
10774         overzealous in the case of the main unit itself.
10776 2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
10778         * exp_ch3.adb, sem_ch8.adb, sem_util.adb: Use Is_Incomplete_Type
10779         to make the code easier to read.
10781 2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
10783         * einfo.adb: Minor reformatting.
10784         * sem_util.adb (Has_Full_Default_Initialization,
10785         Is_Partially_Initialized_Type, Caller_Known_Size_Record,
10786         Large_Max_Size_Mutable): Iterate with
10787         First_Component/Next_Component; rename Ent to Comp.
10789 2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
10791         * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use
10792         Expr_Rep_Value instead of Expr_Value to obtain the equivalent
10793         integer value.
10794         * sem_eval.ads (Expr_Value): Document more supported cases.
10795         * sem_eval.adb (Expr_Rep_Value): Copy missing cases from
10796         Exp_Value.
10798 2020-06-05  Bob Duff  <duff@adacore.com>
10800         * rtsfind.adb, rtsfind.ads: Move subtypes of RTU_Id into package
10801         body, because they are not needed by clients. Change "Child_" to
10802         "Descendant", because grandchildren and great grandchildren are
10803         involved.  Replace all the repetitive comments with a single
10804         concise one.  Change the parent subtypes to be more consistent;
10805         use the most specific parent.
10807 2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
10809         * rtsfind.ads, rtsfind.adb (Is_Text_IO_Special_Package): Moved
10810         from the GNATprove backend to the frontend.
10812 2020-06-05  Yannick Moy  <moy@adacore.com>
10814         * sem_util.ads: Add comment about function only used in
10815         CodePeer.
10817 2020-06-05  Ed Schonberg  <schonberg@adacore.com>
10819         * sem_ch9.adb, (Analyze_Task_Body): After analying the task
10820         body, indicate that all local variables have no delayed aspects.
10821         This prevents improper later calls to
10822         Check_Aspect_At_End_Of_Declarations, that would happen when the
10823         constructed task_procedure body (generated during expansion) is
10824         analyzed. The legality of aspect specifications that may appear
10825         on local declarations has already been established, and it is in
10826         general not possible to recheck them properly during expansion,
10827         when visibility may not be fully established.
10829 2020-06-05  Piotr Trojanek  <trojanek@adacore.com>
10831         * libgnat/a-cofuve.ads (First): Add Global contract.
10833 2020-06-05  Arnaud Charlet  <charlet@adacore.com>
10835         * sem_prag.adb (Set_Convention_From_Pragma): Set the convention
10836         of anonymous access array components.
10838 2020-06-05  Arnaud Charlet  <charlet@adacore.com>
10840         * libgnat/a-calfor.ads, libgnat/a-catizo.ads,
10841         libgnat/a-catizo.adb (Local_Time_Offset, Local_Image): New.
10842         (UTC_Time_Offset): Now a renaming of Local_Time_Offset.
10844 2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
10846         * sem_ch3.adb (Available_Full_View): New function returning
10847         either the full or the underlying full view.
10848         (Build_Full_Derivation): Add guard for the full view.
10849         (Copy_And_Build): Retrieve the underlying full view, if any,
10850         also if deriving a completion.
10851         (Build_Derived_Private_Type): Use Available_Full_View throughout
10852         to decide whether a full derivation must be done.
10854 2020-06-05  Bob Duff  <duff@adacore.com>
10856         * exp_attr.adb, exp_ch11.adb, exp_imgv.adb, exp_tss.ads,
10857         par-ch4.adb, sem_attr.adb, sem_util.ads: Misc cleanup.
10859 2020-06-05  Arnaud Charlet  <charlet@adacore.com>
10861         * libgnat/a-nudira.ads, libgnat/a-nudira.adb (Random): New
10862         function.
10864 2020-06-05  Arnaud Charlet  <charlet@adacore.com>
10866         * sem_attr.ads (Attribute_Impl_Def): Remove Enum_Rep/Val.
10867         * sem_attr.adb (Attribute_20): New, move Enum_Rep/Val here.
10868         (Analyze_Attribute): Take Attribute_20 into account.
10870 2020-06-05  Arnaud Charlet  <charlet@adacore.com>
10872         * restrict.ads (Unit_Array): Add a-direct.
10874 2020-06-05  Arnaud Charlet  <charlet@adacore.com>
10876         * libgnat/s-stopoo.ads: Mark package Pure and leave room for
10877         Nonblocking once this aspect is supported.
10879 2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
10881         * exp_attr.adb (Expand_N_Attribute_Reference) <Valid_Scalars>:
10882         Set the No_Truncation flag on the unchecked conversion built for
10883         scalar types.
10885 2020-06-05  Bob Duff  <duff@adacore.com>
10887         * einfo.adb, einfo.ads, exp_util.adb: Remove Invariants_Ignored
10888         flag.
10889         * sem_prag.adb (Invariant): Instead of setting a flag to be
10890         checked elsewhere, remove the pragma as soon as it is analyzed
10891         and checked for legality.
10893 2020-06-05  Eric Botcazou  <ebotcazou@adacore.com>
10895         * checks.ads (Apply_Length_Check): Rename Ck_Node parameter to
10896         Expr.
10897         (Apply_Range_Check): Likewise.
10898         (Get_Range_Checks): Likewise.
10899         * checks.adb (Apply_Float_Conversion_Check): Likewise.
10900         (Apply_Selected_Length_Checks): Likewise.
10901         (Apply_Selected_Range_Checks): Likewise.
10902         (Guard_Access): Likewise.
10903         (Selected_Length_Checks): Likewise.  Also avoid shadowing in
10904         child procedures.
10905         (Selected_Range_Checks): Likewise.
10907 2020-06-05  Arnaud Charlet  <charlet@adacore.com>
10909         * par-ch3.adb, par-ch4.adb, scng.adb, sem_aggr.adb,
10910         sem_ch10.adb, sem_ch12.adb, sem_prag.adb: Update wording: change
10911         Ada_2020 to Ada 2020 in comments and mention -gnat2020 instead
10912         of -gnatX switch.
10914 2020-06-04  Arnaud Charlet  <charlet@adacore.com>
10916         * libgnat/i-c.ads (long_long, unsigned_long_long): New
10917         definitions.
10919 2020-06-04  Arnaud Charlet  <charlet@adacore.com>
10921         * Makefile.rtl: add a-tasini object
10922         * impunit.adb (Non_Imp_File_Names_95): Add s-tasini.
10923         * libgnarl/a-tasini.ads, libgnarl/a-tasini.adb: New files.
10924         * libgnarl/s-taskin.ads (Global_Initialization_Handler): New.
10925         * libgnarl/s-tassta.adb (Task_Wrapper): Call
10926         Global_Initialization_Handler if non null.
10928 2020-06-04  Ed Schonberg  <schonberg@adacore.com>
10930         * sem_ch12.adb (Build_Suprogram_Body_Wrapper,
10931         Build_Subprogram_Decl_Wrapper): New suprograms, to create the
10932         wrappers needed to implement contracts on formsl subprograms at
10933         the point of instantiation.
10934         (Build_Subprogram_Wrappers): New subprogram within
10935         Analyze_Associations, calls the above when the formal subprogram
10936         has contracts, and expansion is enabled.
10937         (Instantiate_Formal_Subprogram): If the actual is not an entity,
10938         such as a function attribute, or a synchronized operation,
10939         create a function with an internal name and call it within the
10940         wrapper.
10941         (Analyze_Generic_Formal_Part): Analyze contracts at the end of
10942         the list of formal declarations.
10943         * sem_prag.adb (Analyze_Pre_Post_Condtion): In Ada_2020 the
10944         aspect and corresponding pragma can appear on a formal
10945         subprogram declaration.
10946         (Find_Related_Declaration_Or_Body): Ditto.
10948 2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
10950         * exp_ch7.adb (Make_Final_Call): Set the type of the object, if
10951         it is unanalyzed, before calling Convert_View on it.
10953 2020-06-04  Arnaud Charlet  <charlet@adacore.com>
10955         * adabkend.adb, back_end.ads, opt.ads, sem_ch6.adb: Get rid of
10956         Disable_FE_Inline_Always.
10958 2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
10960         * exp_ch7.adb (Make_Final_Call): Add missing guard.
10961         * sem_ch3.adb (Copy_And_Build): Adjust recursive call for
10962         private types.
10963         (Build_Derived_Private_Type): Deal with underlying full views.
10965 2020-06-04  Bob Duff  <duff@adacore.com>
10967         * libgnat/a-stobbu.adb, libgnat/a-stobbu.ads,
10968         libgnat/a-stobfi.adb, libgnat/a-stobfi.ads,
10969         libgnat/a-stoubu.adb, libgnat/a-stoubu.ads,
10970         libgnat/a-stoufi.adb, libgnat/a-stoufi.ads,
10971         libgnat/a-stoufo.adb, libgnat/a-stoufo.ads,
10972         libgnat/a-stouut.adb, libgnat/a-stouut.ads,
10973         libgnat/a-stteou.ads, libgnat/s-putaim.adb,
10974         libgnat/s-putaim.ads, libgnat/s-putima.adb, libgnat/s-putima.ads
10975         (Ada.Strings.Text_Output and children, System.Put_Images): New
10976         runtime support for Put_Image.
10977         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add
10978         exp_put_image.o.
10979         * exp_put_image.adb, exp_put_image.ads: New compiler package
10980         that generates calls to runtime routines that implement
10981         Put_Image.
10982         * Makefile.rtl: Add object files for Ada.Strings.Text_Output and
10983         children and System.Put_Images.
10984         * aspects.adb: Simplify initialization of Canonical_Aspect.
10985         * aspects.ads: Improve documentation. Add Aspect_Put_Image.
10986         * exp_attr.adb: Add support for Put_Image, by calling routines
10987         in Exp_Put_Image.
10988         * sem_util.adb (Is_Predefined_Dispatching_Operation): Return
10989         True for new TSS_Put_Image operation.
10990         * exp_ch3.adb: For tagged types, build a dispatching
10991         TSS_Put_Image operation by calling routines in Exp_Put_Image.
10992         * exp_disp.adb, exp_disp.ads: Make TSS_Put_Image be number 10,
10993         adjusting other operations' numbers after 10. We choose 10
10994         because that's the last number shared by all runtimes.
10995         * exp_strm.adb: Use named notation as appropriate.
10996         * exp_cg.adb, exp_tss.ads: Add TSS_Put_Image.
10997         * libgnat/a-tags.ads: Modify Max_Predef_Prims for the new
10998         TSS_Put_Image.
10999         * impunit.adb: Add new runtime packages.
11000         * rtsfind.adb, rtsfind.ads: Add support for
11001         Ada.Strings.Text_Output, Ada.Strings.Text_Output.Utils, and
11002         System.Put_Images.
11003         * sem_attr.adb: Error checking for Put_Image calls.
11004         * sem_ch12.adb (Valid_Default_Attribute): Support for passing
11005         Put_Image as a generic formal parameter.
11006         * sem_ch13.adb: Analysis of Put_Image aspect. Turn it into a
11007         Put_Image attribute definition clause.
11008         * sem_ch8.adb (Analyze_Subprogram_Renaming): Support for
11009         renaming of the Put_Image attribute.
11010         * snames.adb-tmpl: Fix comments.
11011         * snames.ads-tmpl (Name_Put_Image): New Name_Id.
11012         (Attribute_Put_Image): New Attribute_Id.
11013         * tbuild.adb, tbuild.ads (Make_Increment): New utility.
11015 2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
11017         * exp_attr.adb (xpand_N_Attribute_Reference) <Input>: Call
11018         Find_Inherited_TSS to look up the Stream_Read TSS.
11019         <Output>: Likewise for the Stream_Write TSS.
11020         * exp_ch7.adb (Make_Final_Call): Call Underlying_Type on
11021         private types to account for underlying full views.
11022         * exp_strm.ads  (Build_Record_Or_Elementary_Input_Function):
11023         Remove Use_Underlying parameter.
11024         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
11025         Likewise and adjust accordingly.
11026         * exp_tss.adb (Find_Inherited_TSS): Deal with full views.
11027         Call Find_Inherited_TSS recursively on the parent type if
11028         the base type is a derived type.
11029         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Take
11030         into account underlying full views for derived types.
11031         * sem_ch3.adb (Copy_And_Build): Look up the underlying full
11032         view only for a completion.  Be prepared for private types.
11033         (Build_Derived_Private_Type): Build an underlying full view
11034         for a completion in the general case too.
11036 2020-06-04  Arnaud Charlet  <charlet@adacore.com>
11038         * back_end.adb, opt.ads, par-prag.adb, sem_ch5.adb,
11039         sem_prag.adb, sinfo.adb, sinfo.ads, snames.ads-tmpl,
11040         doc/gnat_rm/implementation_defined_pragmas.rst: Remove
11041         experimental support for OpenACC.
11042         * gcc-interface/misc.c, gcc-interface/trans.c,
11043         gcc-interface/lang.opt: Ditto.
11044         * gnat_rm.texi: Regenerate.
11046 2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
11048         * checks.adb (Generate_Discriminant_Check): Remove obsolete
11049         comment.
11051 2020-06-04  Gary Dismukes  <dismukes@adacore.com>
11053         * par-ch3.adb (P_Identifier_Declarations): Add parsing of object
11054         renamings that have neither a subtype_mark nor an
11055         access_definition. Issue an error if the version is earlier than
11056         Ada_2020, and suggest using -gnatX.
11057         * sem_ch8.adb (Analyze_Object_Renaming): Handle
11058         object_renaming_declarations that don't have an explicit
11059         subtype. Errors are issued when the name is inappropriate or
11060         ambiguous, and otherwise the Etype of the renaming entity is set
11061         from the Etype of the renamed object.
11062         * sem_util.adb (Has_Null_Exclusion): Allow for the case of no
11063         subtype given in an N_Object_Renaming_Declaration.
11064         * sprint.adb (Sprint_Node_Actual): Handle printing of
11065         N_Object_Renaming_Declarations that are specified without an
11066         explicit subtype.
11068 2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
11070         * sinfo.ads (N_Delta_Aggregate): Document Etype field.
11071         (N_Case_Expression): Likewise.
11072         (Is_Syntactic_Field) <N_Quantified_Expression>: Adjust.
11073         <N_Case_Expression>: Likewise.
11075 2020-06-04  Arnaud Charlet  <charlet@adacore.com>
11077         * adaint.c: Avoid redefining IS_DIR_SEPARATOR macro.
11079 2020-06-04  Arnaud Charlet  <charlet@adacore.com>
11081         * sem.adb (Walk_Library_Items): Defer processing of main spec
11082         after all other specs and before processing bodies.
11084 2020-06-04  Arnaud Charlet  <charlet@adacore.com>
11086         * bindgen.adb (Gen_Adafinal): Adafinal is convention Ada, not C.
11088 2020-06-04  Ed Schonberg  <schonberg@adacore.com>
11090         * sinput.adb (Sloc_Range): Ignore node in the tree if it appears
11091         in a unit different from that of the node whose Sloc range we
11092         are computing. This is necessary when computing the source range
11093         of a subprogram body whose declaration includes a pre- or
11094         postcondition, because declaration and body may appear in
11095         different units, and the expanded code for the body includes
11096         copies of the contract code.
11098 2020-06-04  Alexandre Oliva  <oliva@adacore.com>
11100         * switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
11101         dumpbase-ext.  Mark auxbase and auxbase-strip for removal.
11103 2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
11105         * sem_attr.adb (Resolve_Attribute) <Access>: Do not generate
11106         the secondary message about a missing pragma if the convention
11107         of the prefix is Intrinsic.
11108         * sem_ch12.adb (Instantiate_Formal_Subprogram): Only set the
11109         Convention and the Is_Inlined flag on a null procedure.
11111 2020-06-04  Justin Squirek  <squirek@adacore.com>
11113         * sem_ch6.adb (Check_Return_Obj_Accessibility): Change to
11114         Check_Return_Construct_Accessibility to better reflect its
11115         purpose.  Add loop to properly obtain the object declaration
11116         from an expanded extended return statement and add calls to get
11117         the original node for associated values. Also, avoid checks when
11118         the return statement being examined comes from an internally
11119         generated function.
11121 2020-06-04  Dmitriy Anisimkov  <anisimko@adacore.com>
11123         * adaint.c (__gnat_is_absolute_path): Check for directory
11124         separator after drive and colon.
11125         (IS_DIR_SEPARATOR): Define new inline substitution.
11127 2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
11129         * checks.ads: Update documentation about range checks and fix
11130         minor other things.
11132 2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
11134         * sem_ch3.adb (Array_Type_Declaration): Apply special handling
11135         of private index types to generic packages and restrict it to
11136         index types defined in the current scope.
11138 2020-06-04  Arnaud Charlet  <charlet@adacore.com>
11140         * libgnat/a-exextr.adb (Global_Unhandled_Action): New global
11141         variable.
11142         (Notify_Exception): Take into account Global_Unhandled_Action
11143         and fix latent race condition.
11144         (Exception_Action): Mark Favor_Top_Level so that variables can
11145         be atomic.
11146         (Global_Action): Mark atomic to remove the need for a lock.
11147         * libgnat/g-excact.ads, libgnat/g-excact.adb
11148         (Register_Global_Unhandled_Action): New procedure.
11149         (Register_Global_Action): Remove lock.
11150         * libgnat/s-stalib.ads (Raise_Action): Mark Favor_Top_Level to
11151         be compatible with Exception_Action.
11152         * sem_warn.adb (Warn_On_Unreferenced_Entity): Fix logic wrt
11153         Volatile entities and entities with an address clause: the code
11154         did not match the comment/intent.
11156 2020-06-04  Arnaud Charlet  <charlet@adacore.com>
11158         * comperr.adb (Compiler_Abort): Update URL and bug report
11159         instructions.
11161 2020-06-04  Steve Baird  <baird@adacore.com>
11163         * libgnat/s-imgrea.ads: Declare a named number
11164         Max_Real_Image_Length with value 5200.  Provide a comment
11165         explaining why this value was chosen.
11166         * libgnat/s-imgrea.adb (Set_Image_Real): Increase the upper
11167         bound of the local String variable Digs to
11168         Max_Real_Image_Length.
11169         * libgnat/a-tiflau.adb (Put): Increase the upper bound of the
11170         local String variable Buf to Max_Real_Image_Length.
11171         (Puts): Increase the upper bound of the local String variable
11172         Buf to Max_Real_Image_Length.
11174 2020-06-04  Arnaud Charlet  <charlet@adacore.com>
11176         * libgnarl/a-dynpri.adb, libgnarl/a-taside.adb,
11177         libgnarl/a-taster.adb, libgnarl/s-interr.adb,
11178         libgnarl/s-interr__sigaction.adb, libgnarl/s-taasde.adb,
11179         libgnarl/s-taenca.adb, libgnarl/s-taenca.ads,
11180         libgnarl/s-taprop.ads, libgnarl/s-taprop__hpux-dce.adb,
11181         libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
11182         libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
11183         libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
11184         libgnarl/s-tarest.adb, libgnarl/s-tasini.adb,
11185         libgnarl/s-tasque.adb, libgnarl/s-tasque.ads,
11186         libgnarl/s-tasren.adb, libgnarl/s-tasren.ads,
11187         libgnarl/s-tassta.adb, libgnarl/s-tasuti.adb,
11188         libgnarl/s-tasuti.ads, libgnarl/s-tpoben.adb,
11189         libgnarl/s-tpobop.adb, libgnarl/s-tpopmo.adb,
11190         libgnarl/s-tposen.adb, libgnat/s-parame.ads,
11191         libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads,
11192         libgnat/s-parame__vxworks.ads: Remove references to Single_Lock
11193         and Global_Lock.
11195 2020-06-04  Arnaud Charlet  <charlet@adacore.com>
11197         * libgnat/s-atopar.adb, libgnat/s-atopex.adb: Use Object_Size
11198         instead of Size, otherwise many derived types will be rejected
11199         (e.g. a type with a 14 bits 'Size and a 16 bits 'Object_Size).
11201 2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
11203         * sem_ch12.adb (Copy_Generic_Node): Add special handling for a
11204         conversion between access types.
11206 2020-06-04  Eric Botcazou  <ebotcazou@adacore.com>
11208         * sem_ch12.adb (Check_Generic_Actuals): Also restore the proper
11209         views of the actuals of the parent instances if the formals are
11210         used as actuals of the children.
11211         (Instantiate_Type): Add comment.
11213 2020-06-04  Gary Dismukes  <dismukes@adacore.com>
11215         * sem_ch12.adb: Minor editorial fixes.
11217 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11219         * sem_ch12.adb (Denotes_Previous_Actual): Delete.
11220         (Check_Generic_Actuals): Do not special case array types whose
11221         component type denotes a previous actual.  Do not special case
11222         access types whose base type is private.
11223         (Check_Private_View): Remove code dealing with secondary types.
11224         Do not switch the views of an array because of its component.
11225         (Copy_Generic_Node): Add special handling for a comparison
11226         operator on array types.
11227         (Instantiate_Type): Do not special case access types whose
11228         designated type is private.
11229         (Set_Global_Type): Do not special case array types whose
11230         component type is private.
11232 2020-06-03  Justin Squirek  <squirek@adacore.com>
11234         * sem_ch10.adb (Process_Body_Clauses): Add loop to interate
11235         through all prefixes in a use_type clause so that all packages
11236         in the expanded name get examined for effectiveness.
11238 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11240         * sem_ch12.adb (Check_Private_View): Clean up implementation of
11241         second main case, when the generic sees the private declaration.
11243 2020-06-03  Arnaud Charlet  <charlet@adacore.com>
11245         * libgnat/a-nbnbin.ads: Minor reformatting.
11246         * libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb (Is_Valid): Add
11247         convention Intrinsic. Add detection of uninitialized big reals.
11249 2020-06-03  Arnaud Charlet  <charlet@adacore.com>
11251         * sem_util.ads, sem_util.adb (Side_Effect_Free_Statements,
11252         Side_Effect_Free_Loop): New functions.
11253         (Has_Non_Null_Statements): Consider N_Call_Marker as a null
11254         statement.
11255         * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Call
11256         Set_Is_Null_Loop even inside a generic instantiation.
11257         (Analyze_Loop_Statement): Mark for removal loops with no side
11258         effects.
11260 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11262         * opt.ads (Allow_Integer_Address): Fix typo in comment.
11263         * stand.ads (Standard_Address): New entity.
11264         * cstand.adb (Create_Standard): Create it.
11265         * sem_ch4.adb (Operator_Check): Convert the operands of an
11266         operation with addresses and integers to Standard_Address
11267         if pragma Allow_Integer_Address is in effect.
11269 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11271         * libgnat/s-atopar.adb (Atomic_Fetch_And_Add): Make use of an
11272         equivalent static expression.
11273         (Atomic_Fetch_And_Subtract): Likewise.
11274         (Is_Lock_Free): Likewise.
11275         * libgnat/s-atopex.adb (Atomic_Exchange): Likewise.
11276         (Atomic_Compare_And_Exchange): Likewise.
11277         (Is_Lock_Free): Likewise.
11279 2020-06-03  Vadim Godunko  <godunko@adacore.com>
11281         * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
11282         libgnat/s-parame__hpux.ads: Fix typos.
11284 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11286         * exp_util.adb (Remove_Side_Effects): For a type conversion, do
11287         not remove the side effects of the expression only if it is of
11288         universal integer type.
11290 2020-06-03  Arnaud Charlet  <charlet@adacore.com>
11292         * libgnat/s-aotase.ads, libgnat/s-atoope.ads,
11293         libgnat/s-atopar.ads, libgnat/s-atopex.ads: Update header.
11295 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11297         * exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Also fold the
11298         conversion for literals of enumeration types.
11300 2020-06-03  Yannick Moy  <moy@adacore.com>
11302         * rtsfind.adb (Load_RTU): Correctly set/reset global variable to
11303         ignore SPARK_Mode in instances around loading.
11304         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Accept Off
11305         without prior On.
11306         * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise.
11307         * sem_prag.adb (Analyze_Pragma): Always take into account
11308         SPARK_Mode Off.
11310 2020-06-03  Arnaud Charlet  <charlet@adacore.com>
11312         * frontend.adb (Frontend): Call (dummy for now) tree checker.
11313         * debug.adb: Reserve -gnatd_V for the tree checker.
11314         * vast.ads, vast.adb: New files.
11315         * gcc-interface/Make-lang.in: Add vast.o.
11317 2020-06-03  Justin Squirek  <squirek@adacore.com>
11319         * libgnat/a-cborse.adb, libgnat/a-cihase.adb,
11320         libgnat/a-ciorse.adb, libgnat/a-coorse.adb: Modified to use
11321         'Unrestricted_Access in certain cases where static accessibility
11322         errors were triggered.
11323         * exp_ch6.adb (Expand_Simple_Return_Statement): Add generation
11324         of dynamic accessibility checks as determined by
11325         Is_Special_Aliased_Formal_Access.
11326         * sem_attr.adb (Resolve_Attribute): Add call to
11327         Is_Special_Aliased_Formal_Access to avoid performing static
11328         checks where dynamic ones are required.
11329         * sem_ch6.adb (Check_Return_Obj_Accessibility): Handle renamed
11330         objects within component associations requiring special
11331         accessibility checks.
11332         * sem_util.adb, sem_util.ads (Is_Special_Aliased_Formal_Access):
11333         Created to detect the special case where an aliased formal is
11334         being compared against the level of an anonymous access return
11335         object.
11336         (Object_Access_Level): Remove incorrect condition leading to
11337         overly permissive accessibility levels being returned on
11338         explicitly aliased parameters.
11340 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11342         * einfo.ads (Enum_Pos_To_Rep): Adjust description.
11343         * exp_attr.adb (Expand_N_Attribute_Reference) <Pred>:
11344         Reimplement in the case of an enumeration type with non-standard
11345         but contiguous representation.
11346         <Succ>: Likewise.
11347         <Val>: Likewise.
11348         * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Count the
11349         literals in the first loop.  If the representation is
11350         contiguous, just build the index type of the array type and set
11351         Enum_Pos_To_Rep to it.
11353 2020-06-03  Gary Dismukes  <dismukes@adacore.com>
11355         * exp_attr.adb (Expand_Loop_Entry_Attribute): Revise loop that
11356         resets the scopes of entities associated with Loop_Id to the
11357         scope of the new function, so the resetting is not restricted to
11358         itypes, but excludes loop parameters and the function entity
11359         itself. However, this fix is believed to be incomplete and a ???
11360         comment is added to indicate that.
11362 2020-06-03  Bob Duff  <duff@adacore.com>
11364         * libgnat/s-regexp.ads: Fix comment
11366 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11368         * exp_attr.adb (Expand_N_Attribute_Reference) <Enum_Rep>:
11369         In the case of an enumeration type, do an intermediate
11370         conversion to a small integer type.  Remove useless stuff.
11371         <Finalization_Size>: Do not hardcode Universal_Integer and
11372         fix a type mismatch in the assignment to the variable.
11373         <Max_Size_In_Storage_Elements>: Likewise.
11374         <From_Any>: Do not redefine the Ptyp local variable.
11375         <To_Any>: Likewise.
11376         <TypeCode>: Likewise.
11377         <Pos>: Small tweaks.
11378         <Val>: For an enumeration type with standard representation,
11379         apply the range check to the expression of a convertion to
11380         Universal_Integer, if any.  For an integer type, expand to
11381         a mere conversion.
11383 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11385         * libgnat/s-rannum.adb (Random_Discrete): In the 32-bit case,
11386         use the same linear implementation as in the 64-bit case when
11387         the type has a contiguous representation.
11389 2020-06-03  Gary Dismukes  <dismukes@adacore.com>
11391         * sem_util.adb (Build_Class_Wide_Clone_Decl): Call
11392         Set_Debug_Info_Needed to set the Needs_Debug_Info flag on
11393         Clone_Id if the flag is set on Spec_Id.
11395 2020-06-03  Yannick Moy  <moy@adacore.com>
11397         * inline.adb (Expand_Inlined_Call): Do not suppress checks on
11398         inlined code in GNATprove mode.
11400 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11402         * einfo.ads (Has_Contiguous_Rep): Fix typo in comment.
11404 2020-06-03  Piotr Trojanek  <trojanek@adacore.com>
11406         * checks.adb, einfo.adb, exp_aggr.adb, exp_ch4.adb, exp_ch6.adb,
11407         exp_unst.adb, exp_util.adb, freeze.adb, inline.adb, repinfo.adb,
11408         sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_ch13.adb,
11409         sem_ch3.adb, sem_ch4.adb, sem_ch8.adb, sem_elab.adb,
11410         sem_eval.adb, sem_prag.adb, sem_res.adb, sem_smem.adb,
11411         sem_util.adb, treepr.adb: Replace uses of Next_ functions with
11412         corresponding procedures.
11414 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11416         * exp_attr.adb (Attribute_Valid): Use Standard_Long_Long_Integer
11417         in lieu of Universal_Integer as large integer type.
11418         * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Likewise.
11420 2020-06-03  Arnaud Charlet  <charlet@adacore.com>
11422         * libgnat/s-auxdec.ads (Address_Int): New.
11424 2020-06-03  Arnaud Charlet  <charlet@adacore.com>
11426         * aspects.adb, aspects.ads, atree.adb, atree.ads, elists.adb,
11427         elists.ads, fname.adb, fname.ads, gnat1drv.adb, lib.adb,
11428         lib.ads, namet.adb, namet.ads, nlists.adb, nlists.ads, opt.adb,
11429         opt.ads, osint-c.adb, osint-c.ads, repinfo.adb, repinfo.ads,
11430         sem_aux.adb, sem_aux.ads, sinput.adb, sinput.ads, stand.ads,
11431         stringt.adb, stringt.ads, switch-c.adb, table.adb, table.ads,
11432         uintp.adb, uintp.ads, urealp.adb, urealp.ads (Tree_Read,
11433         Tree_Write): Remove generation of ASIS trees.
11434         * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
11435         Remove -gnatt and -gnatct documentation.
11436         * gnat_ugn.texi: Regenerate.
11437         * tree_in.ads, tree_in.adb, tree_io.ads, tree_io.adb,
11438         tree_gen.ads, tree_gen.adb, stand.adb: Remove.
11439         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove
11440         references to tree_gen.o tree_in.o tree_io.o.
11442 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11444         * opt.ads (Disable_FE_Inline): Move around.
11445         (Disable_FE_Inline_Always): Likewise.
11447 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11449         * checks.adb (Is_Single_Attribute_Reference): New predicate.
11450         (Generate_Range_Check): Do not force the evaluation if the
11451         node is a single attribute reference.
11452         * exp_util.adb (Side_Effect_Free_Attribute): New predicate.
11453         (Side_Effect_Free) <N_Attribute_Reference>: Call it.
11454         (Remove_Side_Effects): Remove the side effects of the prefix
11455         for an attribute reference whose prefix is not a name.
11457 2020-06-03  Arnaud Charlet  <charlet@adacore.com>
11459         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
11460         -gnatt.
11461         * usage.adb (Usage): Remove mention of -gnatt.
11463 2020-06-03  Eric Botcazou  <ebotcazou@adacore.com>
11465         * sinfo.ads: Minor tweaks in commentary.
11467 2020-06-02  Alexandre Oliva  <oliva@adacore.com>
11469         * lib.ads (Compilation_Switches): Remove -auxbase from
11470         comments.
11471         * switch.ads (Is_Internal_GCC_Switch): Likewise.
11473 2020-06-02  Arnaud Charlet  <charlet@adacore.com>
11475         * atree.ads, checks.adb, contracts.adb, debug.adb, einfo.ads,
11476         exp_ch3.adb, exp_util.adb, expander.ads, expander.adb,
11477         frontend.adb, gnat1drv.adb, itypes.adb, lib.ads, namet.ads,
11478         opt.adb, opt.ads, par-prag.adb, repinfo.ads, sem_aggr.adb,
11479         sem_aux.ads, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
11480         sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb,
11481         sem_dim.adb, sem_elab.adb, sem_prag.adb, sem_prag.ads,
11482         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, stand.ads,
11483         tree_io.ads: Remove references to ASIS_Mode.
11485 2020-06-02  Javier Miranda  <miranda@adacore.com>
11487         * exp_ch4.adb (Generate_Temporary): New subprogram of
11488         Discrete_Range_Check that generates a temporary to facilitate
11489         the C backend the code generation of the unchecked conversion
11490         since the size of the source type may differ from the size of
11491         the target type.
11493 2020-06-02  Arnaud Charlet  <charlet@adacore.com>
11495         * ada_get_targ.adb: Bump copyright year.
11496         * adabkend.adb: Likewise.
11497         * adabkend.ads: Likewise.
11498         * adadecode.c: Likewise.
11499         * adadecode.h: Likewise.
11500         * adaint.c: Likewise.
11501         * adaint.h: Likewise.
11502         * affinity.c: Likewise.
11503         * ali-util.adb: Likewise.
11504         * ali-util.ads: Likewise.
11505         * ali.adb: Likewise.
11506         * ali.ads: Likewise.
11507         * alloc.ads: Likewise.
11508         * argv-lynxos178-raven-cert.c: Likewise.
11509         * argv.c: Likewise.
11510         * aspects.adb: Likewise.
11511         * aspects.ads: Likewise.
11512         * atree.adb: Likewise.
11513         * atree.ads: Likewise.
11514         * atree.h: Likewise.
11515         * aux-io.c: Likewise.
11516         * back_end.adb: Likewise.
11517         * back_end.ads: Likewise.
11518         * bcheck.adb: Likewise.
11519         * bcheck.ads: Likewise.
11520         * binde.adb: Likewise.
11521         * binde.ads: Likewise.
11522         * binderr.adb: Likewise.
11523         * binderr.ads: Likewise.
11524         * bindgen.adb: Likewise.
11525         * bindgen.ads: Likewise.
11526         * bindo-augmentors.adb: Likewise.
11527         * bindo-augmentors.ads: Likewise.
11528         * bindo-builders.adb: Likewise.
11529         * bindo-builders.ads: Likewise.
11530         * bindo-diagnostics.adb: Likewise.
11531         * bindo-diagnostics.ads: Likewise.
11532         * bindo-elaborators.adb: Likewise.
11533         * bindo-elaborators.ads: Likewise.
11534         * bindo-graphs.adb: Likewise.
11535         * bindo-graphs.ads: Likewise.
11536         * bindo-units.adb: Likewise.
11537         * bindo-units.ads: Likewise.
11538         * bindo-validators.adb: Likewise.
11539         * bindo-validators.ads: Likewise.
11540         * bindo-writers.adb: Likewise.
11541         * bindo-writers.ads: Likewise.
11542         * bindo.adb: Likewise.
11543         * bindo.ads: Likewise.
11544         * bindusg.adb: Likewise.
11545         * bindusg.ads: Likewise.
11546         * butil.adb: Likewise.
11547         * butil.ads: Likewise.
11548         * cal.c: Likewise.
11549         * casing.adb: Likewise.
11550         * casing.ads: Likewise.
11551         * ceinfo.adb: Likewise.
11552         * checks.adb: Likewise.
11553         * checks.ads: Likewise.
11554         * cio.c: Likewise.
11555         * clean.adb: Likewise.
11556         * clean.ads: Likewise.
11557         * comperr.adb: Likewise.
11558         * comperr.ads: Likewise.
11559         * contracts.adb: Likewise.
11560         * contracts.ads: Likewise.
11561         * csets.adb: Likewise.
11562         * csets.ads: Likewise.
11563         * csinfo.adb: Likewise.
11564         * cstand.adb: Likewise.
11565         * cstand.ads: Likewise.
11566         * cstreams.c: Likewise.
11567         * ctrl_c.c: Likewise.
11568         * debug.adb: Likewise.
11569         * debug.ads: Likewise.
11570         * debug_a.adb: Likewise.
11571         * debug_a.ads: Likewise.
11572         * einfo.adb: Likewise.
11573         * einfo.ads: Likewise.
11574         * elists.adb: Likewise.
11575         * elists.ads: Likewise.
11576         * elists.h: Likewise.
11577         * env.c: Likewise.
11578         * env.h: Likewise.
11579         * err_vars.ads: Likewise.
11580         * errno.c: Likewise.
11581         * errout.adb: Likewise.
11582         * errout.ads: Likewise.
11583         * erroutc.adb: Likewise.
11584         * erroutc.ads: Likewise.
11585         * errutil.adb: Likewise.
11586         * errutil.ads: Likewise.
11587         * eval_fat.adb: Likewise.
11588         * eval_fat.ads: Likewise.
11589         * exit.c: Likewise.
11590         * exp_aggr.adb: Likewise.
11591         * exp_aggr.ads: Likewise.
11592         * exp_atag.adb: Likewise.
11593         * exp_atag.ads: Likewise.
11594         * exp_attr.adb: Likewise.
11595         * exp_attr.ads: Likewise.
11596         * exp_cg.adb: Likewise.
11597         * exp_cg.ads: Likewise.
11598         * exp_ch10.ads: Likewise.
11599         * exp_ch11.adb: Likewise.
11600         * exp_ch11.ads: Likewise.
11601         * exp_ch12.adb: Likewise.
11602         * exp_ch12.ads: Likewise.
11603         * exp_ch13.adb: Likewise.
11604         * exp_ch13.ads: Likewise.
11605         * exp_ch2.adb: Likewise.
11606         * exp_ch2.ads: Likewise.
11607         * exp_ch3.adb: Likewise.
11608         * exp_ch3.ads: Likewise.
11609         * exp_ch4.adb: Likewise.
11610         * exp_ch4.ads: Likewise.
11611         * exp_ch5.adb: Likewise.
11612         * exp_ch5.ads: Likewise.
11613         * exp_ch6.adb: Likewise.
11614         * exp_ch6.ads: Likewise.
11615         * exp_ch7.adb: Likewise.
11616         * exp_ch7.ads: Likewise.
11617         * exp_ch8.adb: Likewise.
11618         * exp_ch8.ads: Likewise.
11619         * exp_ch9.adb: Likewise.
11620         * exp_ch9.ads: Likewise.
11621         * exp_code.adb: Likewise.
11622         * exp_code.ads: Likewise.
11623         * exp_dbug.adb: Likewise.
11624         * exp_dbug.ads: Likewise.
11625         * exp_disp.adb: Likewise.
11626         * exp_disp.ads: Likewise.
11627         * exp_dist.adb: Likewise.
11628         * exp_dist.ads: Likewise.
11629         * exp_fixd.adb: Likewise.
11630         * exp_fixd.ads: Likewise.
11631         * exp_imgv.adb: Likewise.
11632         * exp_imgv.ads: Likewise.
11633         * exp_intr.adb: Likewise.
11634         * exp_intr.ads: Likewise.
11635         * exp_pakd.adb: Likewise.
11636         * exp_pakd.ads: Likewise.
11637         * exp_prag.adb: Likewise.
11638         * exp_prag.ads: Likewise.
11639         * exp_sel.adb: Likewise.
11640         * exp_sel.ads: Likewise.
11641         * exp_smem.adb: Likewise.
11642         * exp_smem.ads: Likewise.
11643         * exp_spark.adb: Likewise.
11644         * exp_spark.ads: Likewise.
11645         * exp_strm.adb: Likewise.
11646         * exp_strm.ads: Likewise.
11647         * exp_tss.adb: Likewise.
11648         * exp_tss.ads: Likewise.
11649         * exp_unst.adb: Likewise.
11650         * exp_unst.ads: Likewise.
11651         * exp_util.adb: Likewise.
11652         * exp_util.ads: Likewise.
11653         * expander.adb: Likewise.
11654         * expander.ads: Likewise.
11655         * expect.c: Likewise.
11656         * fe.h: Likewise.
11657         * final.c: Likewise.
11658         * fmap.adb: Likewise.
11659         * fmap.ads: Likewise.
11660         * fname-sf.adb: Likewise.
11661         * fname-sf.ads: Likewise.
11662         * fname-uf.adb: Likewise.
11663         * fname-uf.ads: Likewise.
11664         * fname.adb: Likewise.
11665         * fname.ads: Likewise.
11666         * freeze.adb: Likewise.
11667         * freeze.ads: Likewise.
11668         * frontend.adb: Likewise.
11669         * frontend.ads: Likewise.
11670         * get_scos.adb: Likewise.
11671         * get_scos.ads: Likewise.
11672         * get_targ.adb: Likewise.
11673         * get_targ.ads: Likewise.
11674         * ghost.adb: Likewise.
11675         * ghost.ads: Likewise.
11676         * gnat1drv.adb: Likewise.
11677         * gnat1drv.ads: Likewise.
11678         * gnatbind.adb: Likewise.
11679         * gnatbind.ads: Likewise.
11680         * gnatchop.adb: Likewise.
11681         * gnatclean.adb: Likewise.
11682         * gnatcmd.adb: Likewise.
11683         * gnatcmd.ads: Likewise.
11684         * gnatdll.adb: Likewise.
11685         * gnatfind.adb: Likewise.
11686         * gnatkr.adb: Likewise.
11687         * gnatkr.ads: Likewise.
11688         * gnatlink.adb: Likewise.
11689         * gnatlink.ads: Likewise.
11690         * gnatls.adb: Likewise.
11691         * gnatls.ads: Likewise.
11692         * gnatmake.adb: Likewise.
11693         * gnatmake.ads: Likewise.
11694         * gnatname.adb: Likewise.
11695         * gnatname.ads: Likewise.
11696         * gnatprep.adb: Likewise.
11697         * gnatprep.ads: Likewise.
11698         * gnatvsn.adb: Likewise.
11699         * gnatxref.adb: Likewise.
11700         * gprep.adb: Likewise.
11701         * gprep.ads: Likewise.
11702         * gsocket.h: Likewise.
11703         * hostparm.ads: Likewise.
11704         * impunit.adb: Likewise.
11705         * impunit.ads: Likewise.
11706         * indepsw-aix.adb: Likewise.
11707         * indepsw-darwin.adb: Likewise.
11708         * indepsw-gnu.adb: Likewise.
11709         * indepsw.adb: Likewise.
11710         * indepsw.ads: Likewise.
11711         * init.c: Likewise.
11712         * initialize.c: Likewise.
11713         * inline.adb: Likewise.
11714         * inline.ads: Likewise.
11715         * itypes.adb: Likewise.
11716         * itypes.ads: Likewise.
11717         * krunch.adb: Likewise.
11718         * krunch.ads: Likewise.
11719         * layout.adb: Likewise.
11720         * layout.ads: Likewise.
11721         * lib-list.adb: Likewise.
11722         * lib-load.adb: Likewise.
11723         * lib-load.ads: Likewise.
11724         * lib-sort.adb: Likewise.
11725         * lib-util.adb: Likewise.
11726         * lib-util.ads: Likewise.
11727         * lib-writ.adb: Likewise.
11728         * lib-writ.ads: Likewise.
11729         * lib-xref-spark_specific.adb: Likewise.
11730         * lib-xref.adb: Likewise.
11731         * lib-xref.ads: Likewise.
11732         * lib.adb: Likewise.
11733         * lib.ads: Likewise.
11734         * libgnarl/a-astaco.adb: Likewise.
11735         * libgnarl/a-dispat.adb: Likewise.
11736         * libgnarl/a-dynpri.adb: Likewise.
11737         * libgnarl/a-etgrbu.ads: Likewise.
11738         * libgnarl/a-exetim__darwin.adb: Likewise.
11739         * libgnarl/a-exetim__default.ads: Likewise.
11740         * libgnarl/a-exetim__mingw.adb: Likewise.
11741         * libgnarl/a-exetim__mingw.ads: Likewise.
11742         * libgnarl/a-exetim__posix.adb: Likewise.
11743         * libgnarl/a-interr.adb: Likewise.
11744         * libgnarl/a-interr.ads: Likewise.
11745         * libgnarl/a-intnam.ads: Likewise.
11746         * libgnarl/a-intnam__aix.ads: Likewise.
11747         * libgnarl/a-intnam__darwin.ads: Likewise.
11748         * libgnarl/a-intnam__dragonfly.ads: Likewise.
11749         * libgnarl/a-intnam__dummy.ads: Likewise.
11750         * libgnarl/a-intnam__freebsd.ads: Likewise.
11751         * libgnarl/a-intnam__hpux.ads: Likewise.
11752         * libgnarl/a-intnam__linux.ads: Likewise.
11753         * libgnarl/a-intnam__lynxos.ads: Likewise.
11754         * libgnarl/a-intnam__mingw.ads: Likewise.
11755         * libgnarl/a-intnam__qnx.ads: Likewise.
11756         * libgnarl/a-intnam__rtems.ads: Likewise.
11757         * libgnarl/a-intnam__solaris.ads: Likewise.
11758         * libgnarl/a-intnam__vxworks.ads: Likewise.
11759         * libgnarl/a-reatim.adb: Likewise.
11760         * libgnarl/a-reatim.ads: Likewise.
11761         * libgnarl/a-retide.adb: Likewise.
11762         * libgnarl/a-retide.ads: Likewise.
11763         * libgnarl/a-rttiev.adb: Likewise.
11764         * libgnarl/a-rttiev.ads: Likewise.
11765         * libgnarl/a-synbar.adb: Likewise.
11766         * libgnarl/a-synbar.ads: Likewise.
11767         * libgnarl/a-synbar__posix.adb: Likewise.
11768         * libgnarl/a-synbar__posix.ads: Likewise.
11769         * libgnarl/a-sytaco.adb: Likewise.
11770         * libgnarl/a-sytaco.ads: Likewise.
11771         * libgnarl/a-tasatt.adb: Likewise.
11772         * libgnarl/a-tasatt.ads: Likewise.
11773         * libgnarl/a-taside.adb: Likewise.
11774         * libgnarl/a-taside.ads: Likewise.
11775         * libgnarl/a-taster.adb: Likewise.
11776         * libgnarl/g-boubuf.adb: Likewise.
11777         * libgnarl/g-boubuf.ads: Likewise.
11778         * libgnarl/g-boumai.ads: Likewise.
11779         * libgnarl/g-semaph.adb: Likewise.
11780         * libgnarl/g-semaph.ads: Likewise.
11781         * libgnarl/g-signal.adb: Likewise.
11782         * libgnarl/g-signal.ads: Likewise.
11783         * libgnarl/g-tastus.ads: Likewise.
11784         * libgnarl/g-thread.adb: Likewise.
11785         * libgnarl/g-thread.ads: Likewise.
11786         * libgnarl/i-vxinco.adb: Likewise.
11787         * libgnarl/i-vxinco.ads: Likewise.
11788         * libgnarl/s-inmaop.ads: Likewise.
11789         * libgnarl/s-inmaop__dummy.adb: Likewise.
11790         * libgnarl/s-inmaop__posix.adb: Likewise.
11791         * libgnarl/s-inmaop__vxworks.adb: Likewise.
11792         * libgnarl/s-interr.adb: Likewise.
11793         * libgnarl/s-interr.ads: Likewise.
11794         * libgnarl/s-interr__dummy.adb: Likewise.
11795         * libgnarl/s-interr__hwint.adb: Likewise.
11796         * libgnarl/s-interr__sigaction.adb: Likewise.
11797         * libgnarl/s-interr__vxworks.adb: Likewise.
11798         * libgnarl/s-intman.ads: Likewise.
11799         * libgnarl/s-intman__android.adb: Likewise.
11800         * libgnarl/s-intman__dummy.adb: Likewise.
11801         * libgnarl/s-intman__lynxos.adb: Likewise.
11802         * libgnarl/s-intman__mingw.adb: Likewise.
11803         * libgnarl/s-intman__posix.adb: Likewise.
11804         * libgnarl/s-intman__qnx.adb: Likewise.
11805         * libgnarl/s-intman__solaris.adb: Likewise.
11806         * libgnarl/s-intman__susv3.adb: Likewise.
11807         * libgnarl/s-intman__vxworks.adb: Likewise.
11808         * libgnarl/s-intman__vxworks.ads: Likewise.
11809         * libgnarl/s-linux.ads: Likewise.
11810         * libgnarl/s-linux__alpha.ads: Likewise.
11811         * libgnarl/s-linux__android.ads: Likewise.
11812         * libgnarl/s-linux__hppa.ads: Likewise.
11813         * libgnarl/s-linux__mips.ads: Likewise.
11814         * libgnarl/s-linux__riscv.ads: Likewise.
11815         * libgnarl/s-linux__sparc.ads: Likewise.
11816         * libgnarl/s-linux__x32.ads: Likewise.
11817         * libgnarl/s-mudido.adb: Likewise.
11818         * libgnarl/s-mudido__affinity.adb: Likewise.
11819         * libgnarl/s-osinte__aix.adb: Likewise.
11820         * libgnarl/s-osinte__aix.ads: Likewise.
11821         * libgnarl/s-osinte__android.adb: Likewise.
11822         * libgnarl/s-osinte__android.ads: Likewise.
11823         * libgnarl/s-osinte__darwin.adb: Likewise.
11824         * libgnarl/s-osinte__darwin.ads: Likewise.
11825         * libgnarl/s-osinte__dragonfly.adb: Likewise.
11826         * libgnarl/s-osinte__dragonfly.ads: Likewise.
11827         * libgnarl/s-osinte__dummy.ads: Likewise.
11828         * libgnarl/s-osinte__freebsd.adb: Likewise.
11829         * libgnarl/s-osinte__freebsd.ads: Likewise.
11830         * libgnarl/s-osinte__gnu.adb: Likewise.
11831         * libgnarl/s-osinte__gnu.ads: Likewise.
11832         * libgnarl/s-osinte__hpux-dce.adb: Likewise.
11833         * libgnarl/s-osinte__hpux-dce.ads: Likewise.
11834         * libgnarl/s-osinte__hpux.ads: Likewise.
11835         * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
11836         * libgnarl/s-osinte__linux.ads: Likewise.
11837         * libgnarl/s-osinte__lynxos178.adb: Likewise.
11838         * libgnarl/s-osinte__lynxos178e.ads: Likewise.
11839         * libgnarl/s-osinte__mingw.ads: Likewise.
11840         * libgnarl/s-osinte__posix.adb: Likewise.
11841         * libgnarl/s-osinte__qnx.adb: Likewise.
11842         * libgnarl/s-osinte__qnx.ads: Likewise.
11843         * libgnarl/s-osinte__rtems.adb: Likewise.
11844         * libgnarl/s-osinte__rtems.ads: Likewise.
11845         * libgnarl/s-osinte__solaris.adb: Likewise.
11846         * libgnarl/s-osinte__solaris.ads: Likewise.
11847         * libgnarl/s-osinte__vxworks.adb: Likewise.
11848         * libgnarl/s-osinte__vxworks.ads: Likewise.
11849         * libgnarl/s-osinte__x32.adb: Likewise.
11850         * libgnarl/s-proinf.adb: Likewise.
11851         * libgnarl/s-proinf.ads: Likewise.
11852         * libgnarl/s-qnx.ads: Likewise.
11853         * libgnarl/s-solita.adb: Likewise.
11854         * libgnarl/s-solita.ads: Likewise.
11855         * libgnarl/s-stusta.adb: Likewise.
11856         * libgnarl/s-stusta.ads: Likewise.
11857         * libgnarl/s-taasde.adb: Likewise.
11858         * libgnarl/s-taasde.ads: Likewise.
11859         * libgnarl/s-tadeca.adb: Likewise.
11860         * libgnarl/s-tadeca.ads: Likewise.
11861         * libgnarl/s-tadert.adb: Likewise.
11862         * libgnarl/s-tadert.ads: Likewise.
11863         * libgnarl/s-taenca.adb: Likewise.
11864         * libgnarl/s-taenca.ads: Likewise.
11865         * libgnarl/s-taprob.adb: Likewise.
11866         * libgnarl/s-taprob.ads: Likewise.
11867         * libgnarl/s-taprop.ads: Likewise.
11868         * libgnarl/s-taprop__dummy.adb: Likewise.
11869         * libgnarl/s-taprop__hpux-dce.adb: Likewise.
11870         * libgnarl/s-taprop__linux.adb: Likewise.
11871         * libgnarl/s-taprop__mingw.adb: Likewise.
11872         * libgnarl/s-taprop__posix.adb: Likewise.
11873         * libgnarl/s-taprop__qnx.adb: Likewise.
11874         * libgnarl/s-taprop__solaris.adb: Likewise.
11875         * libgnarl/s-taprop__vxworks.adb: Likewise.
11876         * libgnarl/s-tarest.adb: Likewise.
11877         * libgnarl/s-tarest.ads: Likewise.
11878         * libgnarl/s-tasdeb.adb: Likewise.
11879         * libgnarl/s-tasdeb.ads: Likewise.
11880         * libgnarl/s-tasinf.adb: Likewise.
11881         * libgnarl/s-tasinf.ads: Likewise.
11882         * libgnarl/s-tasinf__linux.adb: Likewise.
11883         * libgnarl/s-tasinf__linux.ads: Likewise.
11884         * libgnarl/s-tasinf__mingw.adb: Likewise.
11885         * libgnarl/s-tasinf__mingw.ads: Likewise.
11886         * libgnarl/s-tasinf__solaris.adb: Likewise.
11887         * libgnarl/s-tasinf__solaris.ads: Likewise.
11888         * libgnarl/s-tasinf__vxworks.ads: Likewise.
11889         * libgnarl/s-tasini.adb: Likewise.
11890         * libgnarl/s-tasini.ads: Likewise.
11891         * libgnarl/s-taskin.adb: Likewise.
11892         * libgnarl/s-taskin.ads: Likewise.
11893         * libgnarl/s-taspri__dummy.ads: Likewise.
11894         * libgnarl/s-taspri__hpux-dce.ads: Likewise.
11895         * libgnarl/s-taspri__lynxos.ads: Likewise.
11896         * libgnarl/s-taspri__mingw.ads: Likewise.
11897         * libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
11898         * libgnarl/s-taspri__posix.ads: Likewise.
11899         * libgnarl/s-taspri__solaris.ads: Likewise.
11900         * libgnarl/s-taspri__vxworks.ads: Likewise.
11901         * libgnarl/s-tasque.adb: Likewise.
11902         * libgnarl/s-tasque.ads: Likewise.
11903         * libgnarl/s-tasren.adb: Likewise.
11904         * libgnarl/s-tasren.ads: Likewise.
11905         * libgnarl/s-tasres.ads: Likewise.
11906         * libgnarl/s-tassta.adb: Likewise.
11907         * libgnarl/s-tassta.ads: Likewise.
11908         * libgnarl/s-tasuti.adb: Likewise.
11909         * libgnarl/s-tasuti.ads: Likewise.
11910         * libgnarl/s-tataat.adb: Likewise.
11911         * libgnarl/s-tataat.ads: Likewise.
11912         * libgnarl/s-tpinop.adb: Likewise.
11913         * libgnarl/s-tpinop.ads: Likewise.
11914         * libgnarl/s-tpoaal.adb: Likewise.
11915         * libgnarl/s-tpoben.adb: Likewise.
11916         * libgnarl/s-tpoben.ads: Likewise.
11917         * libgnarl/s-tpobmu.adb: Likewise.
11918         * libgnarl/s-tpobmu.ads: Likewise.
11919         * libgnarl/s-tpobop.adb: Likewise.
11920         * libgnarl/s-tpobop.ads: Likewise.
11921         * libgnarl/s-tpopmo.adb: Likewise.
11922         * libgnarl/s-tpopsp__posix-foreign.adb: Likewise.
11923         * libgnarl/s-tpopsp__posix.adb: Likewise.
11924         * libgnarl/s-tpopsp__solaris.adb: Likewise.
11925         * libgnarl/s-tpopsp__tls.adb: Likewise.
11926         * libgnarl/s-tpopsp__vxworks-rtp.adb: Likewise.
11927         * libgnarl/s-tpopsp__vxworks-tls.adb: Likewise.
11928         * libgnarl/s-tpopsp__vxworks.adb: Likewise.
11929         * libgnarl/s-tporft.adb: Likewise.
11930         * libgnarl/s-tposen.adb: Likewise.
11931         * libgnarl/s-tposen.ads: Likewise.
11932         * libgnarl/s-vxwext.adb: Likewise.
11933         * libgnarl/s-vxwext.ads: Likewise.
11934         * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
11935         * libgnarl/s-vxwext__kernel.adb: Likewise.
11936         * libgnarl/s-vxwext__kernel.ads: Likewise.
11937         * libgnarl/s-vxwext__noints.adb: Likewise.
11938         * libgnarl/s-vxwext__rtp-smp.adb: Likewise.
11939         * libgnarl/s-vxwext__rtp.adb: Likewise.
11940         * libgnarl/s-vxwext__rtp.ads: Likewise.
11941         * libgnarl/s-vxwext__vthreads.ads: Likewise.
11942         * libgnarl/s-vxwork__aarch64.ads: Likewise.
11943         * libgnarl/s-vxwork__arm.ads: Likewise.
11944         * libgnarl/s-vxwork__ppc.ads: Likewise.
11945         * libgnarl/s-vxwork__x86.ads: Likewise.
11946         * libgnarl/thread.c: Likewise.
11947         * libgnat/a-assert.adb: Likewise.
11948         * libgnat/a-assert.ads: Likewise.
11949         * libgnat/a-btgbso.adb: Likewise.
11950         * libgnat/a-btgbso.ads: Likewise.
11951         * libgnat/a-calari.adb: Likewise.
11952         * libgnat/a-calari.ads: Likewise.
11953         * libgnat/a-calcon.adb: Likewise.
11954         * libgnat/a-calcon.ads: Likewise.
11955         * libgnat/a-caldel.adb: Likewise.
11956         * libgnat/a-caldel.ads: Likewise.
11957         * libgnat/a-calend.adb: Likewise.
11958         * libgnat/a-calend.ads: Likewise.
11959         * libgnat/a-calfor.adb: Likewise.
11960         * libgnat/a-calfor.ads: Likewise.
11961         * libgnat/a-catizo.adb: Likewise.
11962         * libgnat/a-cbdlli.adb: Likewise.
11963         * libgnat/a-cbdlli.ads: Likewise.
11964         * libgnat/a-cbhama.adb: Likewise.
11965         * libgnat/a-cbhama.ads: Likewise.
11966         * libgnat/a-cbhase.adb: Likewise.
11967         * libgnat/a-cbhase.ads: Likewise.
11968         * libgnat/a-cbmutr.adb: Likewise.
11969         * libgnat/a-cbmutr.ads: Likewise.
11970         * libgnat/a-cborma.adb: Likewise.
11971         * libgnat/a-cborma.ads: Likewise.
11972         * libgnat/a-cborse.adb: Likewise.
11973         * libgnat/a-cborse.ads: Likewise.
11974         * libgnat/a-cbprqu.adb: Likewise.
11975         * libgnat/a-cbprqu.ads: Likewise.
11976         * libgnat/a-cbsyqu.adb: Likewise.
11977         * libgnat/a-cbsyqu.ads: Likewise.
11978         * libgnat/a-cdlili.adb: Likewise.
11979         * libgnat/a-cdlili.ads: Likewise.
11980         * libgnat/a-cfdlli.adb: Likewise.
11981         * libgnat/a-cfdlli.ads: Likewise.
11982         * libgnat/a-cfhama.adb: Likewise.
11983         * libgnat/a-cfhama.ads: Likewise.
11984         * libgnat/a-cfhase.adb: Likewise.
11985         * libgnat/a-cfhase.ads: Likewise.
11986         * libgnat/a-cfinve.adb: Likewise.
11987         * libgnat/a-cfinve.ads: Likewise.
11988         * libgnat/a-cforma.adb: Likewise.
11989         * libgnat/a-cforma.ads: Likewise.
11990         * libgnat/a-cforse.adb: Likewise.
11991         * libgnat/a-cforse.ads: Likewise.
11992         * libgnat/a-cgaaso.adb: Likewise.
11993         * libgnat/a-cgaaso.ads: Likewise.
11994         * libgnat/a-cgarso.adb: Likewise.
11995         * libgnat/a-cgcaso.adb: Likewise.
11996         * libgnat/a-chacon.adb: Likewise.
11997         * libgnat/a-chacon.ads: Likewise.
11998         * libgnat/a-chahan.adb: Likewise.
11999         * libgnat/a-chahan.ads: Likewise.
12000         * libgnat/a-chlat9.ads: Likewise.
12001         * libgnat/a-chtgbk.adb: Likewise.
12002         * libgnat/a-chtgbk.ads: Likewise.
12003         * libgnat/a-chtgbo.adb: Likewise.
12004         * libgnat/a-chtgbo.ads: Likewise.
12005         * libgnat/a-chtgke.adb: Likewise.
12006         * libgnat/a-chtgke.ads: Likewise.
12007         * libgnat/a-chtgop.adb: Likewise.
12008         * libgnat/a-chtgop.ads: Likewise.
12009         * libgnat/a-chzla1.ads: Likewise.
12010         * libgnat/a-chzla9.ads: Likewise.
12011         * libgnat/a-cidlli.adb: Likewise.
12012         * libgnat/a-cidlli.ads: Likewise.
12013         * libgnat/a-cihama.adb: Likewise.
12014         * libgnat/a-cihama.ads: Likewise.
12015         * libgnat/a-cihase.adb: Likewise.
12016         * libgnat/a-cihase.ads: Likewise.
12017         * libgnat/a-cimutr.adb: Likewise.
12018         * libgnat/a-cimutr.ads: Likewise.
12019         * libgnat/a-ciorma.adb: Likewise.
12020         * libgnat/a-ciorma.ads: Likewise.
12021         * libgnat/a-ciormu.adb: Likewise.
12022         * libgnat/a-ciormu.ads: Likewise.
12023         * libgnat/a-ciorse.adb: Likewise.
12024         * libgnat/a-ciorse.ads: Likewise.
12025         * libgnat/a-clrefi.adb: Likewise.
12026         * libgnat/a-clrefi.ads: Likewise.
12027         * libgnat/a-coboho.adb: Likewise.
12028         * libgnat/a-coboho.ads: Likewise.
12029         * libgnat/a-cobove.adb: Likewise.
12030         * libgnat/a-cobove.ads: Likewise.
12031         * libgnat/a-cofove.adb: Likewise.
12032         * libgnat/a-cofove.ads: Likewise.
12033         * libgnat/a-cofuba.adb: Likewise.
12034         * libgnat/a-cofuba.ads: Likewise.
12035         * libgnat/a-cofuma.adb: Likewise.
12036         * libgnat/a-cofuma.ads: Likewise.
12037         * libgnat/a-cofuse.adb: Likewise.
12038         * libgnat/a-cofuse.ads: Likewise.
12039         * libgnat/a-cofuve.adb: Likewise.
12040         * libgnat/a-cofuve.ads: Likewise.
12041         * libgnat/a-cogeso.adb: Likewise.
12042         * libgnat/a-cogeso.ads: Likewise.
12043         * libgnat/a-cohama.adb: Likewise.
12044         * libgnat/a-cohama.ads: Likewise.
12045         * libgnat/a-cohase.adb: Likewise.
12046         * libgnat/a-cohase.ads: Likewise.
12047         * libgnat/a-cohata.ads: Likewise.
12048         * libgnat/a-coinho.adb: Likewise.
12049         * libgnat/a-coinho.ads: Likewise.
12050         * libgnat/a-coinho__shared.adb: Likewise.
12051         * libgnat/a-coinho__shared.ads: Likewise.
12052         * libgnat/a-coinve.adb: Likewise.
12053         * libgnat/a-coinve.ads: Likewise.
12054         * libgnat/a-colien.adb: Likewise.
12055         * libgnat/a-colien.ads: Likewise.
12056         * libgnat/a-colire.adb: Likewise.
12057         * libgnat/a-colire.ads: Likewise.
12058         * libgnat/a-comlin.adb: Likewise.
12059         * libgnat/a-comlin.ads: Likewise.
12060         * libgnat/a-comutr.adb: Likewise.
12061         * libgnat/a-comutr.ads: Likewise.
12062         * libgnat/a-conhel.adb: Likewise.
12063         * libgnat/a-conhel.ads: Likewise.
12064         * libgnat/a-convec.adb: Likewise.
12065         * libgnat/a-convec.ads: Likewise.
12066         * libgnat/a-coorma.adb: Likewise.
12067         * libgnat/a-coorma.ads: Likewise.
12068         * libgnat/a-coormu.adb: Likewise.
12069         * libgnat/a-coormu.ads: Likewise.
12070         * libgnat/a-coorse.adb: Likewise.
12071         * libgnat/a-coorse.ads: Likewise.
12072         * libgnat/a-coprnu.adb: Likewise.
12073         * libgnat/a-coprnu.ads: Likewise.
12074         * libgnat/a-crbltr.ads: Likewise.
12075         * libgnat/a-crbtgk.adb: Likewise.
12076         * libgnat/a-crbtgk.ads: Likewise.
12077         * libgnat/a-crbtgo.adb: Likewise.
12078         * libgnat/a-crbtgo.ads: Likewise.
12079         * libgnat/a-crdlli.adb: Likewise.
12080         * libgnat/a-crdlli.ads: Likewise.
12081         * libgnat/a-csquin.ads: Likewise.
12082         * libgnat/a-cuprqu.adb: Likewise.
12083         * libgnat/a-cuprqu.ads: Likewise.
12084         * libgnat/a-cusyqu.adb: Likewise.
12085         * libgnat/a-cusyqu.ads: Likewise.
12086         * libgnat/a-cwila1.ads: Likewise.
12087         * libgnat/a-cwila9.ads: Likewise.
12088         * libgnat/a-decima.adb: Likewise.
12089         * libgnat/a-decima.ads: Likewise.
12090         * libgnat/a-dhfina.adb: Likewise.
12091         * libgnat/a-dhfina.ads: Likewise.
12092         * libgnat/a-diocst.adb: Likewise.
12093         * libgnat/a-diocst.ads: Likewise.
12094         * libgnat/a-direct.adb: Likewise.
12095         * libgnat/a-direct.ads: Likewise.
12096         * libgnat/a-direio.adb: Likewise.
12097         * libgnat/a-direio.ads: Likewise.
12098         * libgnat/a-dirval.adb: Likewise.
12099         * libgnat/a-dirval.ads: Likewise.
12100         * libgnat/a-dirval__mingw.adb: Likewise.
12101         * libgnat/a-einuoc.adb: Likewise.
12102         * libgnat/a-einuoc.ads: Likewise.
12103         * libgnat/a-elchha.adb: Likewise.
12104         * libgnat/a-elchha.ads: Likewise.
12105         * libgnat/a-elchha__vxworks-ppc-full.adb: Likewise.
12106         * libgnat/a-envvar.adb: Likewise.
12107         * libgnat/a-excach.adb: Likewise.
12108         * libgnat/a-except.adb: Likewise.
12109         * libgnat/a-except.ads: Likewise.
12110         * libgnat/a-excpol.adb: Likewise.
12111         * libgnat/a-excpol__abort.adb: Likewise.
12112         * libgnat/a-exctra.adb: Likewise.
12113         * libgnat/a-exctra.ads: Likewise.
12114         * libgnat/a-exexda.adb: Likewise.
12115         * libgnat/a-exexpr.adb: Likewise.
12116         * libgnat/a-exextr.adb: Likewise.
12117         * libgnat/a-exstat.adb: Likewise.
12118         * libgnat/a-finali.adb: Likewise.
12119         * libgnat/a-finali.ads: Likewise.
12120         * libgnat/a-locale.adb: Likewise.
12121         * libgnat/a-locale.ads: Likewise.
12122         * libgnat/a-nbnbin.adb: Likewise.
12123         * libgnat/a-nbnbin__gmp.adb: Likewise.
12124         * libgnat/a-nbnbre.adb: Likewise.
12125         * libgnat/a-ngcefu.adb: Likewise.
12126         * libgnat/a-ngcoar.adb: Likewise.
12127         * libgnat/a-ngcoty.adb: Likewise.
12128         * libgnat/a-ngcoty.ads: Likewise.
12129         * libgnat/a-ngelfu.adb: Likewise.
12130         * libgnat/a-ngelfu.ads: Likewise.
12131         * libgnat/a-ngrear.adb: Likewise.
12132         * libgnat/a-ngrear.ads: Likewise.
12133         * libgnat/a-nudira.adb: Likewise.
12134         * libgnat/a-nudira.ads: Likewise.
12135         * libgnat/a-nuflra.adb: Likewise.
12136         * libgnat/a-nuflra.ads: Likewise.
12137         * libgnat/a-numaux.ads: Likewise.
12138         * libgnat/a-numaux__darwin.adb: Likewise.
12139         * libgnat/a-numaux__darwin.ads: Likewise.
12140         * libgnat/a-numaux__libc-x86.ads: Likewise.
12141         * libgnat/a-numaux__vxworks.ads: Likewise.
12142         * libgnat/a-numaux__x86.adb: Likewise.
12143         * libgnat/a-numaux__x86.ads: Likewise.
12144         * libgnat/a-rbtgbk.adb: Likewise.
12145         * libgnat/a-rbtgbk.ads: Likewise.
12146         * libgnat/a-rbtgbo.adb: Likewise.
12147         * libgnat/a-rbtgbo.ads: Likewise.
12148         * libgnat/a-rbtgso.adb: Likewise.
12149         * libgnat/a-rbtgso.ads: Likewise.
12150         * libgnat/a-sbecin.adb: Likewise.
12151         * libgnat/a-sbecin.ads: Likewise.
12152         * libgnat/a-sbhcin.adb: Likewise.
12153         * libgnat/a-sbhcin.ads: Likewise.
12154         * libgnat/a-sblcin.adb: Likewise.
12155         * libgnat/a-sblcin.ads: Likewise.
12156         * libgnat/a-secain.adb: Likewise.
12157         * libgnat/a-secain.ads: Likewise.
12158         * libgnat/a-sequio.adb: Likewise.
12159         * libgnat/a-sequio.ads: Likewise.
12160         * libgnat/a-sfecin.ads: Likewise.
12161         * libgnat/a-sfhcin.ads: Likewise.
12162         * libgnat/a-sflcin.ads: Likewise.
12163         * libgnat/a-shcain.adb: Likewise.
12164         * libgnat/a-shcain.ads: Likewise.
12165         * libgnat/a-siocst.adb: Likewise.
12166         * libgnat/a-siocst.ads: Likewise.
12167         * libgnat/a-slcain.adb: Likewise.
12168         * libgnat/a-slcain.ads: Likewise.
12169         * libgnat/a-ssicst.adb: Likewise.
12170         * libgnat/a-ssicst.ads: Likewise.
12171         * libgnat/a-stboha.adb: Likewise.
12172         * libgnat/a-stmaco.ads: Likewise.
12173         * libgnat/a-storio.adb: Likewise.
12174         * libgnat/a-strbou.adb: Likewise.
12175         * libgnat/a-strbou.ads: Likewise.
12176         * libgnat/a-stream.adb: Likewise.
12177         * libgnat/a-stream.ads: Likewise.
12178         * libgnat/a-strfix.adb: Likewise.
12179         * libgnat/a-strhas.adb: Likewise.
12180         * libgnat/a-strmap.adb: Likewise.
12181         * libgnat/a-strmap.ads: Likewise.
12182         * libgnat/a-strsea.adb: Likewise.
12183         * libgnat/a-strsea.ads: Likewise.
12184         * libgnat/a-strsup.adb: Likewise.
12185         * libgnat/a-strsup.ads: Likewise.
12186         * libgnat/a-strunb.adb: Likewise.
12187         * libgnat/a-strunb.ads: Likewise.
12188         * libgnat/a-strunb__shared.adb: Likewise.
12189         * libgnat/a-strunb__shared.ads: Likewise.
12190         * libgnat/a-ststio.adb: Likewise.
12191         * libgnat/a-ststio.ads: Likewise.
12192         * libgnat/a-stunau.adb: Likewise.
12193         * libgnat/a-stunau.ads: Likewise.
12194         * libgnat/a-stunau__shared.adb: Likewise.
12195         * libgnat/a-stunha.adb: Likewise.
12196         * libgnat/a-stuten.adb: Likewise.
12197         * libgnat/a-stwibo.adb: Likewise.
12198         * libgnat/a-stwibo.ads: Likewise.
12199         * libgnat/a-stwifi.adb: Likewise.
12200         * libgnat/a-stwiha.adb: Likewise.
12201         * libgnat/a-stwima.adb: Likewise.
12202         * libgnat/a-stwima.ads: Likewise.
12203         * libgnat/a-stwise.adb: Likewise.
12204         * libgnat/a-stwise.ads: Likewise.
12205         * libgnat/a-stwisu.adb: Likewise.
12206         * libgnat/a-stwisu.ads: Likewise.
12207         * libgnat/a-stwiun.adb: Likewise.
12208         * libgnat/a-stwiun.ads: Likewise.
12209         * libgnat/a-stwiun__shared.adb: Likewise.
12210         * libgnat/a-stwiun__shared.ads: Likewise.
12211         * libgnat/a-stzbou.adb: Likewise.
12212         * libgnat/a-stzbou.ads: Likewise.
12213         * libgnat/a-stzfix.adb: Likewise.
12214         * libgnat/a-stzhas.adb: Likewise.
12215         * libgnat/a-stzmap.adb: Likewise.
12216         * libgnat/a-stzmap.ads: Likewise.
12217         * libgnat/a-stzsea.adb: Likewise.
12218         * libgnat/a-stzsea.ads: Likewise.
12219         * libgnat/a-stzsup.adb: Likewise.
12220         * libgnat/a-stzsup.ads: Likewise.
12221         * libgnat/a-stzunb.adb: Likewise.
12222         * libgnat/a-stzunb.ads: Likewise.
12223         * libgnat/a-stzunb__shared.adb: Likewise.
12224         * libgnat/a-stzunb__shared.ads: Likewise.
12225         * libgnat/a-suecin.adb: Likewise.
12226         * libgnat/a-suecin.ads: Likewise.
12227         * libgnat/a-suenco.adb: Likewise.
12228         * libgnat/a-suenst.adb: Likewise.
12229         * libgnat/a-suewst.adb: Likewise.
12230         * libgnat/a-suezst.adb: Likewise.
12231         * libgnat/a-suhcin.adb: Likewise.
12232         * libgnat/a-suhcin.ads: Likewise.
12233         * libgnat/a-sulcin.adb: Likewise.
12234         * libgnat/a-sulcin.ads: Likewise.
12235         * libgnat/a-suteio.adb: Likewise.
12236         * libgnat/a-suteio.ads: Likewise.
12237         * libgnat/a-suteio__shared.adb: Likewise.
12238         * libgnat/a-swbwha.adb: Likewise.
12239         * libgnat/a-swmwco.ads: Likewise.
12240         * libgnat/a-swunau.adb: Likewise.
12241         * libgnat/a-swunau.ads: Likewise.
12242         * libgnat/a-swunau__shared.adb: Likewise.
12243         * libgnat/a-swuwha.adb: Likewise.
12244         * libgnat/a-swuwti.adb: Likewise.
12245         * libgnat/a-swuwti.ads: Likewise.
12246         * libgnat/a-swuwti__shared.adb: Likewise.
12247         * libgnat/a-szbzha.adb: Likewise.
12248         * libgnat/a-szmzco.ads: Likewise.
12249         * libgnat/a-szunau.adb: Likewise.
12250         * libgnat/a-szunau.ads: Likewise.
12251         * libgnat/a-szunau__shared.adb: Likewise.
12252         * libgnat/a-szuzha.adb: Likewise.
12253         * libgnat/a-szuzti.adb: Likewise.
12254         * libgnat/a-szuzti.ads: Likewise.
12255         * libgnat/a-szuzti__shared.adb: Likewise.
12256         * libgnat/a-tags.adb: Likewise.
12257         * libgnat/a-tags.ads: Likewise.
12258         * libgnat/a-teioed.adb: Likewise.
12259         * libgnat/a-teioed.ads: Likewise.
12260         * libgnat/a-textio.adb: Likewise.
12261         * libgnat/a-textio.ads: Likewise.
12262         * libgnat/a-tiboio.adb: Likewise.
12263         * libgnat/a-ticoau.adb: Likewise.
12264         * libgnat/a-ticoau.ads: Likewise.
12265         * libgnat/a-ticoio.adb: Likewise.
12266         * libgnat/a-ticoio.ads: Likewise.
12267         * libgnat/a-tideau.adb: Likewise.
12268         * libgnat/a-tideau.ads: Likewise.
12269         * libgnat/a-tideio.adb: Likewise.
12270         * libgnat/a-tideio.ads: Likewise.
12271         * libgnat/a-tienau.adb: Likewise.
12272         * libgnat/a-tienau.ads: Likewise.
12273         * libgnat/a-tienio.adb: Likewise.
12274         * libgnat/a-tifiio.adb: Likewise.
12275         * libgnat/a-tiflau.adb: Likewise.
12276         * libgnat/a-tiflau.ads: Likewise.
12277         * libgnat/a-tiflio.adb: Likewise.
12278         * libgnat/a-tiflio.ads: Likewise.
12279         * libgnat/a-tigeau.adb: Likewise.
12280         * libgnat/a-tigeau.ads: Likewise.
12281         * libgnat/a-tigeli.adb: Likewise.
12282         * libgnat/a-tiinau.adb: Likewise.
12283         * libgnat/a-tiinau.ads: Likewise.
12284         * libgnat/a-tiinio.adb: Likewise.
12285         * libgnat/a-tiinio.ads: Likewise.
12286         * libgnat/a-timoau.adb: Likewise.
12287         * libgnat/a-timoau.ads: Likewise.
12288         * libgnat/a-timoio.adb: Likewise.
12289         * libgnat/a-timoio.ads: Likewise.
12290         * libgnat/a-tiocst.adb: Likewise.
12291         * libgnat/a-tiocst.ads: Likewise.
12292         * libgnat/a-tirsfi.adb: Likewise.
12293         * libgnat/a-tirsfi.ads: Likewise.
12294         * libgnat/a-titest.adb: Likewise.
12295         * libgnat/a-undesu.adb: Likewise.
12296         * libgnat/a-wichha.adb: Likewise.
12297         * libgnat/a-wichun.adb: Likewise.
12298         * libgnat/a-wichun.ads: Likewise.
12299         * libgnat/a-witeio.adb: Likewise.
12300         * libgnat/a-witeio.ads: Likewise.
12301         * libgnat/a-wrstfi.adb: Likewise.
12302         * libgnat/a-wrstfi.ads: Likewise.
12303         * libgnat/a-wtcoau.adb: Likewise.
12304         * libgnat/a-wtcoau.ads: Likewise.
12305         * libgnat/a-wtcoio.adb: Likewise.
12306         * libgnat/a-wtcstr.adb: Likewise.
12307         * libgnat/a-wtcstr.ads: Likewise.
12308         * libgnat/a-wtdeau.adb: Likewise.
12309         * libgnat/a-wtdeau.ads: Likewise.
12310         * libgnat/a-wtdeio.adb: Likewise.
12311         * libgnat/a-wtedit.adb: Likewise.
12312         * libgnat/a-wtedit.ads: Likewise.
12313         * libgnat/a-wtenau.adb: Likewise.
12314         * libgnat/a-wtenau.ads: Likewise.
12315         * libgnat/a-wtenio.adb: Likewise.
12316         * libgnat/a-wtfiio.adb: Likewise.
12317         * libgnat/a-wtflau.adb: Likewise.
12318         * libgnat/a-wtflau.ads: Likewise.
12319         * libgnat/a-wtflio.adb: Likewise.
12320         * libgnat/a-wtgeau.adb: Likewise.
12321         * libgnat/a-wtgeau.ads: Likewise.
12322         * libgnat/a-wtinau.adb: Likewise.
12323         * libgnat/a-wtinau.ads: Likewise.
12324         * libgnat/a-wtinio.adb: Likewise.
12325         * libgnat/a-wtmoau.adb: Likewise.
12326         * libgnat/a-wtmoau.ads: Likewise.
12327         * libgnat/a-wtmoio.adb: Likewise.
12328         * libgnat/a-wtmoio.ads: Likewise.
12329         * libgnat/a-wttest.adb: Likewise.
12330         * libgnat/a-wwboio.adb: Likewise.
12331         * libgnat/a-zchhan.adb: Likewise.
12332         * libgnat/a-zchuni.adb: Likewise.
12333         * libgnat/a-zchuni.ads: Likewise.
12334         * libgnat/a-zrstfi.adb: Likewise.
12335         * libgnat/a-zrstfi.ads: Likewise.
12336         * libgnat/a-ztcoau.adb: Likewise.
12337         * libgnat/a-ztcoio.adb: Likewise.
12338         * libgnat/a-ztcstr.adb: Likewise.
12339         * libgnat/a-ztcstr.ads: Likewise.
12340         * libgnat/a-ztdeau.adb: Likewise.
12341         * libgnat/a-ztdeau.ads: Likewise.
12342         * libgnat/a-ztdeio.adb: Likewise.
12343         * libgnat/a-ztedit.adb: Likewise.
12344         * libgnat/a-ztedit.ads: Likewise.
12345         * libgnat/a-ztenau.adb: Likewise.
12346         * libgnat/a-ztenau.ads: Likewise.
12347         * libgnat/a-ztenio.adb: Likewise.
12348         * libgnat/a-ztexio.adb: Likewise.
12349         * libgnat/a-ztexio.ads: Likewise.
12350         * libgnat/a-ztfiio.adb: Likewise.
12351         * libgnat/a-ztflau.adb: Likewise.
12352         * libgnat/a-ztflau.ads: Likewise.
12353         * libgnat/a-ztflio.adb: Likewise.
12354         * libgnat/a-ztgeau.adb: Likewise.
12355         * libgnat/a-ztgeau.ads: Likewise.
12356         * libgnat/a-ztinau.adb: Likewise.
12357         * libgnat/a-ztinau.ads: Likewise.
12358         * libgnat/a-ztinio.adb: Likewise.
12359         * libgnat/a-ztmoau.adb: Likewise.
12360         * libgnat/a-ztmoau.ads: Likewise.
12361         * libgnat/a-ztmoio.adb: Likewise.
12362         * libgnat/a-zttest.adb: Likewise.
12363         * libgnat/a-zzboio.adb: Likewise.
12364         * libgnat/g-allein.ads: Likewise.
12365         * libgnat/g-alleve.adb: Likewise.
12366         * libgnat/g-alleve.ads: Likewise.
12367         * libgnat/g-alleve__hard.adb: Likewise.
12368         * libgnat/g-alleve__hard.ads: Likewise.
12369         * libgnat/g-altcon.adb: Likewise.
12370         * libgnat/g-altcon.ads: Likewise.
12371         * libgnat/g-altive.ads: Likewise.
12372         * libgnat/g-alveop.adb: Likewise.
12373         * libgnat/g-alveop.ads: Likewise.
12374         * libgnat/g-alvety.ads: Likewise.
12375         * libgnat/g-alvevi.ads: Likewise.
12376         * libgnat/g-arrspl.adb: Likewise.
12377         * libgnat/g-arrspl.ads: Likewise.
12378         * libgnat/g-awk.adb: Likewise.
12379         * libgnat/g-awk.ads: Likewise.
12380         * libgnat/g-binenv.adb: Likewise.
12381         * libgnat/g-binenv.ads: Likewise.
12382         * libgnat/g-brapre.ads: Likewise.
12383         * libgnat/g-bubsor.adb: Likewise.
12384         * libgnat/g-bubsor.ads: Likewise.
12385         * libgnat/g-busora.adb: Likewise.
12386         * libgnat/g-busora.ads: Likewise.
12387         * libgnat/g-busorg.adb: Likewise.
12388         * libgnat/g-busorg.ads: Likewise.
12389         * libgnat/g-byorma.adb: Likewise.
12390         * libgnat/g-byorma.ads: Likewise.
12391         * libgnat/g-bytswa.adb: Likewise.
12392         * libgnat/g-bytswa.ads: Likewise.
12393         * libgnat/g-calend.adb: Likewise.
12394         * libgnat/g-calend.ads: Likewise.
12395         * libgnat/g-casuti.adb: Likewise.
12396         * libgnat/g-casuti.ads: Likewise.
12397         * libgnat/g-catiio.adb: Likewise.
12398         * libgnat/g-catiio.ads: Likewise.
12399         * libgnat/g-cgi.adb: Likewise.
12400         * libgnat/g-cgi.ads: Likewise.
12401         * libgnat/g-cgicoo.adb: Likewise.
12402         * libgnat/g-cgicoo.ads: Likewise.
12403         * libgnat/g-cgideb.adb: Likewise.
12404         * libgnat/g-cgideb.ads: Likewise.
12405         * libgnat/g-comlin.adb: Likewise.
12406         * libgnat/g-comlin.ads: Likewise.
12407         * libgnat/g-comver.adb: Likewise.
12408         * libgnat/g-comver.ads: Likewise.
12409         * libgnat/g-cppexc.adb: Likewise.
12410         * libgnat/g-cppexc.ads: Likewise.
12411         * libgnat/g-crc32.adb: Likewise.
12412         * libgnat/g-crc32.ads: Likewise.
12413         * libgnat/g-ctrl_c.adb: Likewise.
12414         * libgnat/g-ctrl_c.ads: Likewise.
12415         * libgnat/g-curexc.ads: Likewise.
12416         * libgnat/g-debpoo.adb: Likewise.
12417         * libgnat/g-debpoo.ads: Likewise.
12418         * libgnat/g-debuti.adb: Likewise.
12419         * libgnat/g-debuti.ads: Likewise.
12420         * libgnat/g-decstr.adb: Likewise.
12421         * libgnat/g-decstr.ads: Likewise.
12422         * libgnat/g-deutst.ads: Likewise.
12423         * libgnat/g-diopit.adb: Likewise.
12424         * libgnat/g-diopit.ads: Likewise.
12425         * libgnat/g-dirope.adb: Likewise.
12426         * libgnat/g-dirope.ads: Likewise.
12427         * libgnat/g-dynhta.adb: Likewise.
12428         * libgnat/g-dynhta.ads: Likewise.
12429         * libgnat/g-dyntab.adb: Likewise.
12430         * libgnat/g-dyntab.ads: Likewise.
12431         * libgnat/g-eacodu.adb: Likewise.
12432         * libgnat/g-encstr.adb: Likewise.
12433         * libgnat/g-encstr.ads: Likewise.
12434         * libgnat/g-enutst.ads: Likewise.
12435         * libgnat/g-excact.adb: Likewise.
12436         * libgnat/g-excact.ads: Likewise.
12437         * libgnat/g-except.ads: Likewise.
12438         * libgnat/g-exctra.adb: Likewise.
12439         * libgnat/g-exctra.ads: Likewise.
12440         * libgnat/g-expect.adb: Likewise.
12441         * libgnat/g-expect.ads: Likewise.
12442         * libgnat/g-exptty.adb: Likewise.
12443         * libgnat/g-exptty.ads: Likewise.
12444         * libgnat/g-flocon.ads: Likewise.
12445         * libgnat/g-forstr.adb: Likewise.
12446         * libgnat/g-forstr.ads: Likewise.
12447         * libgnat/g-graphs.adb: Likewise.
12448         * libgnat/g-graphs.ads: Likewise.
12449         * libgnat/g-heasor.adb: Likewise.
12450         * libgnat/g-heasor.ads: Likewise.
12451         * libgnat/g-hesora.adb: Likewise.
12452         * libgnat/g-hesora.ads: Likewise.
12453         * libgnat/g-hesorg.adb: Likewise.
12454         * libgnat/g-hesorg.ads: Likewise.
12455         * libgnat/g-htable.adb: Likewise.
12456         * libgnat/g-htable.ads: Likewise.
12457         * libgnat/g-io-put__vxworks.adb: Likewise.
12458         * libgnat/g-io.adb: Likewise.
12459         * libgnat/g-io.ads: Likewise.
12460         * libgnat/g-io_aux.adb: Likewise.
12461         * libgnat/g-io_aux.ads: Likewise.
12462         * libgnat/g-lists.adb: Likewise.
12463         * libgnat/g-lists.ads: Likewise.
12464         * libgnat/g-locfil.adb: Likewise.
12465         * libgnat/g-locfil.ads: Likewise.
12466         * libgnat/g-mbdira.adb: Likewise.
12467         * libgnat/g-mbdira.ads: Likewise.
12468         * libgnat/g-mbflra.adb: Likewise.
12469         * libgnat/g-mbflra.ads: Likewise.
12470         * libgnat/g-md5.adb: Likewise.
12471         * libgnat/g-md5.ads: Likewise.
12472         * libgnat/g-memdum.adb: Likewise.
12473         * libgnat/g-memdum.ads: Likewise.
12474         * libgnat/g-moreex.adb: Likewise.
12475         * libgnat/g-moreex.ads: Likewise.
12476         * libgnat/g-os_lib.adb: Likewise.
12477         * libgnat/g-os_lib.ads: Likewise.
12478         * libgnat/g-pehage.adb: Likewise.
12479         * libgnat/g-pehage.ads: Likewise.
12480         * libgnat/g-rannum.adb: Likewise.
12481         * libgnat/g-rannum.ads: Likewise.
12482         * libgnat/g-regexp.adb: Likewise.
12483         * libgnat/g-regexp.ads: Likewise.
12484         * libgnat/g-regist.adb: Likewise.
12485         * libgnat/g-regist.ads: Likewise.
12486         * libgnat/g-regpat.adb: Likewise.
12487         * libgnat/g-regpat.ads: Likewise.
12488         * libgnat/g-rewdat.adb: Likewise.
12489         * libgnat/g-rewdat.ads: Likewise.
12490         * libgnat/g-sechas.adb: Likewise.
12491         * libgnat/g-sechas.ads: Likewise.
12492         * libgnat/g-sehamd.adb: Likewise.
12493         * libgnat/g-sehamd.ads: Likewise.
12494         * libgnat/g-sehash.adb: Likewise.
12495         * libgnat/g-sehash.ads: Likewise.
12496         * libgnat/g-sercom.adb: Likewise.
12497         * libgnat/g-sercom.ads: Likewise.
12498         * libgnat/g-sercom__linux.adb: Likewise.
12499         * libgnat/g-sercom__mingw.adb: Likewise.
12500         * libgnat/g-sestin.ads: Likewise.
12501         * libgnat/g-sets.adb: Likewise.
12502         * libgnat/g-sets.ads: Likewise.
12503         * libgnat/g-sha1.adb: Likewise.
12504         * libgnat/g-sha1.ads: Likewise.
12505         * libgnat/g-sha224.ads: Likewise.
12506         * libgnat/g-sha256.ads: Likewise.
12507         * libgnat/g-sha384.ads: Likewise.
12508         * libgnat/g-sha512.ads: Likewise.
12509         * libgnat/g-shsh32.adb: Likewise.
12510         * libgnat/g-shsh32.ads: Likewise.
12511         * libgnat/g-shsh64.adb: Likewise.
12512         * libgnat/g-shsh64.ads: Likewise.
12513         * libgnat/g-shshco.adb: Likewise.
12514         * libgnat/g-shshco.ads: Likewise.
12515         * libgnat/g-soccon.ads: Likewise.
12516         * libgnat/g-socket.adb: Likewise.
12517         * libgnat/g-socket.ads: Likewise.
12518         * libgnat/g-socket__dummy.adb: Likewise.
12519         * libgnat/g-socket__dummy.ads: Likewise.
12520         * libgnat/g-socthi.adb: Likewise.
12521         * libgnat/g-socthi.ads: Likewise.
12522         * libgnat/g-socthi__dummy.adb: Likewise.
12523         * libgnat/g-socthi__dummy.ads: Likewise.
12524         * libgnat/g-socthi__mingw.adb: Likewise.
12525         * libgnat/g-socthi__mingw.ads: Likewise.
12526         * libgnat/g-socthi__vxworks.adb: Likewise.
12527         * libgnat/g-socthi__vxworks.ads: Likewise.
12528         * libgnat/g-soliop.ads: Likewise.
12529         * libgnat/g-soliop__lynxos.ads: Likewise.
12530         * libgnat/g-soliop__mingw.ads: Likewise.
12531         * libgnat/g-soliop__qnx.ads: Likewise.
12532         * libgnat/g-soliop__solaris.ads: Likewise.
12533         * libgnat/g-sothco.adb: Likewise.
12534         * libgnat/g-sothco.ads: Likewise.
12535         * libgnat/g-sothco__dummy.adb: Likewise.
12536         * libgnat/g-sothco__dummy.ads: Likewise.
12537         * libgnat/g-souinf.ads: Likewise.
12538         * libgnat/g-spchge.adb: Likewise.
12539         * libgnat/g-spchge.ads: Likewise.
12540         * libgnat/g-speche.adb: Likewise.
12541         * libgnat/g-speche.ads: Likewise.
12542         * libgnat/g-spipat.adb: Likewise.
12543         * libgnat/g-spipat.ads: Likewise.
12544         * libgnat/g-spitbo.adb: Likewise.
12545         * libgnat/g-spitbo.ads: Likewise.
12546         * libgnat/g-sptabo.ads: Likewise.
12547         * libgnat/g-sptain.ads: Likewise.
12548         * libgnat/g-sptavs.ads: Likewise.
12549         * libgnat/g-sse.ads: Likewise.
12550         * libgnat/g-ssvety.ads: Likewise.
12551         * libgnat/g-sthcso.adb: Likewise.
12552         * libgnat/g-stheme.adb: Likewise.
12553         * libgnat/g-strhas.ads: Likewise.
12554         * libgnat/g-string.adb: Likewise.
12555         * libgnat/g-string.ads: Likewise.
12556         * libgnat/g-strspl.ads: Likewise.
12557         * libgnat/g-stseme.adb: Likewise.
12558         * libgnat/g-stsifd__sockets.adb: Likewise.
12559         * libgnat/g-table.adb: Likewise.
12560         * libgnat/g-table.ads: Likewise.
12561         * libgnat/g-tasloc.adb: Likewise.
12562         * libgnat/g-tasloc.ads: Likewise.
12563         * libgnat/g-timsta.adb: Likewise.
12564         * libgnat/g-timsta.ads: Likewise.
12565         * libgnat/g-traceb.adb: Likewise.
12566         * libgnat/g-traceb.ads: Likewise.
12567         * libgnat/g-trasym.adb: Likewise.
12568         * libgnat/g-trasym.ads: Likewise.
12569         * libgnat/g-tty.adb: Likewise.
12570         * libgnat/g-tty.ads: Likewise.
12571         * libgnat/g-u3spch.adb: Likewise.
12572         * libgnat/g-u3spch.ads: Likewise.
12573         * libgnat/g-utf_32.adb: Likewise.
12574         * libgnat/g-utf_32.ads: Likewise.
12575         * libgnat/g-wispch.adb: Likewise.
12576         * libgnat/g-wispch.ads: Likewise.
12577         * libgnat/g-wistsp.ads: Likewise.
12578         * libgnat/g-zspche.adb: Likewise.
12579         * libgnat/g-zspche.ads: Likewise.
12580         * libgnat/g-zstspl.ads: Likewise.
12581         * libgnat/gnat.ads: Likewise.
12582         * libgnat/i-c.adb: Likewise.
12583         * libgnat/i-cexten.ads: Likewise.
12584         * libgnat/i-cobol.adb: Likewise.
12585         * libgnat/i-cobol.ads: Likewise.
12586         * libgnat/i-cpoint.adb: Likewise.
12587         * libgnat/i-cpoint.ads: Likewise.
12588         * libgnat/i-cstrea.adb: Likewise.
12589         * libgnat/i-cstrea.ads: Likewise.
12590         * libgnat/i-cstrin.adb: Likewise.
12591         * libgnat/i-cstrin.ads: Likewise.
12592         * libgnat/i-fortra.adb: Likewise.
12593         * libgnat/i-pacdec.adb: Likewise.
12594         * libgnat/i-pacdec.ads: Likewise.
12595         * libgnat/i-vxwoio.adb: Likewise.
12596         * libgnat/i-vxwoio.ads: Likewise.
12597         * libgnat/i-vxwork.ads: Likewise.
12598         * libgnat/i-vxwork__x86.ads: Likewise.
12599         * libgnat/interfac.ads: Likewise.
12600         * libgnat/memtrack.adb: Likewise.
12601         * libgnat/s-addima.adb: Likewise.
12602         * libgnat/s-addima.ads: Likewise.
12603         * libgnat/s-addope.adb: Likewise.
12604         * libgnat/s-addope.ads: Likewise.
12605         * libgnat/s-aotase.adb: Likewise.
12606         * libgnat/s-aotase.ads: Likewise.
12607         * libgnat/s-arit64.adb: Likewise.
12608         * libgnat/s-arit64.ads: Likewise.
12609         * libgnat/s-assert.adb: Likewise.
12610         * libgnat/s-assert.ads: Likewise.
12611         * libgnat/s-atacco.adb: Likewise.
12612         * libgnat/s-atacco.ads: Likewise.
12613         * libgnat/s-atocou.adb: Likewise.
12614         * libgnat/s-atocou.ads: Likewise.
12615         * libgnat/s-atocou__builtin.adb: Likewise.
12616         * libgnat/s-atocou__x86.adb: Likewise.
12617         * libgnat/s-atoope.ads: Likewise.
12618         * libgnat/s-atopar.adb: Likewise.
12619         * libgnat/s-atopar.ads: Likewise.
12620         * libgnat/s-atopex.adb: Likewise.
12621         * libgnat/s-atopex.ads: Likewise.
12622         * libgnat/s-atopri.adb: Likewise.
12623         * libgnat/s-atopri.ads: Likewise.
12624         * libgnat/s-auxdec.adb: Likewise.
12625         * libgnat/s-auxdec.ads: Likewise.
12626         * libgnat/s-bignum.adb: Likewise.
12627         * libgnat/s-bignum.ads: Likewise.
12628         * libgnat/s-bitfie.ads: Likewise.
12629         * libgnat/s-bitops.adb: Likewise.
12630         * libgnat/s-bitops.ads: Likewise.
12631         * libgnat/s-bituti.adb: Likewise.
12632         * libgnat/s-bituti.ads: Likewise.
12633         * libgnat/s-boarop.ads: Likewise.
12634         * libgnat/s-boustr.adb: Likewise.
12635         * libgnat/s-boustr.ads: Likewise.
12636         * libgnat/s-bytswa.ads: Likewise.
12637         * libgnat/s-carsi8.adb: Likewise.
12638         * libgnat/s-carsi8.ads: Likewise.
12639         * libgnat/s-carun8.adb: Likewise.
12640         * libgnat/s-carun8.ads: Likewise.
12641         * libgnat/s-casi16.adb: Likewise.
12642         * libgnat/s-casi16.ads: Likewise.
12643         * libgnat/s-casi32.adb: Likewise.
12644         * libgnat/s-casi32.ads: Likewise.
12645         * libgnat/s-casi64.adb: Likewise.
12646         * libgnat/s-casi64.ads: Likewise.
12647         * libgnat/s-casuti.adb: Likewise.
12648         * libgnat/s-casuti.ads: Likewise.
12649         * libgnat/s-caun16.adb: Likewise.
12650         * libgnat/s-caun16.ads: Likewise.
12651         * libgnat/s-caun32.adb: Likewise.
12652         * libgnat/s-caun32.ads: Likewise.
12653         * libgnat/s-caun64.adb: Likewise.
12654         * libgnat/s-caun64.ads: Likewise.
12655         * libgnat/s-chepoo.ads: Likewise.
12656         * libgnat/s-commun.adb: Likewise.
12657         * libgnat/s-commun.ads: Likewise.
12658         * libgnat/s-conca2.adb: Likewise.
12659         * libgnat/s-conca2.ads: Likewise.
12660         * libgnat/s-conca3.adb: Likewise.
12661         * libgnat/s-conca3.ads: Likewise.
12662         * libgnat/s-conca4.adb: Likewise.
12663         * libgnat/s-conca4.ads: Likewise.
12664         * libgnat/s-conca5.adb: Likewise.
12665         * libgnat/s-conca5.ads: Likewise.
12666         * libgnat/s-conca6.adb: Likewise.
12667         * libgnat/s-conca6.ads: Likewise.
12668         * libgnat/s-conca7.adb: Likewise.
12669         * libgnat/s-conca7.ads: Likewise.
12670         * libgnat/s-conca8.adb: Likewise.
12671         * libgnat/s-conca8.ads: Likewise.
12672         * libgnat/s-conca9.adb: Likewise.
12673         * libgnat/s-conca9.ads: Likewise.
12674         * libgnat/s-crc32.adb: Likewise.
12675         * libgnat/s-crc32.ads: Likewise.
12676         * libgnat/s-crtl.ads: Likewise.
12677         * libgnat/s-dfmkio.ads: Likewise.
12678         * libgnat/s-dfmopr.ads: Likewise.
12679         * libgnat/s-dgmgop.ads: Likewise.
12680         * libgnat/s-diflio.adb: Likewise.
12681         * libgnat/s-diflio.ads: Likewise.
12682         * libgnat/s-diflmk.ads: Likewise.
12683         * libgnat/s-digemk.ads: Likewise.
12684         * libgnat/s-diinio.adb: Likewise.
12685         * libgnat/s-diinio.ads: Likewise.
12686         * libgnat/s-dilomk.ads: Likewise.
12687         * libgnat/s-dim.ads: Likewise.
12688         * libgnat/s-dimkio.ads: Likewise.
12689         * libgnat/s-dimmks.ads: Likewise.
12690         * libgnat/s-direio.adb: Likewise.
12691         * libgnat/s-direio.ads: Likewise.
12692         * libgnat/s-dlmkio.ads: Likewise.
12693         * libgnat/s-dlmopr.ads: Likewise.
12694         * libgnat/s-dmotpr.ads: Likewise.
12695         * libgnat/s-dsaser.ads: Likewise.
12696         * libgnat/s-dwalin.adb: Likewise.
12697         * libgnat/s-dwalin.ads: Likewise.
12698         * libgnat/s-elaall.adb: Likewise.
12699         * libgnat/s-elaall.ads: Likewise.
12700         * libgnat/s-excdeb.adb: Likewise.
12701         * libgnat/s-excdeb.ads: Likewise.
12702         * libgnat/s-except.adb: Likewise.
12703         * libgnat/s-except.ads: Likewise.
12704         * libgnat/s-excmac__arm.adb: Likewise.
12705         * libgnat/s-excmac__arm.ads: Likewise.
12706         * libgnat/s-excmac__gcc.adb: Likewise.
12707         * libgnat/s-excmac__gcc.ads: Likewise.
12708         * libgnat/s-exctab.adb: Likewise.
12709         * libgnat/s-exctab.ads: Likewise.
12710         * libgnat/s-exctra.adb: Likewise.
12711         * libgnat/s-exctra.ads: Likewise.
12712         * libgnat/s-exnint.adb: Likewise.
12713         * libgnat/s-exnint.ads: Likewise.
12714         * libgnat/s-exnllf.adb: Likewise.
12715         * libgnat/s-exnllf.ads: Likewise.
12716         * libgnat/s-exnlli.adb: Likewise.
12717         * libgnat/s-exnlli.ads: Likewise.
12718         * libgnat/s-expint.adb: Likewise.
12719         * libgnat/s-expint.ads: Likewise.
12720         * libgnat/s-explli.adb: Likewise.
12721         * libgnat/s-explli.ads: Likewise.
12722         * libgnat/s-expllu.adb: Likewise.
12723         * libgnat/s-expllu.ads: Likewise.
12724         * libgnat/s-expmod.adb: Likewise.
12725         * libgnat/s-expmod.ads: Likewise.
12726         * libgnat/s-expuns.adb: Likewise.
12727         * libgnat/s-expuns.ads: Likewise.
12728         * libgnat/s-fatflt.ads: Likewise.
12729         * libgnat/s-fatgen.adb: Likewise.
12730         * libgnat/s-fatgen.ads: Likewise.
12731         * libgnat/s-fatlfl.ads: Likewise.
12732         * libgnat/s-fatllf.ads: Likewise.
12733         * libgnat/s-fatsfl.ads: Likewise.
12734         * libgnat/s-ficobl.ads: Likewise.
12735         * libgnat/s-filatt.ads: Likewise.
12736         * libgnat/s-fileio.adb: Likewise.
12737         * libgnat/s-fileio.ads: Likewise.
12738         * libgnat/s-finmas.adb: Likewise.
12739         * libgnat/s-finmas.ads: Likewise.
12740         * libgnat/s-finroo.adb: Likewise.
12741         * libgnat/s-finroo.ads: Likewise.
12742         * libgnat/s-flocon.adb: Likewise.
12743         * libgnat/s-flocon.ads: Likewise.
12744         * libgnat/s-flocon__none.adb: Likewise.
12745         * libgnat/s-fore.adb: Likewise.
12746         * libgnat/s-fore.ads: Likewise.
12747         * libgnat/s-gearop.adb: Likewise.
12748         * libgnat/s-gearop.ads: Likewise.
12749         * libgnat/s-genbig.adb: Likewise.
12750         * libgnat/s-genbig.ads: Likewise.
12751         * libgnat/s-geveop.adb: Likewise.
12752         * libgnat/s-geveop.ads: Likewise.
12753         * libgnat/s-gloloc.adb: Likewise.
12754         * libgnat/s-gloloc.ads: Likewise.
12755         * libgnat/s-gloloc__mingw.adb: Likewise.
12756         * libgnat/s-htable.adb: Likewise.
12757         * libgnat/s-htable.ads: Likewise.
12758         * libgnat/s-imenne.adb: Likewise.
12759         * libgnat/s-imenne.ads: Likewise.
12760         * libgnat/s-imgbiu.adb: Likewise.
12761         * libgnat/s-imgbiu.ads: Likewise.
12762         * libgnat/s-imgboo.adb: Likewise.
12763         * libgnat/s-imgboo.ads: Likewise.
12764         * libgnat/s-imgcha.adb: Likewise.
12765         * libgnat/s-imgcha.ads: Likewise.
12766         * libgnat/s-imgdec.adb: Likewise.
12767         * libgnat/s-imgdec.ads: Likewise.
12768         * libgnat/s-imgenu.adb: Likewise.
12769         * libgnat/s-imgenu.ads: Likewise.
12770         * libgnat/s-imgint.adb: Likewise.
12771         * libgnat/s-imgint.ads: Likewise.
12772         * libgnat/s-imgllb.adb: Likewise.
12773         * libgnat/s-imgllb.ads: Likewise.
12774         * libgnat/s-imglld.adb: Likewise.
12775         * libgnat/s-imglld.ads: Likewise.
12776         * libgnat/s-imglli.adb: Likewise.
12777         * libgnat/s-imglli.ads: Likewise.
12778         * libgnat/s-imgllu.adb: Likewise.
12779         * libgnat/s-imgllu.ads: Likewise.
12780         * libgnat/s-imgllw.adb: Likewise.
12781         * libgnat/s-imgllw.ads: Likewise.
12782         * libgnat/s-imgrea.adb: Likewise.
12783         * libgnat/s-imgrea.ads: Likewise.
12784         * libgnat/s-imguns.adb: Likewise.
12785         * libgnat/s-imguns.ads: Likewise.
12786         * libgnat/s-imgwch.adb: Likewise.
12787         * libgnat/s-imgwch.ads: Likewise.
12788         * libgnat/s-imgwiu.adb: Likewise.
12789         * libgnat/s-imgwiu.ads: Likewise.
12790         * libgnat/s-io.adb: Likewise.
12791         * libgnat/s-io.ads: Likewise.
12792         * libgnat/s-llflex.ads: Likewise.
12793         * libgnat/s-maccod.ads: Likewise.
12794         * libgnat/s-mantis.adb: Likewise.
12795         * libgnat/s-mantis.ads: Likewise.
12796         * libgnat/s-mastop.adb: Likewise.
12797         * libgnat/s-mastop.ads: Likewise.
12798         * libgnat/s-memcop.ads: Likewise.
12799         * libgnat/s-memory.adb: Likewise.
12800         * libgnat/s-memory.ads: Likewise.
12801         * libgnat/s-mmap.adb: Likewise.
12802         * libgnat/s-mmap.ads: Likewise.
12803         * libgnat/s-mmauni__long.ads: Likewise.
12804         * libgnat/s-mmosin__mingw.adb: Likewise.
12805         * libgnat/s-mmosin__mingw.ads: Likewise.
12806         * libgnat/s-mmosin__unix.adb: Likewise.
12807         * libgnat/s-mmosin__unix.ads: Likewise.
12808         * libgnat/s-multip.adb: Likewise.
12809         * libgnat/s-objrea.adb: Likewise.
12810         * libgnat/s-objrea.ads: Likewise.
12811         * libgnat/s-optide.adb: Likewise.
12812         * libgnat/s-os_lib.adb: Likewise.
12813         * libgnat/s-os_lib.ads: Likewise.
12814         * libgnat/s-osprim.ads: Likewise.
12815         * libgnat/s-osprim__darwin.adb: Likewise.
12816         * libgnat/s-osprim__lynxos.ads: Likewise.
12817         * libgnat/s-osprim__mingw.adb: Likewise.
12818         * libgnat/s-osprim__posix.adb: Likewise.
12819         * libgnat/s-osprim__posix2008.adb: Likewise.
12820         * libgnat/s-osprim__rtems.adb: Likewise.
12821         * libgnat/s-osprim__solaris.adb: Likewise.
12822         * libgnat/s-osprim__unix.adb: Likewise.
12823         * libgnat/s-osprim__vxworks.adb: Likewise.
12824         * libgnat/s-osprim__x32.adb: Likewise.
12825         * libgnat/s-osvers__vxworks-653.ads: Likewise.
12826         * libgnat/s-pack03.adb: Likewise.
12827         * libgnat/s-pack03.ads: Likewise.
12828         * libgnat/s-pack05.adb: Likewise.
12829         * libgnat/s-pack05.ads: Likewise.
12830         * libgnat/s-pack06.adb: Likewise.
12831         * libgnat/s-pack06.ads: Likewise.
12832         * libgnat/s-pack07.adb: Likewise.
12833         * libgnat/s-pack07.ads: Likewise.
12834         * libgnat/s-pack09.adb: Likewise.
12835         * libgnat/s-pack09.ads: Likewise.
12836         * libgnat/s-pack10.adb: Likewise.
12837         * libgnat/s-pack10.ads: Likewise.
12838         * libgnat/s-pack11.adb: Likewise.
12839         * libgnat/s-pack11.ads: Likewise.
12840         * libgnat/s-pack12.adb: Likewise.
12841         * libgnat/s-pack12.ads: Likewise.
12842         * libgnat/s-pack13.adb: Likewise.
12843         * libgnat/s-pack13.ads: Likewise.
12844         * libgnat/s-pack14.adb: Likewise.
12845         * libgnat/s-pack14.ads: Likewise.
12846         * libgnat/s-pack15.adb: Likewise.
12847         * libgnat/s-pack15.ads: Likewise.
12848         * libgnat/s-pack17.adb: Likewise.
12849         * libgnat/s-pack17.ads: Likewise.
12850         * libgnat/s-pack18.adb: Likewise.
12851         * libgnat/s-pack18.ads: Likewise.
12852         * libgnat/s-pack19.adb: Likewise.
12853         * libgnat/s-pack19.ads: Likewise.
12854         * libgnat/s-pack20.adb: Likewise.
12855         * libgnat/s-pack20.ads: Likewise.
12856         * libgnat/s-pack21.adb: Likewise.
12857         * libgnat/s-pack21.ads: Likewise.
12858         * libgnat/s-pack22.adb: Likewise.
12859         * libgnat/s-pack22.ads: Likewise.
12860         * libgnat/s-pack23.adb: Likewise.
12861         * libgnat/s-pack23.ads: Likewise.
12862         * libgnat/s-pack24.adb: Likewise.
12863         * libgnat/s-pack24.ads: Likewise.
12864         * libgnat/s-pack25.adb: Likewise.
12865         * libgnat/s-pack25.ads: Likewise.
12866         * libgnat/s-pack26.adb: Likewise.
12867         * libgnat/s-pack26.ads: Likewise.
12868         * libgnat/s-pack27.adb: Likewise.
12869         * libgnat/s-pack27.ads: Likewise.
12870         * libgnat/s-pack28.adb: Likewise.
12871         * libgnat/s-pack28.ads: Likewise.
12872         * libgnat/s-pack29.adb: Likewise.
12873         * libgnat/s-pack29.ads: Likewise.
12874         * libgnat/s-pack30.adb: Likewise.
12875         * libgnat/s-pack30.ads: Likewise.
12876         * libgnat/s-pack31.adb: Likewise.
12877         * libgnat/s-pack31.ads: Likewise.
12878         * libgnat/s-pack33.adb: Likewise.
12879         * libgnat/s-pack33.ads: Likewise.
12880         * libgnat/s-pack34.adb: Likewise.
12881         * libgnat/s-pack34.ads: Likewise.
12882         * libgnat/s-pack35.adb: Likewise.
12883         * libgnat/s-pack35.ads: Likewise.
12884         * libgnat/s-pack36.adb: Likewise.
12885         * libgnat/s-pack36.ads: Likewise.
12886         * libgnat/s-pack37.adb: Likewise.
12887         * libgnat/s-pack37.ads: Likewise.
12888         * libgnat/s-pack38.adb: Likewise.
12889         * libgnat/s-pack38.ads: Likewise.
12890         * libgnat/s-pack39.adb: Likewise.
12891         * libgnat/s-pack39.ads: Likewise.
12892         * libgnat/s-pack40.adb: Likewise.
12893         * libgnat/s-pack40.ads: Likewise.
12894         * libgnat/s-pack41.adb: Likewise.
12895         * libgnat/s-pack41.ads: Likewise.
12896         * libgnat/s-pack42.adb: Likewise.
12897         * libgnat/s-pack42.ads: Likewise.
12898         * libgnat/s-pack43.adb: Likewise.
12899         * libgnat/s-pack43.ads: Likewise.
12900         * libgnat/s-pack44.adb: Likewise.
12901         * libgnat/s-pack44.ads: Likewise.
12902         * libgnat/s-pack45.adb: Likewise.
12903         * libgnat/s-pack45.ads: Likewise.
12904         * libgnat/s-pack46.adb: Likewise.
12905         * libgnat/s-pack46.ads: Likewise.
12906         * libgnat/s-pack47.adb: Likewise.
12907         * libgnat/s-pack47.ads: Likewise.
12908         * libgnat/s-pack48.adb: Likewise.
12909         * libgnat/s-pack48.ads: Likewise.
12910         * libgnat/s-pack49.adb: Likewise.
12911         * libgnat/s-pack49.ads: Likewise.
12912         * libgnat/s-pack50.adb: Likewise.
12913         * libgnat/s-pack50.ads: Likewise.
12914         * libgnat/s-pack51.adb: Likewise.
12915         * libgnat/s-pack51.ads: Likewise.
12916         * libgnat/s-pack52.adb: Likewise.
12917         * libgnat/s-pack52.ads: Likewise.
12918         * libgnat/s-pack53.adb: Likewise.
12919         * libgnat/s-pack53.ads: Likewise.
12920         * libgnat/s-pack54.adb: Likewise.
12921         * libgnat/s-pack54.ads: Likewise.
12922         * libgnat/s-pack55.adb: Likewise.
12923         * libgnat/s-pack55.ads: Likewise.
12924         * libgnat/s-pack56.adb: Likewise.
12925         * libgnat/s-pack56.ads: Likewise.
12926         * libgnat/s-pack57.adb: Likewise.
12927         * libgnat/s-pack57.ads: Likewise.
12928         * libgnat/s-pack58.adb: Likewise.
12929         * libgnat/s-pack58.ads: Likewise.
12930         * libgnat/s-pack59.adb: Likewise.
12931         * libgnat/s-pack59.ads: Likewise.
12932         * libgnat/s-pack60.adb: Likewise.
12933         * libgnat/s-pack60.ads: Likewise.
12934         * libgnat/s-pack61.adb: Likewise.
12935         * libgnat/s-pack61.ads: Likewise.
12936         * libgnat/s-pack62.adb: Likewise.
12937         * libgnat/s-pack62.ads: Likewise.
12938         * libgnat/s-pack63.adb: Likewise.
12939         * libgnat/s-pack63.ads: Likewise.
12940         * libgnat/s-parame.adb: Likewise.
12941         * libgnat/s-parame.ads: Likewise.
12942         * libgnat/s-parame__ae653.ads: Likewise.
12943         * libgnat/s-parame__hpux.ads: Likewise.
12944         * libgnat/s-parame__rtems.adb: Likewise.
12945         * libgnat/s-parame__vxworks.adb: Likewise.
12946         * libgnat/s-parame__vxworks.ads: Likewise.
12947         * libgnat/s-parint.adb: Likewise.
12948         * libgnat/s-parint.ads: Likewise.
12949         * libgnat/s-pooglo.adb: Likewise.
12950         * libgnat/s-pooglo.ads: Likewise.
12951         * libgnat/s-pooloc.adb: Likewise.
12952         * libgnat/s-pooloc.ads: Likewise.
12953         * libgnat/s-poosiz.adb: Likewise.
12954         * libgnat/s-poosiz.ads: Likewise.
12955         * libgnat/s-powtab.ads: Likewise.
12956         * libgnat/s-purexc.ads: Likewise.
12957         * libgnat/s-rannum.adb: Likewise.
12958         * libgnat/s-rannum.ads: Likewise.
12959         * libgnat/s-ransee.adb: Likewise.
12960         * libgnat/s-ransee.ads: Likewise.
12961         * libgnat/s-regexp.adb: Likewise.
12962         * libgnat/s-regexp.ads: Likewise.
12963         * libgnat/s-regpat.adb: Likewise.
12964         * libgnat/s-regpat.ads: Likewise.
12965         * libgnat/s-resfil.adb: Likewise.
12966         * libgnat/s-resfil.ads: Likewise.
12967         * libgnat/s-restri.adb: Likewise.
12968         * libgnat/s-restri.ads: Likewise.
12969         * libgnat/s-rident.ads: Likewise.
12970         * libgnat/s-rpc.adb: Likewise.
12971         * libgnat/s-rpc.ads: Likewise.
12972         * libgnat/s-scaval.adb: Likewise.
12973         * libgnat/s-scaval.ads: Likewise.
12974         * libgnat/s-secsta.adb: Likewise.
12975         * libgnat/s-secsta.ads: Likewise.
12976         * libgnat/s-sequio.adb: Likewise.
12977         * libgnat/s-sequio.ads: Likewise.
12978         * libgnat/s-shasto.adb: Likewise.
12979         * libgnat/s-shasto.ads: Likewise.
12980         * libgnat/s-soflin.adb: Likewise.
12981         * libgnat/s-soflin.ads: Likewise.
12982         * libgnat/s-soliin.adb: Likewise.
12983         * libgnat/s-soliin.ads: Likewise.
12984         * libgnat/s-sopco3.adb: Likewise.
12985         * libgnat/s-sopco3.ads: Likewise.
12986         * libgnat/s-sopco4.adb: Likewise.
12987         * libgnat/s-sopco4.ads: Likewise.
12988         * libgnat/s-sopco5.adb: Likewise.
12989         * libgnat/s-sopco5.ads: Likewise.
12990         * libgnat/s-spsufi.adb: Likewise.
12991         * libgnat/s-spsufi.ads: Likewise.
12992         * libgnat/s-stache.adb: Likewise.
12993         * libgnat/s-stache.ads: Likewise.
12994         * libgnat/s-stalib.adb: Likewise.
12995         * libgnat/s-stalib.ads: Likewise.
12996         * libgnat/s-stausa.adb: Likewise.
12997         * libgnat/s-stausa.ads: Likewise.
12998         * libgnat/s-stchop.adb: Likewise.
12999         * libgnat/s-stchop.ads: Likewise.
13000         * libgnat/s-stchop__limit.ads: Likewise.
13001         * libgnat/s-stchop__rtems.adb: Likewise.
13002         * libgnat/s-stchop__vxworks.adb: Likewise.
13003         * libgnat/s-stoele.adb: Likewise.
13004         * libgnat/s-stoele.ads: Likewise.
13005         * libgnat/s-stopoo.adb: Likewise.
13006         * libgnat/s-stopoo.ads: Likewise.
13007         * libgnat/s-stposu.adb: Likewise.
13008         * libgnat/s-stposu.ads: Likewise.
13009         * libgnat/s-stratt.adb: Likewise.
13010         * libgnat/s-stratt.ads: Likewise.
13011         * libgnat/s-stratt__xdr.adb: Likewise.
13012         * libgnat/s-strcom.adb: Likewise.
13013         * libgnat/s-strcom.ads: Likewise.
13014         * libgnat/s-strhas.adb: Likewise.
13015         * libgnat/s-strhas.ads: Likewise.
13016         * libgnat/s-string.adb: Likewise.
13017         * libgnat/s-string.ads: Likewise.
13018         * libgnat/s-strops.adb: Likewise.
13019         * libgnat/s-strops.ads: Likewise.
13020         * libgnat/s-ststop.adb: Likewise.
13021         * libgnat/s-ststop.ads: Likewise.
13022         * libgnat/s-tasloc.adb: Likewise.
13023         * libgnat/s-tasloc.ads: Likewise.
13024         * libgnat/s-thread.ads: Likewise.
13025         * libgnat/s-thread__ae653.adb: Likewise.
13026         * libgnat/s-traceb.adb: Likewise.
13027         * libgnat/s-traceb.ads: Likewise.
13028         * libgnat/s-traceb__hpux.adb: Likewise.
13029         * libgnat/s-traceb__mastop.adb: Likewise.
13030         * libgnat/s-traent.adb: Likewise.
13031         * libgnat/s-traent.ads: Likewise.
13032         * libgnat/s-trasym.adb: Likewise.
13033         * libgnat/s-trasym.ads: Likewise.
13034         * libgnat/s-trasym__dwarf.adb: Likewise.
13035         * libgnat/s-tsmona.adb: Likewise.
13036         * libgnat/s-tsmona__linux.adb: Likewise.
13037         * libgnat/s-tsmona__mingw.adb: Likewise.
13038         * libgnat/s-unstyp.ads: Likewise.
13039         * libgnat/s-utf_32.adb: Likewise.
13040         * libgnat/s-utf_32.ads: Likewise.
13041         * libgnat/s-valboo.adb: Likewise.
13042         * libgnat/s-valboo.ads: Likewise.
13043         * libgnat/s-valcha.adb: Likewise.
13044         * libgnat/s-valcha.ads: Likewise.
13045         * libgnat/s-valdec.adb: Likewise.
13046         * libgnat/s-valdec.ads: Likewise.
13047         * libgnat/s-valenu.adb: Likewise.
13048         * libgnat/s-valenu.ads: Likewise.
13049         * libgnat/s-valint.adb: Likewise.
13050         * libgnat/s-valint.ads: Likewise.
13051         * libgnat/s-vallld.adb: Likewise.
13052         * libgnat/s-vallld.ads: Likewise.
13053         * libgnat/s-vallli.adb: Likewise.
13054         * libgnat/s-vallli.ads: Likewise.
13055         * libgnat/s-valllu.adb: Likewise.
13056         * libgnat/s-valllu.ads: Likewise.
13057         * libgnat/s-valrea.adb: Likewise.
13058         * libgnat/s-valrea.ads: Likewise.
13059         * libgnat/s-valuns.adb: Likewise.
13060         * libgnat/s-valuns.ads: Likewise.
13061         * libgnat/s-valuti.adb: Likewise.
13062         * libgnat/s-valuti.ads: Likewise.
13063         * libgnat/s-valwch.adb: Likewise.
13064         * libgnat/s-valwch.ads: Likewise.
13065         * libgnat/s-veboop.adb: Likewise.
13066         * libgnat/s-veboop.ads: Likewise.
13067         * libgnat/s-vector.ads: Likewise.
13068         * libgnat/s-vercon.adb: Likewise.
13069         * libgnat/s-vercon.ads: Likewise.
13070         * libgnat/s-wchcnv.adb: Likewise.
13071         * libgnat/s-wchcnv.ads: Likewise.
13072         * libgnat/s-wchcon.adb: Likewise.
13073         * libgnat/s-wchcon.ads: Likewise.
13074         * libgnat/s-wchjis.adb: Likewise.
13075         * libgnat/s-wchjis.ads: Likewise.
13076         * libgnat/s-wchstw.adb: Likewise.
13077         * libgnat/s-wchstw.ads: Likewise.
13078         * libgnat/s-wchwts.adb: Likewise.
13079         * libgnat/s-wchwts.ads: Likewise.
13080         * libgnat/s-widboo.adb: Likewise.
13081         * libgnat/s-widboo.ads: Likewise.
13082         * libgnat/s-widcha.adb: Likewise.
13083         * libgnat/s-widcha.ads: Likewise.
13084         * libgnat/s-widenu.adb: Likewise.
13085         * libgnat/s-widenu.ads: Likewise.
13086         * libgnat/s-widlli.adb: Likewise.
13087         * libgnat/s-widlli.ads: Likewise.
13088         * libgnat/s-widllu.adb: Likewise.
13089         * libgnat/s-widllu.ads: Likewise.
13090         * libgnat/s-widwch.adb: Likewise.
13091         * libgnat/s-widwch.ads: Likewise.
13092         * libgnat/s-win32.ads: Likewise.
13093         * libgnat/s-winext.ads: Likewise.
13094         * libgnat/s-wwdcha.adb: Likewise.
13095         * libgnat/s-wwdcha.ads: Likewise.
13096         * libgnat/s-wwdenu.adb: Likewise.
13097         * libgnat/s-wwdenu.ads: Likewise.
13098         * libgnat/s-wwdwch.adb: Likewise.
13099         * libgnat/s-wwdwch.ads: Likewise.
13100         * libgnat/system-aix.ads: Likewise.
13101         * libgnat/system-darwin-arm.ads: Likewise.
13102         * libgnat/system-darwin-ppc.ads: Likewise.
13103         * libgnat/system-darwin-x86.ads: Likewise.
13104         * libgnat/system-djgpp.ads: Likewise.
13105         * libgnat/system-dragonfly-x86_64.ads: Likewise.
13106         * libgnat/system-freebsd.ads: Likewise.
13107         * libgnat/system-hpux-ia64.ads: Likewise.
13108         * libgnat/system-hpux.ads: Likewise.
13109         * libgnat/system-linux-alpha.ads: Likewise.
13110         * libgnat/system-linux-arm.ads: Likewise.
13111         * libgnat/system-linux-hppa.ads: Likewise.
13112         * libgnat/system-linux-ia64.ads: Likewise.
13113         * libgnat/system-linux-m68k.ads: Likewise.
13114         * libgnat/system-linux-mips.ads: Likewise.
13115         * libgnat/system-linux-ppc.ads: Likewise.
13116         * libgnat/system-linux-riscv.ads: Likewise.
13117         * libgnat/system-linux-s390.ads: Likewise.
13118         * libgnat/system-linux-sh4.ads: Likewise.
13119         * libgnat/system-linux-sparc.ads: Likewise.
13120         * libgnat/system-linux-x86.ads: Likewise.
13121         * libgnat/system-lynxos178-ppc.ads: Likewise.
13122         * libgnat/system-lynxos178-x86.ads: Likewise.
13123         * libgnat/system-mingw.ads: Likewise.
13124         * libgnat/system-qnx-aarch64.ads: Likewise.
13125         * libgnat/system-rtems.ads: Likewise.
13126         * libgnat/system-solaris-sparc.ads: Likewise.
13127         * libgnat/system-solaris-x86.ads: Likewise.
13128         * libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
13129         * libgnat/system-vxworks-arm-rtp.ads: Likewise.
13130         * libgnat/system-vxworks-arm.ads: Likewise.
13131         * libgnat/system-vxworks-e500-kernel.ads: Likewise.
13132         * libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
13133         * libgnat/system-vxworks-e500-rtp.ads: Likewise.
13134         * libgnat/system-vxworks-e500-vthread.ads: Likewise.
13135         * libgnat/system-vxworks-ppc-kernel.ads: Likewise.
13136         * libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
13137         * libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
13138         * libgnat/system-vxworks-ppc-rtp.ads: Likewise.
13139         * libgnat/system-vxworks-ppc-vthread.ads: Likewise.
13140         * libgnat/system-vxworks-ppc.ads: Likewise.
13141         * libgnat/system-vxworks-x86-kernel.ads: Likewise.
13142         * libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
13143         * libgnat/system-vxworks-x86-rtp.ads: Likewise.
13144         * libgnat/system-vxworks-x86-vthread.ads: Likewise.
13145         * libgnat/system-vxworks-x86.ads: Likewise.
13146         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
13147         * libgnat/system-vxworks7-aarch64.ads: Likewise.
13148         * libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
13149         * libgnat/system-vxworks7-arm.ads: Likewise.
13150         * libgnat/system-vxworks7-e500-kernel.ads: Likewise.
13151         * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
13152         * libgnat/system-vxworks7-e500-rtp.ads: Likewise.
13153         * libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
13154         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
13155         * libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
13156         * libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
13157         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
13158         * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
13159         * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
13160         * libgnat/system-vxworks7-x86-rtp.ads: Likewise.
13161         * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
13162         * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
13163         * libgnat/system.ads: Likewise.
13164         * link.c: Likewise.
13165         * live.adb: Likewise.
13166         * live.ads: Likewise.
13167         * locales.c: Likewise.
13168         * make.adb: Likewise.
13169         * make.ads: Likewise.
13170         * make_util.adb: Likewise.
13171         * make_util.ads: Likewise.
13172         * makeusg.adb: Likewise.
13173         * makeusg.ads: Likewise.
13174         * mdll-fil.adb: Likewise.
13175         * mdll-fil.ads: Likewise.
13176         * mdll-utl.adb: Likewise.
13177         * mdll-utl.ads: Likewise.
13178         * mdll.adb: Likewise.
13179         * mdll.ads: Likewise.
13180         * mingw32.h: Likewise.
13181         * mkdir.c: Likewise.
13182         * namet-sp.adb: Likewise.
13183         * namet-sp.ads: Likewise.
13184         * namet.adb: Likewise.
13185         * namet.ads: Likewise.
13186         * namet.h: Likewise.
13187         * nlists.adb: Likewise.
13188         * nlists.ads: Likewise.
13189         * nlists.h: Likewise.
13190         * opt.adb: Likewise.
13191         * opt.ads: Likewise.
13192         * osint-b.adb: Likewise.
13193         * osint-b.ads: Likewise.
13194         * osint-c.adb: Likewise.
13195         * osint-c.ads: Likewise.
13196         * osint-l.adb: Likewise.
13197         * osint-l.ads: Likewise.
13198         * osint-m.adb: Likewise.
13199         * osint-m.ads: Likewise.
13200         * osint.adb: Likewise.
13201         * osint.ads: Likewise.
13202         * output.adb: Likewise.
13203         * output.ads: Likewise.
13204         * par-ch10.adb: Likewise.
13205         * par-ch11.adb: Likewise.
13206         * par-ch12.adb: Likewise.
13207         * par-ch13.adb: Likewise.
13208         * par-ch2.adb: Likewise.
13209         * par-ch3.adb: Likewise.
13210         * par-ch4.adb: Likewise.
13211         * par-ch5.adb: Likewise.
13212         * par-ch6.adb: Likewise.
13213         * par-ch7.adb: Likewise.
13214         * par-ch8.adb: Likewise.
13215         * par-ch9.adb: Likewise.
13216         * par-endh.adb: Likewise.
13217         * par-labl.adb: Likewise.
13218         * par-load.adb: Likewise.
13219         * par-prag.adb: Likewise.
13220         * par-sync.adb: Likewise.
13221         * par-tchk.adb: Likewise.
13222         * par-util.adb: Likewise.
13223         * par.adb: Likewise.
13224         * par.ads: Likewise.
13225         * par_sco.adb: Likewise.
13226         * par_sco.ads: Likewise.
13227         * pprint.adb: Likewise.
13228         * pprint.ads: Likewise.
13229         * prep.adb: Likewise.
13230         * prep.ads: Likewise.
13231         * prepcomp.adb: Likewise.
13232         * prepcomp.ads: Likewise.
13233         * put_scos.adb: Likewise.
13234         * put_scos.ads: Likewise.
13235         * raise-gcc.c: Likewise.
13236         * raise.c: Likewise.
13237         * raise.h: Likewise.
13238         * repinfo-input.adb: Likewise.
13239         * repinfo-input.ads: Likewise.
13240         * repinfo.adb: Likewise.
13241         * repinfo.ads: Likewise.
13242         * repinfo.h: Likewise.
13243         * restrict.adb: Likewise.
13244         * restrict.ads: Likewise.
13245         * rident.ads: Likewise.
13246         * rtfinal.c: Likewise.
13247         * rtinit.c: Likewise.
13248         * rtsfind.adb: Likewise.
13249         * rtsfind.ads: Likewise.
13250         * runtime.h: Likewise.
13251         * s-oscons-tmplt.c: Likewise.
13252         * sa_messages.adb: Likewise.
13253         * sa_messages.ads: Likewise.
13254         * scans.adb: Likewise.
13255         * scans.ads: Likewise.
13256         * scil_ll.adb: Likewise.
13257         * scil_ll.ads: Likewise.
13258         * scn.adb: Likewise.
13259         * scn.ads: Likewise.
13260         * scng.adb: Likewise.
13261         * scng.ads: Likewise.
13262         * scos.adb: Likewise.
13263         * scos.ads: Likewise.
13264         * scos.h: Likewise.
13265         * sdefault.ads: Likewise.
13266         * seh_init.c: Likewise.
13267         * sem.adb: Likewise.
13268         * sem.ads: Likewise.
13269         * sem_aggr.adb: Likewise.
13270         * sem_aggr.ads: Likewise.
13271         * sem_attr.adb: Likewise.
13272         * sem_attr.ads: Likewise.
13273         * sem_aux.adb: Likewise.
13274         * sem_aux.ads: Likewise.
13275         * sem_case.adb: Likewise.
13276         * sem_case.ads: Likewise.
13277         * sem_cat.adb: Likewise.
13278         * sem_cat.ads: Likewise.
13279         * sem_ch10.adb: Likewise.
13280         * sem_ch10.ads: Likewise.
13281         * sem_ch11.adb: Likewise.
13282         * sem_ch11.ads: Likewise.
13283         * sem_ch12.adb: Likewise.
13284         * sem_ch12.ads: Likewise.
13285         * sem_ch13.adb: Likewise.
13286         * sem_ch13.ads: Likewise.
13287         * sem_ch2.adb: Likewise.
13288         * sem_ch2.ads: Likewise.
13289         * sem_ch3.adb: Likewise.
13290         * sem_ch3.ads: Likewise.
13291         * sem_ch4.adb: Likewise.
13292         * sem_ch4.ads: Likewise.
13293         * sem_ch5.adb: Likewise.
13294         * sem_ch5.ads: Likewise.
13295         * sem_ch6.adb: Likewise.
13296         * sem_ch6.ads: Likewise.
13297         * sem_ch7.adb: Likewise.
13298         * sem_ch7.ads: Likewise.
13299         * sem_ch8.adb: Likewise.
13300         * sem_ch8.ads: Likewise.
13301         * sem_ch9.adb: Likewise.
13302         * sem_ch9.ads: Likewise.
13303         * sem_dim.adb: Likewise.
13304         * sem_dim.ads: Likewise.
13305         * sem_disp.adb: Likewise.
13306         * sem_disp.ads: Likewise.
13307         * sem_dist.adb: Likewise.
13308         * sem_dist.ads: Likewise.
13309         * sem_elab.adb: Likewise.
13310         * sem_elab.ads: Likewise.
13311         * sem_elim.adb: Likewise.
13312         * sem_elim.ads: Likewise.
13313         * sem_eval.adb: Likewise.
13314         * sem_eval.ads: Likewise.
13315         * sem_intr.adb: Likewise.
13316         * sem_intr.ads: Likewise.
13317         * sem_mech.adb: Likewise.
13318         * sem_mech.ads: Likewise.
13319         * sem_prag.adb: Likewise.
13320         * sem_prag.ads: Likewise.
13321         * sem_res.adb: Likewise.
13322         * sem_res.ads: Likewise.
13323         * sem_scil.adb: Likewise.
13324         * sem_scil.ads: Likewise.
13325         * sem_smem.adb: Likewise.
13326         * sem_smem.ads: Likewise.
13327         * sem_type.adb: Likewise.
13328         * sem_type.ads: Likewise.
13329         * sem_util.adb: Likewise.
13330         * sem_util.ads: Likewise.
13331         * sem_warn.adb: Likewise.
13332         * sem_warn.ads: Likewise.
13333         * set_targ.adb: Likewise.
13334         * set_targ.ads: Likewise.
13335         * sfn_scan.adb: Likewise.
13336         * sfn_scan.ads: Likewise.
13337         * sigtramp-armdroid.c: Likewise.
13338         * sigtramp-ios.c: Likewise.
13339         * sigtramp-qnx.c: Likewise.
13340         * sigtramp-vxworks.c: Likewise.
13341         * sigtramp.h: Likewise.
13342         * sinfo-cn.adb: Likewise.
13343         * sinfo-cn.ads: Likewise.
13344         * sinfo.adb: Likewise.
13345         * sinfo.ads: Likewise.
13346         * sinput-c.adb: Likewise.
13347         * sinput-c.ads: Likewise.
13348         * sinput-d.adb: Likewise.
13349         * sinput-d.ads: Likewise.
13350         * sinput-l.adb: Likewise.
13351         * sinput-l.ads: Likewise.
13352         * sinput.adb: Likewise.
13353         * sinput.ads: Likewise.
13354         * socket.c: Likewise.
13355         * spark_xrefs.adb: Likewise.
13356         * spark_xrefs.ads: Likewise.
13357         * sprint.adb: Likewise.
13358         * sprint.ads: Likewise.
13359         * stand.adb: Likewise.
13360         * stand.ads: Likewise.
13361         * stringt.adb: Likewise.
13362         * stringt.ads: Likewise.
13363         * stringt.h: Likewise.
13364         * style.adb: Likewise.
13365         * style.ads: Likewise.
13366         * styleg.adb: Likewise.
13367         * styleg.ads: Likewise.
13368         * stylesw.adb: Likewise.
13369         * stylesw.ads: Likewise.
13370         * switch-b.adb: Likewise.
13371         * switch-b.ads: Likewise.
13372         * switch-c.adb: Likewise.
13373         * switch-c.ads: Likewise.
13374         * switch-m.adb: Likewise.
13375         * switch-m.ads: Likewise.
13376         * switch.adb: Likewise.
13377         * switch.ads: Likewise.
13378         * symbols.adb: Likewise.
13379         * symbols.ads: Likewise.
13380         * sysdep.c: Likewise.
13381         * table.adb: Likewise.
13382         * table.ads: Likewise.
13383         * targext.c: Likewise.
13384         * targparm.adb: Likewise.
13385         * targparm.ads: Likewise.
13386         * tbuild.adb: Likewise.
13387         * tbuild.ads: Likewise.
13388         * tempdir.adb: Likewise.
13389         * tempdir.ads: Likewise.
13390         * terminals.c: Likewise.
13391         * tracebak.c: Likewise.
13392         * tree_gen.adb: Likewise.
13393         * tree_gen.ads: Likewise.
13394         * tree_in.adb: Likewise.
13395         * tree_in.ads: Likewise.
13396         * tree_io.adb: Likewise.
13397         * tree_io.ads: Likewise.
13398         * treepr.adb: Likewise.
13399         * treepr.ads: Likewise.
13400         * ttypes.ads: Likewise.
13401         * types.adb: Likewise.
13402         * types.ads: Likewise.
13403         * types.h: Likewise.
13404         * uintp.adb: Likewise.
13405         * uintp.ads: Likewise.
13406         * uintp.h: Likewise.
13407         * uname.adb: Likewise.
13408         * uname.ads: Likewise.
13409         * urealp.adb: Likewise.
13410         * urealp.ads: Likewise.
13411         * urealp.h: Likewise.
13412         * usage.adb: Likewise.
13413         * usage.ads: Likewise.
13414         * validsw.adb: Likewise.
13415         * validsw.ads: Likewise.
13416         * warnsw.adb: Likewise.
13417         * warnsw.ads: Likewise.
13418         * widechar.adb: Likewise.
13419         * widechar.ads: Likewise.
13420         * xeinfo.adb: Likewise.
13421         * xnmake.adb: Likewise.
13422         * xoscons.adb: Likewise.
13423         * xr_tabls.adb: Likewise.
13424         * xr_tabls.ads: Likewise.
13425         * xref_lib.adb: Likewise.
13426         * xref_lib.ads: Likewise.
13427         * xsinfo.adb: Likewise.
13428         * xsnamest.adb: Likewise.
13429         * xtreeprs.adb: Likewise.
13430         * xutil.adb: Likewise.
13431         * xutil.ads: Likewise.
13433 2020-06-02  Javier Miranda  <miranda@adacore.com>
13435         * sem_ch3.adb (Analyze_Object_Declaration): Set attribute
13436         Expansion_Delayed on aggregates that initialize an object that
13437         has aspect alignment or address clause. Done to allow ther
13438         initialization by means of multiple assignments.
13439         * exp_ch3.adb (Expand_N_Object_Declaration): Resolve delayed
13440         aggregates. This patch complements the patch applied to
13441         sem_ch3.adb
13443 2020-06-02  Javier Miranda  <miranda@adacore.com>
13445         * sem_util.adb (Ensure_Minimum_Decoration): New subprogram that
13446         ensures the minimum decoration required by
13447         Requires_Transient_Scope() to provide its functionality when the
13448         entity is not frozen.
13450 2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
13452         * exp_ch4.adb (Expand_N_Op_Divide): Remove code dealing with
13453         the Treat_Fixed_As_Integer flag.
13454         (Expand_N_Op_Multiply): Likewise.
13455         * exp_fixd.adb (Build_Divide): Do the division in an integer
13456         type long enough to hold both operands and convert the result
13457         to the type of the LHS.  Do not set Treat_Fixed_As_Integer.
13458         (Build_Multiply): Do not set Treat_Fixed_As_Integer.
13459         (Build_Rem): Likewise.
13460         * sem_ch4.adb (Analyze_Arithmetic_Op): Remove code dealing with
13461         the Treat_Fixed_As_Integer flag.
13462         (Check_Arithmetic_Pair): Likewise.
13463         * sinfo.ads (Treat_Fixed_As_Integer): Delete.
13464         (N_Has_Treat_Fixed_As_Integer): Likewise.
13465         (Set_Treat_Fixed_As_Integer): Likewise.
13466         * sinfo.adb (Treat_Fixed_As_Integer): Likewise.
13467         (Set_Treat_Fixed_As_Integer): Likewise.
13468         * sprint.ads (Syntax Extensions): Remove '#' special character.
13469         * sprint.adb (Process_TFAI_RR_Flags): Delete.
13470         (Sprint_Node_Actual) <N_Op_Divide>: Print '@' manually.
13471         <N_Op_Multiply>: Likewise.
13472         <N_Op_Mod>: Do not print '#'.
13473         <N_Op_Rem>: Likewise.
13475 2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
13477         * exp_aggr.adb (Others_Check): In the positional case, use the
13478         general expression for the comparison only when needed.
13479         * exp_attr.adb (Expand_Fpt_Attribute;): Use a simple conversion
13480         to the target type instead of an unchecked conversion to the
13481         base type to do the range check, as in the other cases.
13482         (Expand_N_Attribute_Reference) <Attribute_Storage_Size>: Do the
13483         Max operation in the type of the storage size variable, and use
13484         Convert_To as in the other cases.
13485         * tbuild.adb (Convert_To): Do not get rid of an intermediate
13486         conversion to Universal_Integer here...
13487         * sem_res.adb  (Simplify_Type_Conversion): ...but here instead.
13489 2020-06-02  Bob Duff  <duff@adacore.com>
13491         * doc/gnat_ugn/gnat_utility_programs.rst: Update documentation
13492         for --RM-style-spacing.
13494 2020-06-02  Bob Duff  <duff@adacore.com>
13496         * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
13497         --[no-]compact switch.
13499 2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
13501         * exp_aggr.adb (Build_Array_Aggr_Code): Set the type of the PAT
13502         on the zero used to clear the array.
13503         * exp_attr.adb (Expand_N_Attribute_Reference)
13504         <Attribute_Alignment>: In the CW case, directly convert from the
13505         alignment's type to the target type if the parent is an
13506         unchecked conversion.
13507         * sem_res.adb (Set_String_Literal_Subtype): In the dynamic case,
13508         use the general expression for the upper bound only when needed.
13509         Set the base type of the index as the type of the low bound.
13510         (Simplify_Type_Conversion): Do an intermediate conversion to the
13511         root type of the target type if the operand is an integer
13512         literal.
13513         * tbuild.adb (Convert_To): Get rid of an intermediate conversion
13514         to Universal_Integer if the inner expression has integer tyoe.
13515         * libgnat/a-sequio.adb (Byte_Swap): Make use of an equivalent
13516         static expression in the case statement.
13518 2020-06-02  Thomas Quinot  <quinot@adacore.com>
13520         * par_sco.adb (Traverse_Degenerate_Subprogram): Set statement
13521         code to 'X'.
13522         * scos.ads: Update comment documenting SCO data.
13524 2020-06-02  Gary Dismukes  <dismukes@adacore.com>
13526         * exp_unst.adb (Register_Subprogram): Test for Address_Taken (in
13527         addition to the existing test for In_Synchonized_Unit) when
13528         deciding whether to reset the Reachable flag on all subprograms
13529         enclosing the subprogram being registered.
13531 2020-06-02  Justin Squirek  <squirek@adacore.com>
13533         * sem_ch6.adb (Check_Return_Obj_Accessibility): Avoid use of
13534         parent node pointers so we are not relying on expansion done in
13535         GNATprove mode.
13537 2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
13539         * exp_attr.adb (Expand_N_Attribute_Reference)
13540         <Attribute_Alignment>: Adjust comment and compare against proper
13541         type.
13543 2020-06-02  Gary Dismukes  <dismukes@adacore.com>
13545         * exp_unst.adb (Visit_Node): When visiting array attribute
13546         nodes, apply Get_Referenced_Object to the attribute prefix, to
13547         handle prefixes denoting renamed objects by picking up the Etype
13548         of the renamed object rather than the possibly unconstrained
13549         nominal subtype of the renaming declaration's Entity.
13550         * sem_util.ads (Get_Referenced_Object): Update comment to
13551         clearly indicate that any kind of node can be passed to this
13552         function.
13553         * sem_util.adb (Get_Referenced_Object): Add test of Is_Object to
13554         the condition, to allow for passing names that denote types and
13555         subtypes.
13557 2020-06-02  Bob Duff  <duff@adacore.com>
13559         * snames.ads-tmpl: Add comments explaining that enumeration
13560         types have to be kept in synch with subtypes of Name_Id.
13562 2020-06-02  Piotr Trojanek  <trojanek@adacore.com>
13564         * sem_util.adb (Check_No_Hidden_State): Remove dead code.
13566 2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
13568         * exp_pakd.adb (Expand_Packed_Bit_Reference): Change type of
13569         reference from Universal_Integer to Standard_Natural.
13571 2020-06-02  Piotr Trojanek  <trojanek@adacore.com>
13573         * sem_prag.adb (Collect_States_And_Objects): Call itself on
13574         declaration of nested packages; append abstract states
13575         one-by-one, so that in recursive call we do not overwrite the
13576         ones that have been already collected.
13578 2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
13580         * exp_atag.ads (Build_Inherit_Predefined_Prims): Change type
13581         of Num_Predef_Prim parameter from Int to Nat.
13582         * exp_atag.adb (Build_Range): New procedure.
13583         (Build_Val): Likewise.
13584         (Build_CW_Membership): Call Build_Val.
13585         (Build_Get_Predefined_Prim_Op_Address): Likewise.
13586         (Build_Inherit_CPP_Prims): Likewise.
13587         (Build_Get_Prim_Op_Address): Likewise.
13588         (Build_Set_Predefined_Prim_Op_Address): Likewise.
13589         (Build_Inherit_Prims): Call Build_Range.
13590         (Build_Inherit_Predefined_Prims): Likewise.  Change type of
13591         Num_Predef_Prim parameter from Int to Nat.
13593 2020-06-02  Gary Dismukes  <dismukes@adacore.com>
13595         * sem_ch3.adb: Two typo fixes.
13597 2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
13599         * sem_ch3.adb (Replace_Discriminants): Preserve the Etype of the
13600         Name of N_Variant_Part nodes when rewriting it.
13602 2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
13604         * sem_ch3.adb (Signed_Integer_Type_Declaration): Change the type
13605         of the bounds from Universal_Integer to Implicit_Base.
13607 2020-06-02  Arnaud Charlet  <charlet@adacore.com>
13609         * bcheck.adb, binde.adb, bindo-diagnostics.adb, checks.adb,
13610         exp_aggr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb,
13611         exp_ch9.adb, gnatname.adb, sem_case.adb, sem_ch13.adb,
13612         sem_ch5.adb, sem_prag.adb, sem_util.adb, uintp.adb, urealp.adb,
13613         xoscons.adb, xr_tabls.adb, xref_lib.adb: Initialize objects more
13614         explicitly and add corresponding assertions. Remove dead code.
13615         Also add a few Annotate pragmas to help static analysis.
13616         * libgnat/a-caldel.adb, libgnat/a-calend.adb,
13617         libgnat/a-ngcoty.adb, libgnat/a-ngelfu.adb,
13618         libgnat/a-ngrear.adb, libgnat/a-strfix.adb,
13619         libgnat/g-calend.adb, libgnat/g-catiio.adb,
13620         libgnat/g-comlin.adb, libgnat/g-debpoo.adb,
13621         libgnat/g-dirope.adb, libgnat/g-hesorg.adb,
13622         libgnat/g-pehage.adb, libgnat/g-socket.adb, libgnat/i-cobol.adb,
13623         libgnat/s-dwalin.adb, libgnat/s-dwalin.ads,
13624         libgnat/s-fatgen.adb, libgnat/s-gearop.adb,
13625         libgnat/s-genbig.adb, libgnat/s-imgrea.adb,
13626         libgnat/s-os_lib.adb, libgnat/s-rannum.adb,
13627         libgnat/s-regpat.adb, libgnat/s-trasym__dwarf.adb,
13628         libgnat/s-valrea.adb: Ditto.
13630 2020-06-02  Eric Botcazou  <ebotcazou@adacore.com>
13632         * sem_ch3.adb (Replace_Components): Rename into...
13633         (Replace_Discriminants): ...this.  Replace girder discriminants
13634         with non-girder ones.  Do not replace components.
13635         * sem_ch13.adb (Check_Record_Representation_Clause): Deal with
13636         non-girder discriminants correctly.
13638 2020-06-02  Piotr Trojanek  <trojanek@adacore.com>
13640         * lib-xref-spark_specific.adb (Create_Heap): use a new variant
13641         of Name_Enter to directly converts String to Make_Id.
13643 2020-06-02  Gary Dismukes  <dismukes@adacore.com>
13645         * exp_attr.adb, par-ch4.adb, par-util.adb, scans.ads, scng.adb,
13646         sem_attr.adb, sem_ch4.adb, sinfo.ads: Typo corrections and minor
13647         reformatting.
13649 2020-06-02  Arnaud Charlet  <charlet@adacore.com>
13651         * snames.ads-tmpl (Name_Img, Attribute_Img): Make it an
13652         attribute returning renamable functions.
13654 2020-06-02  Yannick Moy  <moy@adacore.com>
13656         * sem_prag.adb, sem_prag.ads (Set_Overflow_Mode): New procedure
13657         to set overflow mode.
13659 2020-06-02  Piotr Trojanek  <trojanek@adacore.com>
13661         * contracts.adb, einfo.adb, exp_ch9.adb, sem_ch12.adb,
13662         sem_ch4.adb, sem_ch7.adb, sem_ch8.adb, sem_elab.adb,
13663         sem_type.adb, sem_util.adb: Reuse Is_Package_Or_Generic_Package
13664         where possible (similarly, reuse Is_Concurrent_Type if it was
13665         possible in the same expressions).
13667 2020-05-30  Arnaud Charlet  <charlet@adacore.com>
13669         * Makefile.rtl (ADA_INCLUDE_SRCS): Replace Makefile.adalib by
13670         libada.gpr and associated project files.
13671         (g-debpoo.o): Add missing rule to ensure subprograms are not reordered.
13672         (setup-rts): Add generation of libgnat/libgnarl.lst.
13673         (LIBGNAT_SRCS): Remove thread.c which is part of libgnarl.
13674         * tracebak.c, tb-gcc.c: Merged the two files to simplify dependencies.
13675         * libgnarl/libgnarl.gpr, libgnat/libada.gpr,
13676         libgnat/libgnat.gpr, libgnat/libgnat_common.gpr: New files.
13677         * doc/gnat_ugn/the_gnat_compilation_model.rst: Makefile.adalib
13678         replaced by libada.gpr.
13679         * libgnat/system-mingw.ads: Remove obsolete comment.
13680         * gcc-interface/Makefile.in: Remove dependency on tb-gcc.c.
13682 2020-05-27  Martin Liska  <mliska@suse.cz>
13684         * gnatvsn.ads: Bump Library_Version to 11.
13686 2020-05-26  Eric Botcazou  <ebotcazou@adacore.com>
13688         PR ada/95333
13689         * gcc-interface/decl.c (gnat_to_gnu_param): Never make a variant of
13690         the type.
13692 2020-05-26  Alexandre Oliva  <oliva@adacore.com>
13694         * gcc-interface/lang-specs.h (ADA_DUMPS_OPTIONS): Define in
13695         terms of DUMPS_OPTIONS.  Replace occurrences of %{d*} %:dumps
13696         with it.
13698 2020-05-26  Alexandre Oliva  <oliva@adacore.com>
13700         * gcc-interface/lang-specs.h: Drop auxbase and auxbase-strip.
13701         Use %:dumps instead of -dumpbase.  Add %w for implicit .s
13702         primary output.
13703         * switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
13704         dumpbase-ext.  Drop auxbase and auxbase-strip.
13706 2020-05-25  Yannick Moy  <moy@adacore.com>
13708         * sem_util.adb (Check_No_Hidden_State): Stop propagation at
13709         first block/task/entry.
13711 2020-05-25  Yannick Moy  <moy@adacore.com>
13713         * doc/gnat_rm/implementation_defined_pragmas.rst: Document
13714         changes to pragmas Compile_Time_Error/Compile_Time_Warning.
13715         * gnat_rm.texi: Regenerate.
13716         * libgnat/g-bytswa.adb: Change uses of Compile_Time_Error to
13717         Compile_Time_Warning, as the actual expression may not always be
13718         known statically.
13719         * sem_prag.adb (Analyze_Pragma): Handle differently pragma
13720         Compile_Time_Error in both compilation and in GNATprove mode.
13721         (Validate_Compile_Time_Warning_Or_Error): Issue an error or
13722         warning when the expression is not known at compile time.
13723         * usage.adb: Add missing documentation for warning switches _c
13724         and _r.
13725         * warnsw.ads: Update comment.
13727 2020-05-25  Justin Squirek  <squirek@adacore.com>
13729         * sem_ch6.adb (Check_Return_Obj_Accessibility): Use original
13730         node to avoid looking at expansion done in GNATprove mode.
13732 2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>
13734         * gcc-interface/decl.c (gnat_to_gnu_entity): Add new local variable
13735         and use it throughout the function.
13736         <E_Variable>: Rename local variable and adjust accordingly.  In the
13737         case of a renaming, materialize the entity if the renamed object is
13738         an N_Expression_With_Actions node.
13739         <E_Procedure>: Use Alias accessor function consistently.
13741 2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>
13743         * gcc-interface/misc.c (get_array_bit_stride): Get to the debug type,
13744         if any, before calling gnat_get_array_descr_info.
13746 2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>
13748         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Tidy up.
13749         (build_variant_list): Add GNAT_VARIANT_PART parameter and annotate its
13750         variants if it is present.  Adjust the recursive call by passing the
13751         variant subpart of variants, if any.
13752         (copy_and_substitute_in_layout): Rename GNU_SUBST_LIST to SUBST_LIST
13753         and adjust throughout.  For a type, pass the variant part in the
13754         call to build_variant_list.
13756 2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>
13758         * gcc-interface/decl.c (gnat_to_gnu_component_type): Cap the alignment
13759         of the component type according to the component size.
13761 2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>
13763         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Add a
13764         description of the various types associated with the unconstrained
13765         type.  Declare the fat pointer earlier.  Set the current function
13766         as context on the template type, and the fat pointer type on the
13767         array type.  Always mark the fat pointer type as artificial and set
13768         it as the context for the pointer type to the array.  Also reuse
13769         GNU_ENTITY_NAME.  Finish up the unconstrained type at the very end.
13770         * gcc-interface/misc.c (gnat_get_array_descr_info): Do not handle
13771         fat pointer types and tidy up accordingly.
13772         * gcc-interface/utils.c (build_unc_object_type): Do not set the
13773         context on the template type.
13774         (gnat_pushdecl): Mark the canonical fat pointer types as artificial.
13776 2020-05-25  Eric Botcazou  <ebotcazou@adacore.com>
13778         * gcc-interface/gigi.h (operand_type): New static inline function.
13779         * gcc-interface/trans.c (gnat_to_gnu): Do not suppress conversion
13780         to the resulty type at the end for array types.
13781         * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Do not
13782         remove conversions between array types on the LHS.
13784 2020-05-12  Eric Botcazou  <ebotcazou@adacore.com>
13786         * sem_aggr.ads (Is_Single_Aggregate): New function.
13787         * sem_aggr.adb (Is_Others_Aggregate): Use local variable.
13788         (Is_Single_Aggregate): New function to recognize an aggregate with
13789         a single association containing a single choice.
13790         * fe.h (Is_Others_Aggregate): Delete.
13791         (Is_Single_Aggregate): New declaration.
13792         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Call
13793         Is_Single_Aggregate instead of Is_Others_Aggregate.
13795 2020-05-12  Eric Botcazou  <ebotcazou@adacore.com>
13797         PR ada/95035
13798         * gcc-interface/utils.c (packable_type_hasher::equal): Also compare
13799         the scalar storage order.
13800         (hash_packable_type): Also hash the scalar storage order.
13801         (hash_pad_type): Likewise.
13803 2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13805         * gcc-interface/*.[ch]: Update copyright year.
13807 2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13809         * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Assert that
13810         the prefix is not a type.
13812 2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13814         * gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Rename into...
13815         (TYPE_BIT_PACKED_ARRAY_TYPE_P): ...this.
13816         (TYPE_IS_PACKED_ARRAY_TYPE_P): Rename into...
13817         (BIT_PACKED_ARRAY_TYPE_P): ...this.
13818         (TYPE_IMPL_PACKED_ARRAY_P): Adjust to above renaming.
13819         * gcc-interface/gigi.h (maybe_pad_type): Remove IS_USER_TYPE parameter.
13820         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Adjust call
13821         to maybe_pad_type.
13822         <E_Ordinary_Fixed_Point_Type>: Remove const qualifiers for tree.
13823         <E_Signed_Integer_Subtype>: Remove redundant test and redundant call
13824         to associate_original_type_to_packed_array.  Turn test into assertion.
13825         Call associate_original_type_to_packed_array and modify gnu_entity_name
13826         accordingly.  Explicitly set the parallel type for GNAT encodings.
13827         Call create_type_decl in the misaligned case before maybe_pad_type.
13828         <E_Array_Type>: Do not use the name of the implementation type for a
13829         packed array when not using GNAT encodings.
13830         <E_Array_Subtype>: Move around setting flags. Use the result of the
13831         call to associate_original_type_to_packed_array for gnu_entity_name.
13832         <E_Record_Subtype>: Create XVS type and XVZ variable only if debug
13833         info is requested for the type.
13834         Call create_type_decl if a padded type was created for a type entity.
13835         (gnat_to_gnu_component_type): Use local variable and adjust calls to
13836         maybe_pad_type.
13837         (gnat_to_gnu_subprog_type): Adjust call to maybe_pad_type.
13838         (gnat_to_gnu_field): Likewise.
13839         (validate_size): Adjust to renaming of macro.
13840         (set_rm_size): Likewise.
13841         (associate_original_type_to_packed_array): Adjust return type and
13842         return the name of the original type if GNAT encodings are not used.
13843         * gcc-interface/misc.c (gnat_get_debug_typ): Remove obsolete stuff.
13844         (gnat_get_fixed_point_type_info): Remove const qualifiers for tree.
13845         (gnat_get_array_descr_info): Likewise and set variables lazily.
13846         Remove call to maybe_debug_type.  Simplify a few computations.
13847         (enumerate_modes): Remove const qualifier for tree.
13848         * gcc-interface/utils.c (make_type_from_size): Adjust to renaming.
13849         (maybe_pad_type): Remove IS_USER_TYPE parameter and adjust.  Remove
13850         specific code for implementation types for packed arrays.
13851         (compute_deferred_decl_context): Remove const qualifier for tree.
13852         (convert): Adjust call to maybe_pad_type.
13853         (unchecked_convert): Likewise.
13854         * gcc-interface/utils2.c (is_simple_additive_expressio): Likewise.
13856 2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13858         * gcc-interface/utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Use
13859         build_nonshared_array_type to build the common type and declare it.
13861 2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13863         * gcc-interface/misc.c (gnat_init_gcc_eh): Do not override the user
13864         for -fnon-call-exceptions in default mode.
13866 2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13868         * gcc-interface/trans.c (lvalue_required_p) <N_Selected_Component>:
13869         Merge with N_Slice.
13870         <N_Allocator>: Move to...
13871         (lvalue_for_aggregate_p): ...here.  New function.
13872         (Identifier_to_gnu): For an identifier with aggregate type, also
13873         call lvalue_for_aggregate_p if lvalue_required_p returned false
13874         before substituting the identifier with the constant.
13876 2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13878         * gcc-interface/trans.c (gnat_to_gnu): Do not wrap boolean values if
13879         they appear in any kind of attribute references.
13881 2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13883         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Deal
13884         with qualified "others" aggregates in the memset case.
13886 2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13888         * gcc-interface/decl.c (gnat_to_gnu_param): Also back-annotate the
13889         mechanism in the case of an Out parameter only passed by copy-out.
13891 2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13893         * gcc-interface/gigi.h (change_qualified_type): Move around.
13894         (maybe_vector_array): Likewise.
13895         (maybe_padded_object): New static line function.
13896         * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Component_Size>:
13897         Remove useless code.
13898         <Attr_Null_Parameter>: Remove obsolete code.
13899         (Call_to_gn): Likewise.  Use maybe_padded_object to remove padding.
13900         (gnat_to_gnu): Likewise.
13901         <N_String_Literal>: Do not add a useless null character at the end.
13902         <N_Indexed_Component>: Likewise and remove obsolete code.
13903         (add_decl_expr): Likewise.
13904         (maybe_implicit_deref): Likewise.
13905         * gcc-interface/utils.c (maybe_unconstrained_array): Likewise.
13906         * gcc-interface/utils2.c (gnat_invariant_expr): Likewise.
13908 2020-05-09  Eric Botcazou  <ebotcazou@adacore.com>
13910         * gcc-interface/utils2.c: Include builtins.h.
13911         (known_alignment) <ADDR_EXPR>: Use DECL_ALIGN for DECL_P operands
13912         and get_object_alignment for the rest.
13914 2020-05-08  Eric Botcazou  <ebotcazou@adacore.com>
13916         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Force at
13917         least the unit size for an aliased object of a constrained nominal
13918         subtype whose size is variable.
13920 2020-05-08  Eric Botcazou  <ebotcazou@adacore.com>
13922         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Deal
13923         with artificial maximally-sized types designed by access types.
13924         * gcc-interface/utils.c (packable_type_hash): New structure.
13925         (packable_type_hasher): Likewise.
13926         (packable_type_hash_table): New hash table.
13927         (init_gnat_utils): Initialize it.
13928         (destroy_gnat_utils): Destroy it.
13929         (packable_type_hasher::equal): New method.
13930         (hash_packable_type): New static function.
13931         (canonicalize_packable_type): Likewise.
13932         (make_packable_type): Make sure not to use too small a type for the
13933         size of the new fields.  Canonicalize the type if it is named.
13935 2020-05-08  Eric Botcazou  <ebotcazou@adacore.com>
13937         * gcc-interface/trans.c (Raise_Error_to_gnu): Always compute a lower
13938         bound and an upper bound for use by the -gnateE switch for range and
13939         comparison operators.
13941 2020-05-08  Eric Botcazou  <ebotcazou@adacore.com>
13943         * gcc-interface/decl.c (gnat_to_gnu_param): Do not make a variant of
13944         the type in LTO mode.
13946 2020-05-04  Mikael Pettersson  <mikpelinux@gmail.com>
13948         PR bootstrap/94918
13949         * mingw32.h: Prevent windows.h from including emmintrin.h on Cygwin64.
13950         * s-oscons-tmplt.c (Serial_Port_Descriptor): Use System.Win32.HANDLE
13951         also on Cygwin.
13953 2020-03-11  Richard Wai  <richard@annexi-strayline.com>
13955         * gcc-interface/decl.c (gnat_to_gnu_entity): Also test Is_Public on
13956         the Alias of the entitiy, if it is present, in the main assertion.
13958 2020-02-06  Alexandre Oliva <oliva@adacore.com>
13960         * raise-gcc.c (personality_body) [__ARM_EABI_UNWINDER__]:
13961         Initialize barrier_cache.sp when ending phase1.
13963 2020-01-04  Eric Botcazou  <ebotcazou@adacore.com>
13965         * gnatvsn.ads: Bump copyright year.
13967 2020-01-01  Jakub Jelinek  <jakub@redhat.com>
13969         Update copyright years.
13971         * gnat_ugn.texi: Bump @copying's copyright year.
13972         * gnat_rm.texi: Likewise.
13974 Copyright (C) 2020 Free Software Foundation, Inc.
13976 Copying and distribution of this file, with or without modification,
13977 are permitted in any medium without royalty provided the copyright
13978 notice and this notice are preserved.