Add missing gcc-interface/ to 2018-07-31 ChangeLog entry
[official-gcc.git] / gcc / ada / ChangeLog
blob792811fb989cf4fc65138f587e7cbe8324f6cfd8
1 2018-08-03  Pierre-Marie de Rodat  <derodat@adacore.com>
3         Reverts
4         2018-07-06  Jim Wilson  <jimw@sifive.com>
6         * Make-generated.in (treeprs.ads): Use $(GNATMAKE) instead of gnatmake.
7         (einfo.h, sinfo.h, stamp-snames, stamp-nmake): Likewise.
8         * gcc-interface/Makefile.in (xoscons): Likewise.
10 2018-07-31  Alexandre Oliva  <oliva@adacore.com>
11             Olivier Hainque  <hainque@adacore.com>
13         * gcc-interface/trans.c: Include debug.h.
14         (file_map): New static variable.
15         (gigi): Set it.  Create decl_to_instance_map when needed.
16         (Subprogram_Body_to_gnu): Pass gnu_subprog_decl to...
17         (Sloc_to_locus): ... this.  Add decl parm, map it to instance.
18         * gcc-interface/gigi.h (Sloc_to_locus): Adjust declaration.
20 2018-07-31  Arnaud Charlet  <charlet@adacore.com>
22         * clean.adb, gnatchop.adb, gnatfind.adb, gnatls.adb,
23         gnatmake.ads, gnatxref.adb, make.adb, make.ads, make_util.ads,
24         sfn_scan.adb, vxaddr2line.adb, xeinfo.adb, xoscons.adb,
25         xr_tabls.adb, xref_lib.adb: Address CodePeer messages.
27 2018-07-31  Arnaud Charlet  <charlet@adacore.com>
29         * gnatlink.adb: Fix potential Constraint_Error if
30         Library_Version is too long.
32 2018-07-31  Arnaud Charlet  <charlet@adacore.com>
34         * sem_elab.adb: Remove duplicate condition detected by CodePeer.
36 2018-07-31  Ed Schonberg  <schonberg@adacore.com>
38         * exp_unst.adb (Subp_Index): In the case of a protected
39         operation, the relevant entry is the generated
40         protected_subprogram_body into which the original body is
41         rewritten. Assorted cleanup and optimizations.
43 2018-07-31  Ed Schonberg  <schonberg@adacore.com>
45         * exp_attr.adb (Expand_Attribute, case Fixed_Value): Set the
46         base type of the result to ensure that proper overflow and range
47         checks are generated.  If the target is a fixed-point tyoe,
48         generate the required overflow and range checks explicitly,
49         rather than relying on Apply_Type_Conversion_Checks, which might
50         simply set the Do_Range_Check flag and rely on the backend to
51         add the check.
53 2018-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
55         * sem_res.adb (Resolve_Call): Establish a transient scope to
56         manage the secondary stack when the designated type of an
57         access-to-subprogram requires it.
59 2018-07-31  Ed Schonberg  <schonberg@adacore.com>
61         * exp_ch7.adb (Check_Unnesting_Elaboration_Code): To find local
62         subprograms in the elaboration code for a package body, recurse
63         through nested statement sequences because a compiler-generated
64         procedure may appear within a condition statement.
66 2018-07-31  Ed Schonberg  <schonberg@adacore.com>
68         * exp_ch6.adb (Expand_Protected_Subprogram_Call): Handle
69         properly a protected call that includes a default parameter that
70         is a call to a protected function of the same type.
72 2018-07-31  Justin Squirek  <squirek@adacore.com>
74         * lib-writ.adb (Write_With_Lines): Modfiy the generation of
75         dependencies within ali files so that source unit bodies are
76         properly listed even if said bodies are missing.  Perform legacy
77         behavior in GNATprove mode.
78         * lib-writ.ads: Modify documentation to reflect current behavior.
80 2018-07-31  Eric Botcazou  <ebotcazou@adacore.com>
82         *  libgnarl/s-osinte__solaris.ads (upad64_t): New private type.
83         (mutex_t): Use it for 'lock' and 'data' components.
84         (cond_t): Likewise for 'data' and use single 'flags' component.
86 2018-07-31  Justin Squirek  <squirek@adacore.com>
88         * exp_ch5.adb (Make_Field_Assign): Force temporarily generated
89         objects for assignment of overlaid user objects to be renamings
90         instead of constant declarations.
92 2018-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
94         * exp_ch9.adb (Analyze_Pragmas): New routine.
95         (Build_Private_Protected_Declaration): Code clean up. Relocate
96         relevant aspects and pragmas from the stand-alone body to the
97         newly created spec.  Explicitly analyze any pragmas that have
98         been either relocated or produced by the analysis of the
99         aspects.
100         (Move_Pragmas): New routine.
101         * sem_prag.adb (Find_Related_Declaration_Or_Body): Recognize the
102         case where a pragma applies to the internally created spec for a
103         stand-along subprogram body declared in a protected body.
105 2018-07-31  Gary Dismukes  <dismukes@adacore.com>
107         * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace
108         calls to Current_Scope in three assertions with calls to
109         Current_Subprogram.
111 2018-07-31  Ed Schonberg  <schonberg@adacore.com>
113         * sem_eval.adb (Check_Non_Static_Context): Do not warn on an
114         integer literal greater than the upper bound of
115         Universal_Integer'Last when expansion is disabled, to avoid a
116         spurious warning over ranges involving 64-bit modular types.
118 2018-07-31  Arnaud Charlet  <charlet@adacore.com>
120         * einfo.adb (Write_Entity_Flags): Also print
121         Is_Activation_Record flag.
123 2018-07-31  Piotr Trojanek  <trojanek@adacore.com>
125         * exp_aggr.adb, exp_ch4.adb, exp_ch6.adb, lib-xref.adb,
126         repinfo.adb, sem_ch9.adb: Minor replace Ekind membership tests
127         with a wrapper routine.
129 2018-07-31  Piotr Trojanek  <trojanek@adacore.com>
131         * ali.adb (Known_ALI_Lines): Remove 'F' as a prefix for lines
132         related to the FORMAL analysis done by GNATprove.
134 2018-07-31  Javier Miranda  <miranda@adacore.com>
136         * sem.ads (Inside_Preanalysis_Without_Freezing): New global
137         counter.
138         * sem.adb (Semantics): This subprogram has now the
139         responsibility of resetting the counter before analyzing a unit,
140         and restoring its previous value before returning.
141         * freeze.adb (Freeze_Entity): Do not freeze if we are
142         preanalyzing without freezing.
143         * sem_res.adb (Preanalyze_And_Resolve): Set & restore
144         In_Preanalysis_Without_Freezing.
146 2018-07-31  Ed Schonberg  <schonberg@adacore.com>
148         * sem_ch4.adb (Traverse_Homonyms): Consider generic actuals that
149         may rename a matching class-wide operation only if the renaming
150         declaration for that actual is in an enclosing scope (i.e.
151         within the corrresponding instance).
153 2018-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
155         * checks.adb, contracts.adb, exp_aggr.adb, exp_ch5.adb,
156         exp_disp.adb, make.adb, sem_ch4.adb, sem_eval.adb, sem_res.adb,
157         usage.adb: Minor reformatting.
159 2018-07-31  Bob Duff  <duff@adacore.com>
161         * sem_res.adb (Resolve_Allocator): Do not complain about the
162         implicit allocator that occurs in the expansion of a return
163         statement for a build-in-place function.
165 2018-07-20  Martin Sebor  <msebor@redhat.com>
167         PR middle-end/82063
168         * gcc-interface/misc.c (gnat_handle_option): Change function argument
169         to HOST_WIDE_INT.
171 2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
173         * gcc-interface/decl.c (choices_to_gnu): Rename parameters.  Deal with
174         an operand of Character type.  Factor out range generation to the end.
175         Check that the bounds are literals and convert them to the type of the
176         operand before building the ranges.
177         * gcc-interface/utils.c (make_dummy_type): Minor tweak.
178         (make_packable_type): Propagate TYPE_DEBUG_TYPE.
179         (maybe_pad_type): Likewise.
181 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
183         * sem_ch4.adb (Try_Object_Operation): Handle properly a prefixed call
184         in an instance, when the generic parameters include an interface type
185         and a abstract operation of that type, and the actuals in the instance
186         include an interface type and a corresponding abstract operation of it,
187         with a different name than the corresponding generic subprogram
188         parameter.
190 2018-07-17  Arnaud Charlet  <charlet@adacore.com>
192         * sem_eval.adb (Rewrite_In_Raise_CE): Keep the original reason in more
193         cases.
195 2018-07-17  Arnaud Charlet  <charlet@adacore.com>
197         * checks.adb (Apply_Division_Check): Add provision for floating-point
198         checks.
200 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
202         * exp_aggr.adb (Component_OK_For_Backend): If an array component of the
203         enclosing record has a bound that is out of range (and that has been
204         rewritten as a raise statement) the aggregate is not OK for any back
205         end, and should be expanded into individual assignments.
207 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
209         * atree.adb (Relocate_Node): Simplify with Is_Rewrite_Substitution.
211 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
213         * sem_util.ads (Denotes_Same_Object): Likewise.
214         * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix RM rule references.
216 2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
218         * exp_disp.adb (Make_Tags): When the type has user-defined primitives,
219         build the access type that is later used by Build_Get_Prim_Op_Address
220         as pointing to a subtype of Ada.Tags.Address_Array.
222 2018-07-17  Patrick Bernardi  <bernardi@adacore.com>
224         * libgnat/s-memory__mingw.adb: Remove.
225         * Makefile.rtl: Remove s-memory.adb target pair from the Cygwin/Mingw32
226         section.
228 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
230         * frontend.adb (Frontend): The removal of ignored Ghost code must be
231         the last semantic operation performed on the tree.
233 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
235         * frontend.adb (Frontend): Update the call to Register_Config_Switches.
236         * inline.ads: Add new component Config_Switches to record
237         Pending_Body_Info which captures the configuration state of the pending
238         body.  Remove components Version, Version_Pragma, SPARK_Mode, and
239         SPARK_Mode_Pragma from record Pending_Body_Info because they are
240         already captured in component Config_Switches.
241         * opt.adb (Register_Opt_Config_Switches): Rename to
242         Register_Config_Switches.
243         (Restore_Opt_Config_Switches): Rename to Restore_Config_Switches.
244         (Save_Opt_Config_Switches): Rename to Save_Config_Switches. This
245         routine is now a function, and returns the saved configuration state as
246         an aggregate to avoid missing an attribute.
247         (Set_Opt_Config_Switches): Rename to Set_Config_Switches.
248         * opt.ads (Register_Opt_Config_Switches): Rename to
249         Register_Config_Switches.
250         (Restore_Opt_Config_Switches): Rename to Restore_Config_Switches.
251         (Save_Opt_Config_Switches): Rename to Save_Config_Switches. This
252         routine is now a function.
253         (Set_Opt_Config_Switches): Rename to Set_Config_Switches.
254         * par.adb (Par): Update the calls to configuration switch-related
255         subprograms.
256         * sem.adb (Semantics): Update the calls to configuration switch-related
257         subprograms.
258         * sem_ch10.adb (Analyze_Package_Body_Stub): Update the calls to
259         configuration switch-related subprograms.
260         (Analyze_Protected_Body_Stub): Update the calls to configuration
261         switch-related subprograms.
262         (Analyze_Subprogram_Body_Stub): Update calls to configuration
263         switch-related subprograms.
264         * sem_ch12.adb (Add_Pending_Instantiation): Update the capture of
265         pending instantiation attributes.
266         (Inline_Instance_Body): Update the capture of pending instantiation
267         attributes.  It is no longer needed to explicitly manipulate the SPARK
268         mode.
269         (Instantiate_Package_Body): Update the restoration of the context
270         attributes.
271         (Instantiate_Subprogram_Body): Update the restoration of context
272         attributes.
273         (Load_Parent_Of_Generic): Update the capture of pending instantiation
274         attributes.
275         (Set_Instance_Env): Update the way relevant configuration attributes
276         are saved and restored.
278 2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
280         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Deal with
281         more rvalues in the expression of a renaming.
283 2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
285         * gcc-interface/ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Define for
286         METHOD_TYPE too.
287         (TYPE_RETURN_UNCONSTRAINED_P): Likewise.
288         (TYPE_CI_CO_LIST): Likewise.
289         * gcc-interface/gigi.h (is_cplusplus_method): Delete.
290         (fntype_same_flags_p): Adjust comment.
291         * gcc-interface/decl.c (Has_Thiscall_Convention): Delete.
292         (gnat_to_gnu_entity) <E_Subprogram_Type>: Do not set the "thiscall"
293         attribute directly.
294         (is_cplusplus_method): Make static and adjust head comment.
295         (gnat_to_gnu_param): Return a pointer for the "this" parameter of
296         C++ constructors.
297         (gnat_to_gnu_subprog_type): Turn imported C++ constructors into their
298         callable form.  Generate a METHOD_TYPE node for imported C++ methods.
299         Set param_list at the very end of the processing.
300         (substitute_in_type) <METHOD_TYPE>: New case.
301         * gcc-interface/misc.c (gnat_print_type) <METHOD_TYPE>: Likewise.
302         (gnat_type_hash_eq): Accept METHOD_TYPE.
303         * gcc-interface/trans.c (Identifier_to_gnu): Deal with METHOD_TYPE.
304         (Attribute_to_gnu): Likewise.
305         (Call_to_gnu): Likewise.
306         (process_freeze_entity): Likewise.
307         * gcc-interface/utils.c (create_subprog_decl): Adjust head comment.
308         (fntype_same_flags_p): Likewise.
310 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
312         * inline.adb (Expand_Inlined_Call): Remove extra parentheses.
314 2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
316         * exp_disp.adb (Gen_Parameters_Profile): Make the _Init parameter an
317         In/Out parameter.
318         (Set_CPP_Constructors): Adjust comment accordingly.
320 2018-07-17  Bob Duff  <duff@adacore.com>
322         * exp_disp.adb (Build_Class_Wide_Check): Return early if the
323         precondition is supposed to be ignored.
325 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
327         * sem_ch6.adb (Check_Untagged_Equality): Extend check to operations
328         declared in the same scope as the operand type, when that scope is a
329         procedure.
331 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
333         * exp_unst.adb (Unnest_Subprograms): Do nothing if the expander is not
334         active.  Don't use Get_Actual_Subtype for record subtypes.  Ignore
335         rewritten identifiers and uplevel references to bounds of types that
336         come from the original type reference.
338 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
340         * exp_ch13.adb, exp_ch7.adb, exp_unst.adb, freeze.adb,
341         libgnat/s-os_lib.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb,
342         sem_eval.adb, sem_res.adb, sem_util.adb: Minor reformatting.
344 2018-07-17  Javier Miranda  <miranda@adacore.com>
346         * exp_ch13.adb (Expand_N_Freeze_Entity): Handle subtype declared for an
347         iterator.
348         * freeze.adb (Freeze_Expression): Handle freeze of an entity defined
349         outside of a subprogram body. This case was previously handled during
350         preanalysis; the frozen entities were remembered and left pending until
351         we continued freezeing entities outside of the subprogram. Now, when
352         climbing the parents chain to locate the correct placement for the
353         freezeing node, we check if the entity can be frozen and only when no
354         enclosing node is marked as Must_Not_Freeze the entity is frozen.
355         * sem_ch3.ads (Preanalyze_Default_Expression): Declaration moved to the
356         package body.
357         * sem_ch3.adb (Preanalyze_Default_Expression): Code adjusted to invoke
358         the new subprogram Preanalyze_With_Freezing_And_Resolve.
359         * sem_ch6.adb (Preanalyze_Formal_Expression): New subprogram.
360         (Analyze_Expression_Function, Process_Formals): Invoke
361         Preanalyze_Formal_Expression instead of Preanalyze_Spec_Expression
362         since the analysis of the formals may freeze entities.
363         (Analyze_Subprogram_Body_Helper): Skip building the body of the
364         class-wide clone for eliminated subprograms.
365         * sem_res.ads, sem_res.adb (Preanalyze_And_Resolve): New subprogram.
366         Its code is basically the previous version of this routine but extended
367         with an additional parameter which is used to specify if during
368         preanalysis we are allowed to freeze entities.  If the new parameter is
369         True then the subtree root node is marked as Must_Not_Freeze and no
370         entities are frozen during preanalysis.
371         (Preanalyze_And_Resolve): Invokes the internal version of
372         Preanalyze_And_Resolve without entity freezing.
373         (Preanalyze_With_Freezing_And_Resolve): Invokes the internal version of
374         Prenalyze_And_Resolve with freezing enabled.
376 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
378         * einfo.ads, libgnat/g-comlin.ads: Minor change "ie" to "i.e." in docs
379         and comments.
381 2018-07-17  Justin Squirek  <squirek@adacore.com>
383         * libgnat/s-os_lib.adb (Argument_String_To_List): Fix trimming of
384         whitespace.
386 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
388         * sem_prag.adb (Has_Visible_State): Do not consider constants as
389         visible state because it is not possible to determine whether a
390         constant depends on variable input.
391         (Propagate_Part_Of): Add comment clarifying the behavior with respect
392         to constant.
394 2018-07-17  Yannick Moy  <moy@adacore.com>
396         * gnat1drv.adb (Gnat1drv): Do not issue warning about exception not
397         being propagated in GNATprove mode.
399 2018-07-17  Dmitriy Anisimkov  <anisimko@adacore.com>
401         * libgnat/g-socket.adb, libgnat/g-socket.ads: Reorganize and make
402         public components of Inet_Addr_Type. Introduce public binary
403         operations.
405 2018-07-17  Javier Miranda  <miranda@adacore.com>
407         * exp_ch7.adb (Make_Transient_Block): When determining whether an
408         enclosing scope already handles the secondary stack, take into account
409         transient blocks nested in a block that do not manage the secondary
410         stack and are located within a loop.
412 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
414         * sem_util.adb (Enclosing_Subprogram): Protected entries and task
415         entries must be treated separately: task entries are within the
416         enclosing subprogram of the task type, while protected entries are
417         transformed into the corresponding Protected_Body_Subprogram, which is
418         the enclosing_subprogram of any subprogram declared within the entry
419         body.
421 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
423         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add missing
424         sections on -gnatH and -gnatJ compiler switches.
425         * gnat_ugn.texi: Regenerate.
427 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
429         * alloc.ads: Update the allocation metrics of the ignored Ghost nodes
430         table.
431         * atree.adb: Add a soft link for a procedure which is invoked whenever
432         an ignored Ghost node or entity is created.
433         (Change_Node): Preserve relevant attributes which come from the Flags
434         table.
435         (Mark_New_Ghost_Node): Record a newly created ignored Ghost node or
436         entity.
437         (Rewrite): Preserve relevant attributes which come from the Flags
438         table.
439         (Set_Ignored_Ghost_Recording_Proc): New routine.
440         * atree.ads: Define an access-to-suprogram type for a soft link which
441         records a newly created ignored Ghost node or entity.
442         (Set_Ignored_Ghost_Recording_Proc): New routine.
443         * ghost.adb: Remove with and use clause for Lib.  Remove table
444         Ignored_Ghost_Units.  Add new table Ignored_Ghost_Nodes.
445         (Add_Ignored_Ghost_Unit): Removed.
446         (Initialize): Initialize the table which stores ignored Ghost nodes.
447         Set the soft link which allows Atree.Mark_New_Ghost_Node to record an
448         ignored Ghost node.
449         (Is_Ignored_Ghost_Unit): Use the ultimate original node when checking
450         an eliminated ignored Ghost unit.
451         (Lock): Release and lock the table which stores ignored Ghost nodes.
452         (Mark_And_Set_Ghost_Assignment): Record rather than propagate ignored
453         Ghost nodes.
454         (Mark_And_Set_Ghost_Procedure_Call): Record rather than propagate
455         ignored Ghost nodes.
456         (Mark_Ghost_Clause): Record rather than propagate ignored Ghost nodes.
457         (Mark_Ghost_Declaration_Or_Body): Record rather than propagate ignored
458         Ghost nodes.
459         (Mark_Ghost_Pragma): Record rather than propagate ignored Ghost nodes.
460         (Propagate_Ignored_Ghost_Code): Removed.
461         (Record_Ignored_Ghost_Node): New routine.
462         (Remove_Ignored_Ghost_Code): Reimplemented.
463         (Remove_Ignored_Ghost_Node): New routine.
464         (Ultimate_Original_Node): New routine.
465         * ghost.ads (Check_Ghost_Completion): Removed.
466         * sem_ch8.adb (Analyze_Use_Package): Remove obsolete code. Mark a use
467         package clause as ignored Ghost if applicable.
468         * sem_util.adb (Is_Body_Or_Package_Declaration): Reimplemented.
470 2018-07-17  Javier Miranda  <miranda@adacore.com>
472         * sem_ch5.adb (Has_Call_Using_Secondary_Stack): Moved to library level
473         to reuse it.
474         (Analyze_Loop_Statement): Wrap the loop in a block when the evaluation
475         of the loop iterator relies on the secondary stack.
477 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
479         * sem_util.adb (Next_Actual): If the parent is a N_Null_Statement,
480         which happens for inlined calls, then fetch the next actual from the
481         original AST.
483 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
485         * einfo.ads: Update documentation for Scalar_Range.
487 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
489         * lib-xref-spark_specific.adb (Create_Heap): Attach the HEAP entity to
490         the Standard package.
492 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
494         * einfo.adb (Is_Wrapper_Package): Remove extra parentheses.
496 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
498         * sem_util.adb (Enclosing_Subprogram): Handle properly entries, and
499         synchronized types that are completions of limited types or private
500         extensions.
501         (Scope_Within): Handle properly accept statements in task bodies.
503 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
505         * sem_prag.adb (Has_Visible_State): Do not consider generic formals
506         because they are not part of the visible state space. Add constants to
507         the list of acceptable visible states.
508         (Propagate_Part_Of): Do not consider generic formals when propagating
509         the Part_Of indicator.
510         * sem_util.adb (Entity_Of): Do not follow renaming chains which go
511         through a generic formal because they are not visible for SPARK
512         purposes.
513         * sem_util.ads (Entity_Of): Update the comment on usage.
515 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
517         * sem_util.adb (Gather_Components): A discriminant of an ancestor may
518         have been constrained by a later ancestor, so when looking for the
519         value of that hidden discriminant we must examine the stored constraint
520         of other ancestors than the immediate parent type.
522 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
524         * exp_ch6.adb (Build_Heap_Or_Pool_Allocator): Ensure that scoping
525         constructs and entities within receive new entities when replicating a
526         tree.
527         (Expand_N_Extended_Return_Statement): Ensure that scoping constructs
528         and entities within receive new entities when replicating a tree.
529         * sem_util.adb (New_Copy_Tree): Add new formal Scopes_In_EWA_OK.
530         (Visit_Entity): Visit entities within scoping constructs inside
531         expression with actions nodes when requested by the caller. Add blocks,
532         labels, and procedures to the list of entities which need replication.
533         * sem_util.ads (New_Copy_Tree): Add new formal Scopes_In_EWA_OK. Update
534         the comment on usage.
536 2018-07-17  Arnaud Charlet  <charlet@adacore.com>
538         * doc/gnat_ugn/about_this_guide.rst,
539         doc/gnat_ugn/gnat_and_program_execution.rst: Remove references to gcov.
540         * gnat_ugn.texi: Regenerate.
542 2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
544         * contracts.adb (Analyze_Contracts): Add specialized processing for
545         package instantiation contracts.
546         (Analyze_Package_Contract): Remove the verification of a missing
547         Part_Of indicator.
548         (Analyze_Package_Instantiation_Contract): New routine.
549         * contracts.ads (Analyze_Package_Contract): Update the comment on
550         usage.
551         * sem_prag.adb (Check_Missing_Part_Of): Ensure that the entity of the
552         instance is being examined when trying to determine whether a package
553         instantiation needs a Part_Of indicator.
555 2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
557         * einfo.adb, exp_ch7.adb, exp_ch9.adb, exp_unst.adb, inline.adb,
558         sem.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_eval.adb,
559         sem_util.adb: Minor reformatting.
561 2018-07-16  Arnaud Charlet  <charlet@adacore.com>
563         * frontend.adb: Only unnest subprograms if no previous errors were
564          detected.
566 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
568         * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Handle loops that
569         contain blocks in the elaboration code for a package body. Create the
570         elaboration subprogram wrapper only if there is a subprogram
571         declaration in a block or loop.
573 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
575         * exp_ch4.adb (Expand_Set_Membership): Use New_Copy_Tree to perform a
576         deep copy of the left operand when building each conjuct of the
577         expanded membership operation, to avoid sharing nodes between them.
578         This sharing interferes with the unnesting machinery and is generally
579         undesirable.
581 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
583         * exp_unst.adb (Visit_Node): Handle 'Address references that are
584         calls.
586 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
588         * exp_unst.adb (Visit_Node): Handle the semantic of Storage_Pool field
589         in relevant nodes: Allocate, Free, and return statements.
591 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
593         * sem_ch12.adb (Analyze_Package_Instantiation): Handle properly an
594         instance that carries an aspect Default_Storage_Pool that overrides a
595         default storage pool that applies to the generic unit. The aspect in
596         the generic unit was removed before copying it in the instance, rather
597         than removing it from the copy of the aspects that are appended to the
598         aspects in the instance.
600 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
602         * einfo.adb (Set_Is_Uplevel_Referenced_Entity): Flag can appear on
603         loop parameters.
604         * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Handle subprogram
605         bodies.
606         * exp_ch9.adb (Reset_Scopes_To): Set the scopes of entities local to an
607         entry body to be the corresponding generated subprogram, for correct
608         analysis of uplevel references.
609         * exp_unst.adb (Visit_Node): Handle properly binary and unary operators
610         Ignore pragmas, fix component associations.
611         (Register_Subprograms): Subprograms in synchronized types must be
612         treated as reachable.
614 2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
616         * sem_util.adb (Check_No_Hidden_State): Ignore internally-generated
617         states and variables.
619 2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
621         * sinfo.ads, sinfo.adb (Withed_Body): Remove.
622         (Set_Withed_Body): Remove.
624 2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
626         * sem.adb (Walk_Library_Items): Skip units with configuration pragmas
627         when printing debug info.
629 2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
631         * sem.adb (Walk_Library_Items): Reuse local constant.
632         (Is_Subunit_Of_Main): Turn condition to positive and flip the
633         IF-THEN-ELSE branches; avoid potentially ineffective assignment to the
634         Lib variable.
636 2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
638         * sem.adb (Walk_Library_Items): Deconstruct dead code.
640 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
642         * exp_ch4.adb (Expand_N_Op_Xor): Use common routine
643         Expand_Nonbinary_Modular_Op.  Needed for unnesting.
645 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
647         * sem_ch3.adb (Inherit_Predicate_Flags): A non-discrete type may have a
648         static predicate (for example True) but has no
649         static_discrete_predicate.
651 2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
653         * exp_attr.adb (Build_Record_VS_Func): Handle corner cases dealing with
654         class-wide types and record extensions.
656 2018-07-16  Justin Squirek  <squirek@adacore.com>
658         * sem_eval.adb (Eval_Integer_Literal): Add exception for avoiding
659         checks on expanded literals within if and case expressions.
661 2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
663         * libgnat/s-wchwts.adb (Wide_String_To_String): Use the appropriate
664         longest sequence factor. Code clean up.
665         (Wide_Wide_String_To_String): Use the appropriate longest sequence
666         factor.  Code clean up.
668 2018-07-16  Javier Miranda  <miranda@adacore.com>
670         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Report an error
671         on Bit_Order when defined for a record extension.
673 2018-07-16  Arnaud Charlet  <charlet@adacore.com>
675         * libgnat/s-objrea.ads: Minor code clean up.
677 2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
679         * sem_ch3.adb (Process_Discriminants): Adjust reference to the SPARM RM
680         rule.
682 2018-07-16  Arnaud Charlet  <charlet@adacore.com>
684         * adaint.c (__gnat_set_file_time_name): Code clean up.
686 2018-07-16  Javier Miranda  <miranda@adacore.com>
688         * inline.adb (Build_Body_To_Inline): Minor code reorganization that
689         ensures that calls to function Has_Single_Return() pass a decorated
690         tree.
691         (Has_Single_Return.Check_Return): Peform checks on entities (instead on
692         relying on their characters).
694 2018-07-16  Javier Miranda  <miranda@adacore.com>
696         * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Code cleanup. Required
697         to avoid generating an ill-formed tree that confuses gnatprove causing
698         it to blowup.
700 2018-07-16  Yannick Moy  <moy@adacore.com>
702         * inline.adb (Has_Single_Return): Rewrap comment.
704 2018-07-16  Eric Botcazou  <ebotcazou@adacore.com>
706         * einfo.ads: Minor tweak in comment.
708 2018-07-16  Javier Miranda  <miranda@adacore.com>
710         * sem_ch4.adb (Analyze_Membership_Op): Code cleanup.
712 2018-07-16  Javier Miranda  <miranda@adacore.com>
714         * exp_attr.adb (Expand_N_Attribute_Reference ['Count]): Do not
715         transform 'Count into a function call if the current scope has been
716         eliminated.
718 2018-07-16  Javier Miranda  <miranda@adacore.com>
720         * sem_util.ads, sem_util.adb (Has_Prefix): Move this function to the
721         public part of this package.
723 2018-07-16  Yannick Moy  <moy@adacore.com>
725         * sem_res.adb (Resolve_Call): Do not inline calls inside
726         compiler-generated functions translated as predicates in GNATprove.
728 2018-07-16  Gary Dismukes  <dismukes@adacore.com>
730         * exp_ch4.adb (Expand_N_Allocator): Test for Storage_Pool being RTE in
731         addition to the existing test for no Storage_Pool as a condition
732         enabling generation of the call to Check_Standard_Allocator when the
733         restriction No_Standard_Allocators_After_Elaboration is active.
734         * libgnat/s-elaall.ads (Check_Standard_Allocator): Correct comment to
735         say that Storage_Error will be raised (rather than Program_Error).
736         * libgnat/s-elaall.adb (Check_Standard_Allocator): Raise Storage_Error
737         rather than Program_Error when Elaboration_In_Progress is False.
739 2018-07-16  Gary Dismukes  <dismukes@adacore.com>
741         * sem_eval.adb: Fix spelling for compile-time-known.
743 2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
745         * sem_eval.adb (Compile_Time_Known_Value): Add a guard which prevents
746         the compiler from entering infinite recursion when trying to determine
747         whether a deferred constant has a compile time known value, and the
748         initialization expression of the constant is a reference to the
749         constant itself.
751 2018-07-16  Nicolas Roche  <roche@adacore.com>
753         * libgnat/a-strunb.adb, libgnat/a-strunb__shared.adb: Adjust growth
754         factor from 1/32 to 1/2 for Unbounded_String.
756 2018-07-13  Eric Botcazou  <ebotcazou@adacore.com>
758         * gcc-interface/lang.opt (funsigned-char): New option.
759         * gcc-interface/misc.c (gnat_handle_option): Accept it.
760         * gcc-interface/utils.c (finish_character_type): Tweak comment.
762 2018-07-07  Eric Botcazou  <ebotcazou@adacore.com>
764         * gcc-interface/decl.c (gnat_to_gnu_entity): Add GNAT_DECL local
765         variable and use it throughout.
766         <E_Variable>: If the nominal subtype of the object is unconstrained,
767         compute the Ada size separately and put in on the padding type if the
768         size is not fixed.
769         <E_Record_Type>: Minor tweak.
770         * gcc-interface/misc.c (gnat_type_max_size): Rename max_size_unit
771         into max_size_unit throughout.
773 2018-07-07  Eric Botcazou  <ebotcazou@adacore.com>
775         * gcc-interface/gigi.h (add_decl_expr): Adjust prototype.
776         * gcc-interface/decl.c (gnat_to_gnu_entity): Remove useless test.
777         * gcc-interface/trans.c (add_stmt_with_node): Remove exceptions.
778         (add_decl_expr): Change type of second parameter and rename it.
779         (renaming_from_instantiation_p): New function moved from...
780         (set_expr_location_from_node): Test for exceptions here and add one
781         for actual subtypes built for unconstrained composite actuals.
782         * gcc-interface/utils.c (renaming_from_instantiation_p): ...here.
784 2018-07-07  Eric Botcazou  <ebotcazou@adacore.com>
786         * gcc-interface/trans.c (lvalue_required_p): Remove ALIASED parameter
787         and adjust recursive calls.
788         (Identifier_to_gnu): Adjust calls to lvalue_required_p.
789         (gnat_to_gnu): Likewise.
791 2018-07-07  Eric Botcazou  <ebotcazou@adacore.com>
793         * gcc-interface/decl.c (gnat_to_gnu_param): Minor tweak.
794         (gnat_to_gnu_subprog_type): New pure_flag local variable.  Set it for
795         a pure Ada function with a by-ref In parameter.  Propagate it onto the
796         function type by means of the TYPE_QUAL_RESTRICT flag.
797         * gcc-interface/utils.c (finish_subprog_decl): Set DECL_PURE_P if the
798         function type has the TYPE_QUAL_RESTRICT flag set.
800 2018-07-06  Jim Wilson  <jimw@sifive.com>
802         * Makefile.rtl: Add riscv*-linux* support.
803         * libgnarl/s-linux__riscv.ads: New.
804         * libgnat/system-linux-riscv.ads: New.
806         * Make-generated.in (treeprs.ads): Use $(GNATMAKE) instead of gnatmake.
807         (einfo.h, sinfo.h, stamp-snames, stamp-nmake): Likewise.
808         * gcc-interface/Makefile.in (xoscons): Likewise.
810 2018-07-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
812         * libgnat/system-rtems.ads (Frontend_Exceptions): Set to False.
813         (ZCX_By_Default): Set to True.
815 2018-07-02  Martin Liska  <mliska@suse.cz>
817         * gnatvsn.ads: Bump Library_Version to 9.
819 2018-06-12  Eric Botcazou  <ebotcazou@adacore.com>
821         * gcc-interface/ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Change from
822         using TYPE_LANG_FLAG_4 to using TYPE_LANG_FLAG_0.
823         (TYPE_ALIGN_OK): Move around.
824         (TYPE_PADDING_FOR_COMPONENT): Remove superfluous parentheses.
825         * gcc-interface/decl.c (change_qualified_type): Move to...
826         (gnat_to_gnu_entity): Adjust comment.
827         * gcc-interface/gigi.h (change_qualified_type): ...here; make inline.
828         (ceil_pow2): Use ceil_log2.
829         * gcc-interface/utils.c (finish_subprog_decl): Add couple of comments
830         and do not set TREE_SIDE_EFFECTS.
831         (handle_noreturn_attribute): Use change_qualified_type.
833 2018-06-12  Eric Botcazou  <ebotcazou@adacore.com>
835         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Do not get
836         the expression of a dispatch table that is not being defined.
837         <E_Record_Subtype>: Remove obsolete kludge.
839 2018-06-12  Eric Botcazou  <ebotcazou@adacore.com>
841         * gcc-interface/decl.c (warn_on_field_placement): Use specific wording
842         for discriminants.
843         (warn_on_list_placement): New static function.
844         (components_to_record): Use it to warn on multiple fields in list.
846 2018-06-12  Eric Botcazou  <ebotcazou@adacore.com>
848         * gcc-interface/decl.c (variant_desc): Add AUX field.
849         (gnat_to_gnu_entity) <discrete_type>: Do not call compute_record_mode
850         directly.
851         (reverse_sort_field_list): New static function.
852         (components_to_record): Place the variant part at the beginning of the
853         field list when there is an obvious order of increasing position.
854         (build_variant_list): Initialize it.
855         (create_variant_part_from): Do not call compute_record_mode directly.
856         (copy_and_substitute_in_layout): Likewise.  Always sort the fields with
857         fixed position in order of increasing position, in the record and all
858         the variants, in any.  Call reverse_sort_field_list.
859         * gcc-interface/utils.c (make_packable_type): Compute the sizes before
860         calling finish_record_type.  Do not call compute_record_mode directly.
861         (finish_record_type): Overhaul final processing depending on REP_LEVEL
862         and call finish_bitfield_layout if it is equal to one or two.
864 2018-06-11  Eric Botcazou  <ebotcazou@adacore.com>
866         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Reuse the
867         existing fields of a dummy fat pointer type, if any.  Clear the
868         TYPE_DECL_SUPPRESS_DEBUG on the fat pointer type after completing it.
870 2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
872         * contracts.adb (Process_Body_Postconditions): Expand only checked
873         postconditions.
874         (Process_Contract_Cases_For): Expand only checked contract cases.
875         (Process_Inherited_Preconditions): Ignored class-wide preconditions are
876         partially expanded because some of their semantic checks are tied to
877         the expansion.
878         (Process_Preconditions_For): Expand only checked preconditions.
879         (Process_Spec_Postconditions): Expand only checked preconditions.
880         Ignored class-wide preconditions are partially expanded because some of
881         their semantic checks are tied to the expansion.
882         * exp_prag.adb (Expand_N_Pragma): Suppress the expansion of ignored
883         assertion pragmas.
884         * exp_util.adb (Add_Inherited_Invariants): Code clean up.
885         * sem_util.adb (Propagate_Invariant_Attributes): Code clean up.
887 2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
889         * exp_ch9.adb, exp_unst.adb, inline.adb, libgnat/a-ciorma.adb,
890         libgnat/a-ciormu.adb, libgnat/a-ciorse.adb, libgnat/a-coorma.adb,
891         libgnat/a-coormu.adb, libgnat/a-coorse.adb, sem_prag.adb: Minor
892         reformatting.
894 2018-06-11  Gary Dismukes  <dismukes@adacore.com>
896         * exp_unst.ads, exp_unst.adb: Typo fixes and minor reformatting.
898 2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
900         * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): Do
901         not add any actuals when the size of the object is known, and the
902         caller will allocate it.
903         (Build_Heap_Allocator): Rename to Build_Heap_Or_Pool_Allocator to
904         better illustrate its functionality. Update the comment on the
905         generated code.  Generate a branch for the heap and pool cases where
906         the object is not necessarity controlled.
907         (Expand_N_Extended_Return_Statement): Expand the extended return
908         statement into four branches depending the requested mode if the caller
909         will not allocate the object on its side.
910         (Make_Build_In_Place_Call_In_Allocator): Do not allocate a controlled
911         object on the caller side because this will violate the semantics of
912         finalizable types. Instead notify the function to allocate the object
913         on the heap or a user-defined storage pool.
914         (Needs_BIP_Alloc_Form): A build-in-place function needs to be notified
915         which of the four modes to employ when returning a limited controlled
916         result.
917         * exp_util.adb (Build_Allocate_Deallocate_Proc): Remove a redundant
918         guard which is already covered in Needs_Finalization.
920 2018-06-11  Olivier Hainque  <hainque@adacore.com>
922         * libgnat/s-excmac*.ads: Factorize Unwind_Action definitions ...
923         * libgnat/a-exexpr.adb: ... Here, then add comments describing the
924         major datastructures associated with the current exception raised.
925         (Setup_Current_Excep): Accept a "Phase" argument conveying the
926         unwinding phase during which this subprogram is called.  For an Ada
927         exception, don't update the current exception buffer from the raised
928         exception object during SEARCH_PHASE, as this is redundant with the
929         call now issued just before propagation starts.
930         (Propagate_GCC_Exception): Move call to Setup_Current_Excep ahead of
931         the unwinding start, conveying Phase 0.
932         (Unhandled_Except_Handler): Pass UA_CLEANUP_PHASE as the Phase value on
933         the call to Setup_Current_Excep.
934         * raise-gcc.c (personality_body): Pass uw_phases as the Phase argument
935         on calls to Setup_Current_Excep.
937 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
939         * exp_unst.ads, exp_unst.adb (Needs_Fat_Pointer,
940         Build_Access_Type_Decl): New subprograms to handle uplevel references
941         to formals of an unconstrained array type. The activation record
942         component for these is an access type, and the reference is rewritten
943         as an explicit derefenrence of that component.
945 2018-06-11  Bob Duff  <duff@adacore.com>
947         * libgnat/a-ciorma.adb, libgnat/a-ciormu.adb, libgnat/a-ciorse.adb,
948         libgnat/a-coorma.adb, libgnat/a-coormu.adb, libgnat/a-coorse.adb:
949         (Element): Add code to detect dangling cursors in some cases.
951 2018-06-11  Yannick Moy  <moy@adacore.com>
953         * sem_ch6.adb (Build_Subprogram_Declaration): Mark parameters as coming
954         from source.
956 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
958         * sem_ch13.adb (Build_Predicate_Functions): For a derived type, ensure
959         that its parent is already frozen so that its predicate function, if
960         any, has already been constructed.
962 2018-06-11  Yannick Moy  <moy@adacore.com>
964         * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Adapt for
965         possible task unit as the enclosing context.
967 2018-06-11  Eric Botcazou  <ebotcazou@adacore.com>
969         * gnat1drv.adb: Remove use clause for Repinfo.
970         (Gnat1drv): Beef up comment about the interplay between -gnatc and
971         back-end annotations.  Use full qualified name for List_Rep_Info.
973 2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
975         * libgnat/g-arrspl.ads: Add pragma Preelaborate.
977 2018-06-11  Arnaud Charlet  <charlet@adacore.com>
979         * exp_ch4.adb (Expand_Record_Equality): Remove extraneous "True and
980         then" and general logical "ada" in codepeer mode.
982 2018-06-11  Javier Miranda  <miranda@adacore.com>
984         * exp_ch9.adb (Expand_N_Protected_Body): Add missing handling of
985         N_Call_Marker nodes.
987 2018-06-11  Arnaud Charlet  <charlet@adacore.com>
989         * exp_ch3.adb, exp_unst.adb, inline.adb, sem_prag.adb: Minor
990         reformatting.
992 2018-06-11  Yannick Moy  <moy@adacore.com>
994         * doc/gnat_rm/implementation_defined_pragmas.rst: Add Suppressible
995         argument to Assertion_Policy
996         * gnat_rm.texi: Regenerate.
998 2018-06-11  Yannick Moy  <moy@adacore.com>
1000         * gnat1drv.adb: Do not check representation information in CodePeer and
1001         GNATprove modes, as these modes call a special backend instead of gigi,
1002         so do not have the information.
1004 2018-06-11  Yannick Moy  <moy@adacore.com>
1006         * inline.adb (Build_Body_To_Inline): Consider case of extended return
1007         of unconstrained type as one case where inlining is not supported.
1008         (Expand_Inlined_Call): Remove special case for body as extended return
1009         of unconstrained type.
1011 2018-06-11  Yannick Moy  <moy@adacore.com>
1013         * sem_prag.adb (Analyze_Part_Of): Only allow Part_Of on non-generic
1014         unit.
1015         (Check_Missing_Part_Of): Do not force Part_Of on generic unit.
1017 2018-06-11  Piotr Trojanek  <trojanek@adacore.com>
1019         * sem_ch13.adb (Analyze_Aspect_Specifications): Don't split AND THEN
1020         expressions in Pre/Post contracts while in GNATprove_Mode.
1022 2018-06-11  Piotr Trojanek  <trojanek@adacore.com>
1024         * sem_util.adb (Is_Potentially_Unevaluated): Fix detection of contracts
1025         with AND THEN expressions broken down into individual conjuncts.
1027 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
1029         * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Add guard.
1031 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
1033         * exp_unst.adb (Visit_Node): Skip generic associations.
1035 2018-06-11  Arnaud Charlet  <charlet@adacore.com>
1037         * libgnat/memtrack.adb (fwrite): Remove second definition.
1039 2018-06-11  Javier Miranda  <miranda@adacore.com>
1041         * sinfo.ads (Is_Dynamic_Coextension): Adding documentation.
1042         (Is_Static_Coextension): Adding documentation.
1043         * sinfo.adb (Is_Dynamic_Coextension): Extending the assertion.
1044         (Is_Static_Coextension): Extending the assertion.
1045         * sem_util.adb (Mark_Allocator): Clear Is_Static_Coextension when
1046         setting flag Is_Dynamic_Coextension (and vice versa).
1048 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
1050         * exp_unst.adb (Search_Subprograms): Handle explicitly stubs at the top
1051         level of a compilation unit, becuase they may contain nested
1052         subprograms that need an activation record.
1054 2018-06-11  Arnaud Charlet  <charlet@adacore.com>
1056         * Makefile.rtl: Compile Ada files with $(ADAC) instead of $(CC).
1058 2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
1060         * exp_ch11.adb, exp_unst.adb, inline.adb, sem_ch12.adb, sem_util.adb:
1061         Minor reformatting.
1062         * sinfo.ads: Fix a typo.
1064 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
1066         * inline.adb (Expand_Inlined_Call): If no optimization level is
1067         specified, the expansion of a call to an Inline_Always function is
1068         fully performed in the front-end even on a target that support back-end
1069         inlining.
1071 2018-06-11  Arnaud Charlet  <charlet@adacore.com>
1073         * bindgen.adb (Gen_Adainit): Protect reference to System.Parameters
1074         with Sec_Stack_Used.
1076 2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
1078         * sem_ch8.adb (Find_Direct_Name): Mode the declaration of
1079         Is_Assignment_LHS further in. Use predicate
1080         Needs_Variable_Reference_Marker to determine whether to create a
1081         variable marker.
1082         (Find_Expanded_Name): Mode the declaration of Is_Assignment_LHS further
1083         in.  Use predicate Needs_Variable_Reference_Marker to determine whether
1084         to create a variable marker.
1085         * sem_elab.adb (Build_Variable_Reference_Marker): Remove the various
1086         checks that determine whether the identifier or expanded name is a
1087         suitable variable reference.  The checks are now performed by
1088         Needs_Variable_Reference_Marker.
1089         * sem_res.adb (Resolve_Actuals): Use predicate
1090         Needs_Variable_Reference_Marker to determine whether to create a
1091         variable marker.
1092         * sem_util.adb (Needs_Variable_Reference_Marker): New routine.
1093         * sem_util.ads (Needs_Variable_Reference_Marker): New routine.
1095 2018-06-11  Valentine Reboul  <reboul@adacore.com>
1097         * doc/gnat_rm.rst, doc/gnat_ugn.rst: Rename "GPL Edition" into
1098         "Community Edition".
1100 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
1102         * sem_ch12.adb (Install_Body): In order to determine the placement of
1103         the freeze node for an instance of a generic nested within another
1104         instance, take into account that the outer instance may be declared in
1105         the visible part of a package and the inner intance may be in the
1106         private part of the same package.
1108 2018-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1110         * errout.adb (Special_Msg_Delete): Remove handling of Atomic and VFA.
1112 2018-06-11  Nicolas Roche  <roche@adacore.com>
1114         * libgnat/s-valuti.adb (Bad_Value): Ensure that we do not generate a
1115         stack overflow while raising a constraint error.
1117 2018-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1119         * repinfo.ads (Rep_Value): Use a single line.
1120         * repinfo.adb (Rep_Value): Likewise.
1121         (List_Attr): Do not use string concatenation.
1123 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
1125         * exp_unst.adb (Visit_Node): Check reference to formal parameter of
1126         current procedure, because the bounds of its type may be uplevel
1127         references.
1129 2018-06-02  Eric Botcazou  <ebotcazou@adacore.com>
1131         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: If this is
1132         not a definition, retrieve the expression only if it's a compile-time
1133         known value if we are just annotating types.
1135         * gcc-interface/utils.c (convert): Do not try to upcast properly for a
1136         conversion between tagged types in type_annotate_only mode.
1138 2018-06-02  Eric Botcazou  <ebotcazou@adacore.com>
1140         * gcc-interface/ada-tree.h (TYPE_PADDING_FOR_COMPONENT): New macro.
1141         * gcc-interface/decl.c (gnat_to_gnu_component_type): Cache the padding
1142         type built for an aliased component with variable size.
1144 2018-05-31  Pierre-Marie de Rodat  <derodat@adacore.com>
1146         * doc/gnat_ugn/project-manager-figure.png: Delete.
1148 2018-05-31  Pierre-Marie de Rodat  <derodat@adacore.com>
1150         * vxworks-arm-link.spec, vxworks-e500-link.spec,
1151         vxworks-gnat-crtbe-link.spec, vxworks-smp-arm-link.spec,
1152         vxworks-smp-e500-link.spec, vxworks-smp-ppc-link.spec,
1153         vxworks-smp-x86-link.spec: New files.
1155 2018-05-31  Pierre-Marie de Rodat  <derodat@adacore.com>
1157         * gnatvsn.adb: Re-center the copyright header.
1158         * indepsw-darwin.adb: Adjust the starting copyright year to 2011.
1160 2018-05-31  Fedor Rybin  <frybin@adacore.com>
1162         * doc/gnat_ugn/gnat_utility_programs.rst: Document Stubs_Subdir in
1163         gnattest section on user guide.
1165 2018-05-31  Ed Schonberg  <schonberg@adacore.com>
1167         * sem_res.adb (Resolve_String_Literal): If the type is a string type
1168         whose component subtype has a static predicate, ensure that the
1169         predicate is applied to each character by expanding the string into the
1170         equivalent aggregate. This is also done if the component subtype is
1171         constrained.
1173 2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1175         * gcc-interface/trans.c (Call_to_gnu): Remove obsolete code.
1177 2018-05-31  Piotr Trojanek  <trojanek@adacore.com>
1179         * sem_ch6.adb (Check_Missing_Return): Handle procedures with no
1180         explicit spec.
1182 2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1184         * gcc-interface/trans.c (Call_to_gnu): In the by-reference case, if
1185         the type of the parameter is an unconstrained array type, convert
1186         to the type of the actual before the type of the formal only if the
1187         conversion was suppressed earlier.  Use in_param and gnu_actual_type
1188         local variables throughout, and uniform spelling for In Out or Out.
1189         Also remove dead code in the component-by-reference case.
1191 2018-05-31  Frederic Konrad  <konrad@adacore.com>
1193         * tracebak.c (STOP_FRAME): Harden condition.
1194         (is_return_from, EXTRA_STOP_CONDITION): New helpers for VxWorks in RTP
1195         mode.
1197 2018-05-31  Ed Schonberg  <schonberg@adacore.com>
1199         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
1200         check to a call to a build-in-place function, given that the return
1201         object is limited and cannot be copied.
1203 2018-05-31  Olivier Hainque  <hainque@adacore.com>
1205         * libgnat/s-atopri.ads: Update comment on __atomic_compare_exchange
1206         builtins.
1208 2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1210         * gcc-interface/trans.c (Call_to_gnu): If this is a function call and
1211         there is no target, also create a temporary for the return value for
1212         an allocator if the type is an unconstrained record type with default
1213         discriminant.
1215 2018-05-31  Hristian Kirtchev  <kirtchev@adacore.com>
1217         * exp_ch7.adb (Find_Transient_Context): An iteration scheme is a valid
1218         boudary for a transient scope.
1220 2018-05-31  Valentine Reboul  <reboul@adacore.com>
1222         * gnatvsn.ads: Rename "GPL" version to "Community".
1224 2018-05-31  Ed Schonberg  <schonberg@adacore.com>
1226         * einfo.ads: Improve documentation for the Is_Unsigned_Type entity
1227         flag.
1229 2018-05-31  Piotr Trojanek  <trojanek@adacore.com>
1231         * sem_prag.adb (Analyze_Pragma): Replace call to Unique_Defining_Entity
1232         with a semantically equivalent call to Defining_Entity.
1234 2018-05-31  Piotr Trojanek  <trojanek@adacore.com>
1236         * sem_prag.adb (Analyze_Pragma): Set Etype on the rewritten
1237         Max_Queue_Length expression.
1239 2018-05-31  Sergey Rybin  <rybin@adacore.com>
1241         * doc/gnat_ugn/gnat_and_program_execution.rst: gnatelim does not need
1242         that the main unit to be built before the call, now it computes the
1243         closure of the main unit itself.
1244         * gnat_ugn.texi: Regenerate.
1246 2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1248         * repinfo.adb (List_Structural_Record_Layout): Set First to false
1249         after having listed the fields of the parent type, if any.
1251 2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1253         * gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Do not
1254         deal with the ___XP suffix for packed array types here...
1255         <E_Array_Subtype>: ...or here when processing the implementation type
1256         but when processing the original type instead.  Do not reuse the DECL
1257         of the implementation type for the original type.  Tidy up.
1259 2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1261         * einfo.ads (Object_Size_Clause): Declare.
1262         * einfo.adb (Object_Size_Clause): New function.
1263         * gcc-interface/utils.c (maybe_pad_type): Test Has_Size_Clause before
1264         retrieving Size_Clause and post the warning on the object size clause
1265         if Has_Object_Size_Clause is true.
1267 2018-05-31  Javier Miranda  <miranda@adacore.com>
1269         * sem_util.ads, sem_util.adb (Find_Primitive_Eq): New subprogram.
1270         * exp_ch4.adb (Expand_Composite_Equality): Use the new subprogram
1271         Find_Primitive_Eq to search for the primitive of types whose underlying
1272         type is a tagged type.
1274 2018-05-31  Yannick Moy  <moy@adacore.com>
1276         * sem_prag.adb (Analyze_Pragma.Check_Loop_Pragma_Placement): Inverse
1277         order of treatment between nodes recognized as loop pragmas (or
1278         generated from one) and block statements.
1280 2018-05-31  Doug Rupp  <rupp@adacore.com>
1282         * libgnat/s-osprim__posix2008.adb (Clock): Implement using
1283         clock_gettime.
1285 2018-05-31  Ed Schonberg  <schonberg@adacore.com>
1287         * exp_unst.ads, exp_unst.adb (In_Synchronized_Unit): New predicate to
1288         mark subprograms that cannot be eliminated because they must be treated
1289         as reachable from outside the current unit. This includes entry bodies
1290         and protected operations.
1292 2018-05-31  Ed Schonberg  <schonberg@adacore.com>
1294         * exp_ch4.adb (Expand_Modular_Addition, Expand_Modular_Subtraction):
1295         Convert all operands of the generated code to Standard.Unsigned, to
1296         prevent spurious visibility errors. This is needed when the generated
1297         expansion involves a modular index type of an array type, and the index
1298         type is not immediately visible.
1300 2018-05-30  Piotr Trojanek  <trojanek@adacore.com>
1302         * einfo.ads (Package_Instantiation): Update comment after a routine
1303         that uses this field has been renamed.
1305 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1307         * exp_ch11.adb (Replace_Raise_By_Goto): The transfomation is legal even
1308         if the local raise statement includes a string expression. This
1309         expression might be picked up by an outer handler or discarded, but
1310         plays no role in this transformation.
1312 2018-05-30  Hristian Kirtchev  <kirtchev@adacore.com>
1314         * exp_aggr.adb, exp_unst.adb, freeze.adb, libgnat/a-direct.adb: Minor
1315         reformatting.
1317 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1319         * exp_unst.adb (Visit_Node): Handle the semantic Procedure_To_Call
1320         field in relevant nodes: Allocate, Free, and return statements.
1322 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1324         * exp_unst.adb (Visit_Node): Do not traverse a Component_Association
1325         that has not been analyzed, as will be the case for a nested aggregate
1326         that is expanded into individual assignments.
1328 2018-05-30  Justin Squirek  <squirek@adacore.com>
1330         * aspects.adb, aspects.ads: Register new aspect.
1331         * par-prag.adb (Prag): Register new pragma.
1332         * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for new
1333         aspect similar to Aspect_Max_Queue_Length.
1334         * sem_prag.adb, sem_prag.ads (Analyze_Pragma): Register new pragma and
1335         set it to use the same processing as Pragma_Max_Queue_Length.
1336         * snames.ads-tmpl: Move definition of Name_Max_Entry_Queue_Depth so
1337         that it can be processed as a pragma in addition to a restriction and
1338         add an entry for the pragma itself.
1340 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1342         * freeze.adb (Freeze_Object_Declaration): A pragma Thread_Local_Storage
1343         is now legal on a variable of composite type initialized with an
1344         aggregate that is fully static and requires no elaboration code.
1345         * exp_aggr.adb (Convert_To_Positional): Recognize additional cases of
1346         nested aggregates that are compile-time static, so they can be used to
1347         initialize variables declared with Threqd_Local_Storage.
1348         * doc/gnat_rm/implementation_defined_pragmas.rst: Add documentation on
1349         Thread_Local_Storage.
1350         * gnat_rm.texi: Regenerate.
1352 2018-05-30  Yannick Moy  <moy@adacore.com>
1354         * sem_util.adb (Policy_In_Effect): Take into account CodePeer and
1355         GNATprove modes.
1357 2018-05-30  Justin Squirek  <squirek@adacore.com>
1359         * libgnat/a-direct.adb, libgnat/a-direct.ads (Name_Case_Equivalence):
1360         Add implementation.
1361         (Start_Search): Modify to use Start_Search_Internal
1362         (Start_Search_Internal): Add to break out an extra flag for searching
1363         case insensative due to the potential for directories within the same
1364         OS to allow different casing schemes.
1365         * sysdep.c (__gnat_name_case_equivalence): Add as a default fallback
1366         for when the more precise solution fails.
1368 2018-05-30  Hristian Kirtchev  <kirtchev@adacore.com>
1370         * checks.adb, exp_ch5.adb, exp_ch7.adb, exp_unst.adb, sem_eval.adb:
1371         Minor reformatting.
1373 2018-05-30  Pascal Obry  <obry@adacore.com>
1375         * libgnat/g-comlin.ads (Value_Callback, Define_Switch): New.
1376         * libgnat/g-comlin.adb: Add corresponding implementation.
1378 2018-05-30  Gary Dismukes  <dismukes@adacore.com>
1380         * sem_res.adb, sem_util.adb: Fix several typos.
1382 2018-05-30  Olivier Hainque  <hainque@adacore.com>
1384         * vx_crtbegin_attr.c (CTOR_ATTRIBUTE, DTOR_ATTRIBUTE): Empty.
1385         (eh_registration_ctors, eh_registration_tors): New static variables,
1386         forced in a .ctors/.dtors section, respectively, with priority.
1388 2018-05-30  Bob Duff  <duff@adacore.com>
1390         * aspects.ads, contracts.adb, exp_util.adb, expander.adb, expander.ads,
1391         freeze.adb, inline.adb, lib-xref.adb, sem.ads, sem_aggr.adb,
1392         sem_attr.adb, sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb,
1393         sem_ch8.adb, sem_dim.adb, sem_elab.adb, sem_res.adb, sem_res.ads,
1394         sinfo.ads: Spell preanalysis, preanalyze correctly.
1396 2018-05-30  Bob Duff  <duff@adacore.com>
1398         * libgnat/g-sestin.ads: Rework documentation comments.
1400 2018-05-30  Piotr Trojanek  <trojanek@adacore.com>
1402         * errout.adb, exp_aggr.adb, exp_ch7.adb, exp_util.adb, lib.adb,
1403         sem_ch13.adb, sem_ch4.adb, sem_res.adb, sem_util.adb
1404         (Has_Original_Node): Refactor to use Is_Rewrite_Substitution.
1406 2018-05-30  Piotr Trojanek  <trojanek@adacore.com>
1408         * sem_prag.adb (Analyze_Pragma): Remove conjuncts that are always true.
1410 2018-05-30  Hristian Kirtchev  <kirtchev@adacore.com>
1412         * sem_util.adb (Is_Atomic_Object): Cleaned up. Split the entity logic
1413         in a separate routine.
1414         (Is_Atomic_Object_Entity): New routine.
1415         (Is_Atomic_Prefix): Cleaned up.
1416         (Is_Synchronized_Object): Check that the object is atomic, or its type
1417         is atomic.
1418         (Object_Has_Atomic_Components): Removed.
1419         * sem_util.ads (Is_Atomic_Object): Reword the comment on usage.
1420         (Is_Atomic_Object_Entity): New routine.
1422 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1424         * sem_ch3.adb (Access_Subprogram_Declaration): The flag
1425         Needs_Activation_Record is only needed on a subprogram type, not on a
1426         pointer to such.
1427         * sem_res.adb (Resolve_Selected_Component): If the context type and the
1428         component type are anonymous access to subprograms, use the component
1429         type to obtain the proper value of Needs_Activation_Record flag for the
1430         expression.
1432 2018-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1434         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Add
1435         comment about the memset case.
1437 2018-05-30  Bob Duff  <duff@adacore.com>
1439         * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Remove the code
1440         to analyze the Elmt_Decl, because it gets analyzed in the wrong scope.
1441         We need to analyze it as part of analyzing the block, so that if the
1442         call to Element that initializes Elmt_Decl returns on the secondary
1443         stack, the block will ss_mark/ss_release. This block is inside the
1444         loop; we don't want to leak memory until the loop exits.  The purpose
1445         of analyzing Elmt_Decl first was to catch the error of modifying it,
1446         which is illegal because it's a loop parameter. The above causes us to
1447         miss that error.  Therefore, we add a flag Is_Loop_Parameter, and set
1448         it on the Element entity, so we end up with an E_Variable node with the
1449         flag set.
1450         * einfo.ads, einfo.adb (Is_Loop_Parameter): New flag.
1451         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Give the "assignment to loop
1452         parameter not allowed" error if Is_Loop_Parameter.
1453         * sem_util.adb (Is_Variable): Return False if Is_Loop_Parameter, to
1454         trigger the call to Diagnose_Non_Variable_Lhs.
1456 2018-05-30  Arnaud Charlet  <charlet@adacore.com>
1458         * checks.adb (Apply_Scalar_Range_Check):
1459         * sem_eval.adb (Check_Non_Static_Context, Out_Of_Range): Ignore out of
1460         range values for System.Priority in CodePeer mode since the actual
1461         target compiler may provide a wider range.
1463 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1465         * exp_unst.adb: Search specification of main unit as well, for
1466         unnesting.
1468 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1470         * exp_ch7.adb (Check_Unnesting_Elaboration_Code): The statement part of
1471         a package body that is a compilation unit may contain blocks that
1472         declare local subprograms.  In Subprogram_Unnesting Mode such
1473         subprograms must be handled as nested inside the (implicit) elaboration
1474         procedure that executes that statement part. To handle properly uplevel
1475         references we construct that subprogram explicitly, to contain blocks
1476         and inner subprograms, The statement part of the compilation unit
1477         becomes a call to this subprogram. This is only done if blocks are
1478         present in the statement list of the body.
1480 2018-05-30  Bob Duff  <duff@adacore.com>
1482         * exp_ch7.adb: Minor comment fix.
1484 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1486         * exp_unst.adb (Visit_Node): Handle properly subprogram instantiations
1487         that have no corresponding body and appear as attributes of the
1488         corresponding wrapper package declaration.
1489         (Register_Subprogram): New subprogram, used for subprogram bodies and
1490         for subprogram instantiations to enter callable entity into Subp table.
1492 2018-05-30  Hristian Kirtchev  <kirtchev@adacore.com>
1494         * libgnat/s-secsta.adb: Reimplement the secondary stack support.
1495         * libgnat/s-secsta.ads: Update the documentation of all routines in the
1496         public part of the package.  Reimplement the private part of the
1497         package to account for the new secondary stack structure.  Add types
1498         and subprograms for testing purposes.  Add several documentation
1499         sections.
1501 2018-05-30  Hristian Kirtchev  <kirtchev@adacore.com>
1503         * exp_aggr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb, exp_unst.adb,
1504         exp_util.adb, exp_util.ads, libgnat/a-calcon.adb, libgnat/a-calcon.ads,
1505         libgnat/s-os_lib.adb, repinfo.adb, sem_ch3.adb, sem_disp.adb,
1506         sem_disp.ads, sem_util.adb: Minor reformatting.
1508 2018-05-30  Arnaud Charlet  <charlet@adacore.com>
1510         * gcc-interface/Makefile.in: Move special flags for Ada runtime files
1511         from here...
1512         * Makefile.rtl: ... to here.  Update comments.  Protect call to
1513         "GCC_FOR_TARGET" in case target_os isn't defined.
1515 2018-05-30  Arnaud Charlet  <charlet@adacore.com>
1517         * gcc-interface/Makefile.in: Move target pair settings from here...
1518         * Makefile.rtl: ... to here.
1519         (setup-rts): New target.
1521 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1523         * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical
1524         List of All Switches): Replace "modules" with "units".
1525         (Subprogram Inlining Control): Likewise.
1526         * gnat_ugn.texi: Regenerate.
1527         * usage.adb (Usage): Fix description of -gnatn switch.
1529 2018-05-29  Arnaud Charlet  <charlet@adacore.com>
1531         * gcc-interface/Makefile.in: Fix typos.
1533 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1535         * exp_ch7.adb (Build_Finalizer_Call): Attach to tree the reference to
1536         the finalizer procedure in the At_End handler, for use in LLVM
1537         generation.
1539 2018-05-29  Javier Miranda  <miranda@adacore.com>
1541         * exp_ch4.adb (Expand_N_Op_Eq, Expand_Composite_Equality): Use the new
1542         subprogram Inherits_From_Tagged_Full_View to identify more reliably
1543         untagged private types completed with a derivation of an untagged
1544         private whose full view is a tagged type.
1545         * sem_util.ads, sem_util.adb (Inherits_From_Tagged_Full_View): New
1546         subprogram.
1547         (Collect_Primitive_Operations): Handle untagged private types completed
1548         with a derivation of an untagged private type whose full view is a
1549         tagged type. In such case, collecting the list of primitives we may
1550         find two equality primitives: one associated with the untagged private
1551         and another associated with the ultimate tagged type (and we must
1552         remove from the returned list this latter one).
1554 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1556         * exp_unst.adb (Visit_Node): Handle statement sequences that include an
1557         At_End handler.
1559 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1561         * repinfo.adb (List_Entities): Also recurse into blocks without label.
1563 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1565         * exp_ch6.adb (Expand_N_Subprogram_Body): Do not generate push/pop for
1566         exceptions if subprogram unnesting is in effect, because these branch
1567         nodes are relevant only in the presence of nested subprograms.
1569 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1571         * libgnat/s-fatgen.adb (Succ, Pred):  Raise Constraint_Error
1572         unconditionally when applied to the largest positive (resp. largest
1573         negative) value of a floating-point type.
1575 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1577         * einfo.ads, einfo.adb: Clarify use of Activation_Record_Component:
1578         discriminants and exceptions are never components of such.  The flag
1579         Needs_Activation_Record is set on subprogram types, not on access to
1580         them.
1582 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1584         * sem_ch3.adb: Set scope of component of subtype.
1586 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1588         * exp_unst.adb (Visit_Node): Exclude selected components whose prefix
1589         carry no type. Such selected components appear in unit names that are
1590         child units, both in the specification and possibly in an end label for
1591         the unit, and they do not contain any relevant uplevel references.
1593 2018-05-29  Arnaud Charlet  <charlet@adacore.com>
1595         * libgnat/a-calend.ads, libgnat/a-calend.adb (Epoch_Offset): Make it a
1596         function.
1598 2018-05-29  Olivier Hainque  <hainque@adacore.com>
1600         * libgnat/system-vxworks7-ppc-rtp.ads: New file.
1601         * libgnat/system-vxworks7-ppc-kernel.ads: New file.
1602         * libgnat/system-vxworks7-e500-rtp.ads: New file.
1603         * libgnat/system-vxworks7-e500-kernel.ads: New file.
1604         * libgnat/system-vxworks7-x86-rtp.ads: New file.
1605         * libgnat/system-vxworks-ppc64-kernel.ads: Rename as ...
1606         * libgnat/system-vxworks7-ppc64-kernel.ads: and adjust name of
1607         gnat-crtbe link spec to use the vx7 variant.
1609 2018-05-29  Olivier Hainque  <hainque@adacore.com>
1611         * vx_crtbegin.inc: Use a consistent naming convention for the
1612         registration/deregistration functions across RTP or kernel.  Remove the
1613         ctor/dtor attribute setting based on RTP/kernel, expect the optional
1614         attribute extension to be provided by includers instead.
1615         * vx_crtbegin.c: Mere inclusion of vx_crtbegin.inc with empty attribute
1616         extension for the registration/deregistration functions.
1617         * vx_crtbegin_attr.c: New file. Include vx_crtbegin.inc with explicit
1618         constructor/destructor attribute extensions.
1619         * vx_crtbegin_array.c: New file. Include vx_crtbegin.inc with empty
1620         attribute extensions and declare _ctors/_dtors arrays.
1621         * vx_crtbegin_auto.c: Remove.
1622         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Use
1623         vxworks7-gnat-crtbe-link.spec.
1624         * libgnat/system-vxworks7-aarch64.ads: Likewise.
1625         * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
1626         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
1627         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
1628         * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
1629         * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
1630         * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
1631         * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
1633 2018-05-29  Piotr Trojanek  <trojanek@adacore.com>
1635         * ali.adb: Minor reformatting.
1637 2018-05-29  Joel Brobecker  <brobecker@adacore.com>
1639         * doc/gnat_ugn/platform_specific_information.rst: Update package
1640         requirements for 32bit GNAT on x86_64-linux.
1641         * gnat_ugn.texi: Regenerate.
1643 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1645         * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Debugging
1646         Control): Adjust description of -gnatRj.
1647         * gnat_ugn.texi: Regenerate.
1648         * opt.ads (List_Representation_Info_To_JSON): Likewise.
1649         * repinfo.adb (List_Rep_Info): Do not automatically create a file
1650         if List_Representation_Info_To_JSON is true.
1651         * switch-c.adb (Scan_Front_End_Switches) <R>: Remove incompatibility
1652         check between -gnatRj and -gnatRs.
1653         * usage.adb (Usage): Adjust description of -gnatRj.
1655 2018-05-29  Pascal Obry  <obry@adacore.com>
1657         * libgnat/s-os_lib.adb (Normalize_Pathname): Fix handling of ".." in
1658         the root directory.
1660 2018-05-29  Pascal Obry  <obry@adacore.com>
1662         * libgnat/s-os_lib.adb: Minor reformatting.
1664 2018-05-29  Doug Rupp  <rupp@adacore.com>
1666         * libgnat/a-calend.adb (Epoch_Offset): Move from body to ...
1667         * libgnat/a-calend.ads (Epoch_Offset): to private part of spec
1668         * libgnat/a-calcon.ads (To_Unix_Nano_Time): New function spec.
1669         * libgnat/a-calcon.adb (To_Unix_Nano_Time): New function body.
1671 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1673         * repinfo.ads (JSON format): Document new pair for components.
1674         * repinfo.adb (Derived_Discriminant): New function.
1675         (List_Structural_Record_Layout): Add Outer_Ent parameter and pass it
1676         in recursive calls. If the record type is the parent of an extension,
1677         find and list the derived discriminant from the extension, if any.
1678         (List_Component_Layout): List the Discriminant_Number in JSON mode.
1679         (List_Record_Info): Adjust call to List_Structural_Record_Layout.
1681 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1683         * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical
1684         List of All Switches): Document -gnatRj.
1685         (Debugging Control): Likewise.
1686         * gnat_ugn.texi: Regenerate.
1687         * opt.ads (List_Representation_Info_To_JSON): New boolean variable.
1688         * osint-c.adb (Create_Repinfo_File): Use the .json instead of .rep
1689         extension if List_Representation_Info_To_JSON is true.
1690         * repinfo.ads: Document the JSON output format.
1691         * repinfo.adb (List_Location): New procedure.
1692         (List_Array_Info): Add support for JSON output.
1693         (List_Entities): Likewise.
1694         (Unop): Likewise.
1695         (Binop): Likewise.
1696         (Print_Expr): Likewise.
1697         (List_Linker_Section): Likewise.
1698         (List_Mechanisms): Likewise.
1699         (List_Name): Likewise.
1700         (List_Object_Info): Likewise.
1701         (List_Record_Info): Likewise.
1702         (List_Component_Layout): Likewise.  Add Indent parameter.
1703         (List_Structural_Record_Layout): New procedure.
1704         (List_Attr): Add support for JSON output.
1705         (List_Type_Info): Likewise.
1706         (Write_Unknown_Val): Likewise.
1707         * switch-c.adb (Scan_Front_End_Switches) <R>: Deal with 'j'.
1708         * usage.adb (Usage): List -gnatRj.
1710 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1712         * repinfo.adb (List_Component_Layout): New procedure extracted from...
1713         (List_Record_Layout): ...here.  Invoke it.
1715 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1717         * repinfo.adb (Write_Unknown_Val): New procedure.
1718         (List_GCC_Expression): Call it.
1719         (List_Record_Layout): Likewise.
1720         (Write_Val): Likewise.
1722 2018-05-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1724         * exp_ch4.adb (Expand_N_Op_Abs): Clear Do_Overflow_Check when inserting
1725         code to do check.
1727 2018-05-29  Arnaud Charlet  <charlet@adacore.com>
1729         * lib-writ.adb (Write_ALI): Do not use new function from s-casuti yet.
1730         This breaks build of cross compilers with older versions of GNAT, so
1731         better avoid it.
1733 2018-05-29  Doug Rupp  <rupp@adacore.com>
1735         * libgnarl/s-taprop.ads (Monotonic_Clock): Refine documentation to
1736         reflect reality.
1738 2018-05-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1740         * exp_ch4.adb (Expand_N_Op_Abs): Always do range check against 'First.
1742 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1744         * repinfo.adb (List_Entities): Do not list the Linker_Section for
1745         subprograms here...
1746         (List_Mechanisms): ...but here instead.  Use consistent name output
1747         and formatting conventions.
1749 2018-05-29  Bob Duff  <duff@adacore.com>
1751         * lib-writ.adb (Write_ALI): Cleanup: avoid use of global var; call new
1752         To_Lower function.
1753         * libgnat/s-casuti.ads, libgnat/s-casuti.adb (To_Upper, To_Lower,
1754         To_Mixed): New functions.
1755         * osint.adb: Cleanup: use Is_Directory_Separator, which correctly
1756         allows both '\' and '/' on Windows.
1758 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1760         * repinfo.ads: Minor fixes and tweaks in comments.
1762 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1764         * repinfo.adb (List_GCC_Expression): Remove Valop and replace calls to
1765         it with calls to Unop.
1767 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1769         * repinfo.ads (TCode): Adjust range.
1770         (Truth_Andif_Expr): Remove.
1771         (Truth_Orif_Expr): Likewise.
1772         (Truth_And_Expr .. Dynamic_Val): Adjust value.
1773         * repinfo.adb (Print_Expr): Remove handling of Truth_{And,Or}if_Expr.
1774         (Rep_Value): Likewise.
1775         * repinfo.h (Truth_Andif_Expr): Remove.
1776         (Truth_Orif_Expr): Likewise.
1777         (Truth_And_Expr .. Dynamic_Val): Adjust value.
1778         * gcc-interface/decl.c (annotate_value) <TRUTH_ANDIF_EXPR>: Fall
1779         through to TRUTH_AND_EXPR case.
1780         <TRUTH_ORIF_EXPR>: Fall through to TRUTH_OR_EXPR case.
1782 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1784         * exp_unst.adb (Visit_Node): For indexed components and attribute
1785         references, examine index expressions or associated expressions as well
1786         to record uplevel references.
1787         (Vist_Node): For function and procedure calls, if a formal is an
1788         unconstrained array and the actual is constrained, check whether bounds
1789         of actual have uplevel references.
1791 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1793         * einfo.ads, einfo.adb: Exceptions can be uplevel references, and thus
1794         they can appear as components of activation records.
1795         * exp_unst.adb (Visit_Node): A reference to an exception may be an
1796         uplevel reference.
1798 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1800         * exp_ch4.adb (Expand_Composite_Equality): Compute whether the size
1801         depends on a discriminant manually instead of using the predicate
1802         Size_Depends_On_Discriminant in the array type case.
1804 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1806         * exp_unst.adb (Check_Static_Type): For a record subtype, check
1807         discriminant constraints as well.
1808         (Visit_Node): For a selected component, check type of prefix, as is
1809         done for indexed components and slices.
1811 2018-05-28  Javier Miranda  <miranda@adacore.com>
1813         * exp_ch4.adb (Real_Range_Check): Add a temporary to store the integer
1814         value when converting a float value to a fixed-point value. This is
1815         required for CCG because it handles fixed-point types by means of
1816         unsigned integer type variables. The range check is now performed using
1817         the integer value stored in this temporary.
1819 2018-05-28  Yannick Moy  <moy@adacore.com>
1821         * sem_util.adb (Is_OK_Volatile_Context): Add attributes First, Last and
1822         Length as valid non-interfering contexts for SPARK.
1824 2018-05-28  Claire Dross  <dross@adacore.com>
1826         * sem_disp.ads, sem_disp.adb (Inheritance_Utilities): Package for
1827         generic inheritance utilities.
1828         (Generic_Inherited_Subprograms): Generic version of
1829         Inherited_Subprograms, generic in Find_Dispatching_Type function.
1830         (Generic_Is_Overriding_Subprogram): Generic version of
1831         Is_Overriding_Subprogram, generic in Find_Dispatching_Type function.
1832         (Inherited_Subprograms): Instance of Generic_Inherited_Subprograms with
1833         Sem_Disp.Find_Dispatching_Type.
1834         (Is_Overriding_Subprogram): Instance of
1835         Generic_Is_Overriding_Subprogram with Sem_Disp.Find_Dispatching_Type.
1836         (Inheritance_Utilities_Inst): Instance of Inheritance_Utilities
1837         with Sem_Disp.Find_Dispatching_Type.
1839 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1841         * exp_ch4.adb (Expand_Composite_Equality): For a composite (or FP)
1842         component type, do not expand array equality using the unconstrained
1843         base type, except for the case where the bounds of the type depend on a
1844         discriminant.
1846 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1848         * einfo.ads, einfo.adb (Needs_Activation_Record): New flag on
1849         access-to-subprogram types, to indicate that an indirect call through
1850         such a type requires an activation record when compiling for LLVM.
1851         * sem_ch3.adb (Access_Subprogram_Declaration): Set new flag as needed.
1853 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1855         * exp_ch4.adb (Real_Range_Check): Specialize float-to-fixed conversions
1856         when bounds of fixed type are static, to remove some spuerfluous
1857         implicit conversions and provide an accurate result when converting
1858         back and forth between the fixed point type and a floating point type.
1860 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1862         * exp_unst.adb (Unnest_Subprogram): Prevent creation of empty
1863         activation records.
1865 2018-05-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1867         * exp_unst.adb (Check_Static_Type): Add argument to indicate node to be
1868         replaced, if any; all callers changed.
1869         (Note_Uplevel_Ref): Likewise.  Also replace reference to deferred
1870         constant with private view so we take the address of that entity.
1871         (Note_Uplevel_Bound): Add argument to indicate node to be replaced, if
1872         any; all callers changed.  Handle N_Indexed_Component like
1873         N_Attribute_Reference.  Add N_Type_Conversion case.
1874         (Visit_Node): Indexed references can be uplevel if the type isn't
1875         static.
1876         (Unnest_Subprograms): Don't rewrite if no reference given.  If call has
1877         been relocated, set first_named pointer in original node as well.
1879 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1881         * exp_aggr.adb (Flatten): Copy tree of expression in a component
1882         association with a range or a set of discrete choices, rather than
1883         relocating the node. This avoids inconsistencies in the tree when
1884         handling nested subprograms with uplevel references for LLVM.
1886 2018-05-28  Arnaud Charlet  <charlet@adacore.com>
1888         * exp_util.adb (Possible_Bit_Aligned_Component): Always return False in
1889         codepeer mode.
1891 2018-05-28  Arnaud Charlet  <charlet@adacore.com>
1893         * exp_unst.adb: Fix typo.
1895 2018-05-28  Bob Duff  <duff@adacore.com>
1897         * libgnat/a-convec.adb (Query_Element): Minor cleanup: remove an
1898         unnecessary use of 'Unrestricted_Access.
1900 2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
1902         * repinfo.adb (Expr_Value_S): New routine.
1903         (List_Linker_Section): Properly extract the value of the section
1904         argument.
1906 2018-05-28  Patrick Bernardi  <bernardi@adacore.com>
1908         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update the
1909         description of the -D binder switch to reflect current usage.
1910         * gnat_ugn.texi: Regenerate.
1912 2018-05-28  Gary Dismukes  <dismukes@adacore.com>
1914         * exp_ch3.adb: Minor reformatting
1916 2018-05-28  Justin Squirek  <squirek@adacore.com>
1918         * exp_ch3.adb
1919         (Build_Initialization_Call): Add logic to pass the appropriate actual to match
1920          new formal.
1921         (Init_Formals): Add new formal *_skip_null_excluding_check
1922         * exp_util.adb, exp_util.ads
1923         (Enclosing_Init_Proc): Added to fetch the enclosing Init_Proc from the current
1924          scope.
1925         (Inside_Init_Proc): Refactored to use Enclosing_Init_Proc
1926         (Needs_Conditional_Null_Excluding_Check): Added to factorize the predicate
1927          used to determine how to generate an Init_Proc for a given type.
1928         (Needs_Constant_Address): Minor reformatting
1929         * sem_res.adb
1930         (Resolve_Null): Add logic to generate a conditional check in certain cases
1932 2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
1934         * exp_aggr.adb, gnatlink.adb, sem_ch6.adb, sem_res.adb, sem_util.adb:
1935         Minor reformatting.
1937 2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
1939         * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Include
1940         the declarations of single concurrent types because they fall in the
1941         category of full type and object declarations.
1943 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1945         * repinfo.adb (Compute_Max_Length): Skip _Parent component.
1946         (List_Record_Layout): Likewise.
1948 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1950         * sem_util.adb (Is_Function_Result): Add a warning if a postcondition
1951         includes a call to function to which it applies. This may mean an
1952         omission of an attribute reference 'Result, in particular if the
1953         function is pqrameterless.
1955 2018-05-28  Justin Squirek  <squirek@adacore.com>
1957         * sem_ch8.adb (Find_Expanded_Name): Add extra guard to make sure the
1958         misresolved package name is not a case of mistaken identity.
1960 2018-05-28  Yannick Moy  <moy@adacore.com>
1962         * sem_res.adb (Resolve_Range): Re-resolve the low bound of a range in
1963         GNATprove mode, as the order of resolution (low then high) means that
1964         all the information is not available when resolving the low bound the
1965         first time.
1967 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1969         * repinfo.adb (List_Array_Info): Start with an explicit blank line and
1970         end with the linker section, if any.
1971         (List_Entities): Do not output the linker section for record types,
1972         array types and variables.
1973         (Print_Expr): Factor out common processing for unary operators and
1974         special values.  Adjust and reorder the various cases.
1975         (List_Object_Info): End with the linker section, if any.
1976         (List_Record_Info): Likewise.
1977         (List_Type_Info): Do not start with a blank line.
1979 2018-05-25  Nicolas Roche  <roche@adacore.com>
1981         * libgnat/s-valrea.adb (Scan_Real): Abort computation once it is sure
1982         that the result will be either -infinite or +infinite.
1984 2018-05-25  Patrick Bernardi  <bernardi@adacore.com>
1986         * libgnat/s-parame.ads, libgnat/s-parame__vxworks.ads,
1987         libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads (Size_Type):
1988         Expand range of type to match the address space of the target.
1989         (Task_Storage_Size): Remove unused type.
1991 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
1993         * sem_res.adb (Set_Mixed_Mode_Operand): If the operand is an expression
1994         of a fixed point type and the parent is a multiplying operation,
1995         resolve the operand with its own type because the context will impose a
1996         resulting type on the result of the multiplication by means of
1997         approriate conversion.
1999 2018-05-25  Hristian Kirtchev  <kirtchev@adacore.com>
2001         * exp_ch3.adb (Default_Initialize_Object): Ensure that the analysis of
2002         the in-place initialization aggregate created for pragmas
2003         Initialize_Scalars or Normalize_Scalars is performed with checks
2004         suppressed.
2006 2018-05-25  Arnaud Charlet  <charlet@adacore.com>
2008         * exp_aggr.adb (Convert_To_Positional): Bump default for
2009         Max_Others_Replicate to 32. Update comments.
2010         * osint.ads (Unknown_Attributes): No longer pretend this is a constant.
2011         (No_File_Info_Cache): Initialize separately.
2012         * osint.adb (No_File_Info_Cache): Update initializer.
2014 2018-05-25  Javier Miranda  <miranda@adacore.com>
2016         * sem_res.adb (Resolve_Membership_Op): Allow the use of the membership
2017         test when the left operand is a class-wide interface and the right
2018         operand is not a class-wide type.
2019         * exp_ch4.adb (Tagged_Membership): Adding support for interface as the
2020         left operand.
2022 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
2024         * exp_aggr.adb (Flatten): A quantified expression cannot be duplicated
2025         in an others clause to prevent visibility issues with the generated
2026         loop variable.
2027         (Component_OK_For_Backend): Return false for a quantified expression.
2028         (Check_Static_Component): Ditto.
2030 2018-05-25  Hristian Kirtchev  <kirtchev@adacore.com>
2032         * libgnat/s-secsta.adb (SS_Allocate): Reimplemented.
2033         (SS_Allocate_Dynamic): New routine. The allocation logic is now split
2034         into three distring cases rather than in one loop which attempts to
2035         handle all three cases. This rewrite eliminates an issue where the last
2036         frame of the stack cannot be freed, thus causing the memory range of a
2037         new frame to approach the overflow point of the memory index type.
2038         Since the overflow is logically treated as a
2039         too-much-memory-on-the-stack scenario, it causes a bogus Storage_Error.
2040         (SS_Allocate_Static): New routine. The routine factorizes the static
2041         secondary stack-related code from the former SS_Allocate.
2043 2018-05-25  Sergey Rybin  <rybin@adacore.com>
2045         * doc/gnat_ugn/gnat_and_program_execution.rst: Add description of '-U'
2046         option for gnatelim.
2048 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
2050         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not create
2051         Class_Wide_Clone_Body when analyzing a subprogram_body_stub: the clone
2052         is created when the proper body of the stub is analyzed.
2053         * sem_util.adb (ZBuild_Class_Wide_Clone_Body): If the subprogram body
2054         is the proper body of a subunit, the cloned body must be inserted in
2055         the declarative list that contains the stub.
2057 2018-05-25  Justin Squirek  <squirek@adacore.com>
2059         * exp_ch6.adb (Expand_Simple_Function_Return): Add guard in check to
2060         generate code for 6.5(8-10) so that we don't get an assertion error
2061         when dealing with an incomplete return type.
2063 2018-05-25  Arnaud Charlet  <charlet@adacore.com>
2065         * pprint.adb (Expression_Name): Strip too long expressions to avoid
2066         carrying very large strings.
2068 2018-05-25  Patrick Bernardi  <bernardi@adacore.com>
2070         * switch-b.adb (Scan_Binder_Switches): binder switch -Q accepts Natural
2071         numbers.
2073 2018-05-25  Doug Rupp  <rupp@adacore.com>
2075         * tracebak.c (aarch64-linux): Implement.
2077 2018-05-25  Justin Squirek  <squirek@adacore.com>
2079         * sem_ch8.adb: Minor reformatting.
2081 2018-05-25  Piotr Trojanek  <trojanek@adacore.com>
2083         * sem_util.adb (Iterate_Call_Parameters): Fix code convention and
2084         assertions.
2086 2018-05-25  Hristian Kirtchev  <kirtchev@adacore.com>
2088         * einfo.adb, einfo.ads, exp_ch3.adb, exp_ch8.adb, exp_unst.adb,
2089         pprint.adb, sem_ch12.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb:
2090         Minor reformatting.
2092 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
2094         * sem_ch12.adb (Instance_Exists): New function, subsidiary of
2095         Validate_Derived_Type_Instance, to verify that all interfaces
2096         implemented by the formal type are also implemented by the actual. The
2097         verification is complicated when an interface of the formal is declared
2098         in a generic unit and the actual is declared in an instance of it.
2099         There is currently no mechanism to relate an interface declared within
2100         a generic to the corresponding interface in an instance, so we must
2101         traverse the list of interfaces of the actual, looking for a name
2102         match, and verifying that that interface is declared in an instance.
2104 2018-05-25  Piotr Trojanek  <trojanek@adacore.com>
2106         * sem_util.adb (Iterate_Call_Parameters): Rewrite with extra
2107         assertions; replace function versions of Next_Formal/Next_Actual with
2108         their procedural versions (which are more concise).
2110 2018-05-25  Doug Rupp  <rupp@adacore.com>
2112         * libgnarl/s-osinte__aix.ads, libgnarl/s-osinte__android.ads,
2113         libgnarl/s-osinte__darwin.ads, libgnarl/s-osinte__freebsd.ads,
2114         libgnarl/s-osinte__hpux.ads, libgnarl/s-osinte__kfreebsd-gnu.ads,
2115         libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178e.ads,
2116         libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.ads
2117         (Relative_Timed_Wait): Remove.
2118         * libgnarl/s-tpopmo.adb (Timed_Sleep, Timed_Delay): Rewrite to allow
2119         for incremental looping. Remove references to Rel_Time and
2120         Relative_Timed_Wait.
2121         * libgnat/s-osprim__posix.adb, libgnat/s-osprim__posix2008.adb
2122         (Timed_Delay): Make separate.
2123         * libgnat/s-optide.adb: New separate procedure.
2124         * libgnat/s-osprim.ads (Max_System_Delay): New constant.
2125         * libgnat/s-osprim__lynxos.ads (Max_Sensible_Delay): Set to 6 months.
2126         (Max_System_Delay): New constant.
2128 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
2130         * sem_ch12.adb (Validate_Derived_Type_Instance): Verify that the actual
2131         for a formal derived type implements all the interfaces declared for
2132         the formal.
2134 2018-05-25  Yannick Moy  <moy@adacore.com>
2136         * sem_prag.adb (Check_Applicable_Policy): Deal specially with CodePeer
2137         and GNATprove modes when applicable policy is Ignore.
2139 2018-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2141         * freeze.adb (Freeze_Enumeration_Type): Do not give integer size to a
2142         boolean type with convention C.
2143         * libgnat/i-cexten.ads (bool): Change to boolean with convention C.
2144         * gcc-interface/decl.c (gnat_to_gnu_entity): Add new local variable
2145         FOREIGN and use it throughout the function.
2146         <E_Enumeration_Type>: Set precision 1 on boolean types with foreign
2147         convention.
2148         <E_Enumeration_Subtype>: Likewise for subtypes.
2149         <E_Record_Type>: Force the size of a storage unit on empty classes.
2150         * gcc-interface/utils.c (make_type_from_size) <BOOLEAN_TYPE>: Skip
2151         boolean types with precision 1 if the size is the expected one.
2153 2018-05-25  Arnaud Charlet  <charlet@adacore.com>
2155         * pprint.adb (Expression_Name): Do not print non ASCII characters.
2157 2018-05-25  Bob Duff  <duff@adacore.com>
2159         * libgnat/a-strunb__shared.ads, libgnat/a-stwiun__shared.ads,
2160         libgnat/a-stzunb__shared.ads: (Initialize, Adjust): Add pragma Inline.
2162 2018-05-25  Bob Duff  <duff@adacore.com>
2164         * sem_util.ads: Minor comment fix.
2166 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
2168         * exp_unst.adb (Visit_Node): Restrict check for uplevel references in
2169         prefixes of array attributes, to prefixes that are entity names whose
2170         type is constrained.
2171         (Note_Uplevel_Bound): Verify that the bound is declared in an enclosing
2172         subprogram, as itype created for loops in pre/postcondition may appear
2173         in loops at the library level.
2175 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
2177         * sem_ch13.adb (Build_Predicate_Functions): The predicate function
2178         declaration is inserted into the tree and analyzed at that point, so
2179         should not be reinserted when the body is constructed. Inside a
2180         generic, ensure that the body is not inserted twice in the tree.
2182 2018-05-25  Yannick Moy  <moy@adacore.com>
2184         * sem_prag.adb (Check_Grouping): Modify test to ignore statements and
2185         declarations not coming from source.
2187 2018-05-25  Fedor Rybin  <frybin@adacore.com>
2189         * doc/gnat_ugn/gnat_utility_programs.rst: Document new switch
2190         --copy-environment for gnattest.
2192 2018-05-24  Piotr Trojanek  <trojanek@adacore.com>
2194         * sem_elab.adb (Non_Private_View): Simplify by removing a local Result
2195         variable.
2196         * sem_prag.adb (Get_Base_Subprogram): Same as above.
2198 2018-05-24  Eric Botcazou  <ebotcazou@adacore.com>
2200         * fe.h (Set_Normalized_First_Bit): Declare.
2201         (Set_Normalized_Position): Likewise.
2202         * repinfo.adb (List_Record_Layout): Do not use irregular output for a
2203         variable position.  Fix minor spacing issue.
2204         * gcc-interface/decl.c (annotate_rep): If a field has a variable
2205         offset, compute the normalized position and annotate it in addition to
2206         the bit offset.
2208 2018-05-24  Eric Botcazou  <ebotcazou@adacore.com>
2210         * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
2211         Constify and rename variables.  Fix formatting.
2212         (gnat_to_gnu) <N_Exception_Handler>: Minor tweak.
2213         <N_Raise_Statement>: Likewise.
2215 2018-05-24  Javier Miranda  <miranda@adacore.com>
2217         * exp_ch8.adb (Build_Body_For_Renaming): Adding support to build the
2218         body of a variant record equality renaming.
2219         (Expand_N_Subprogram_Renaming_Declaration): Adapt the code to the new
2220         implementation of Build_Body_For_Renaming.
2221         * exp_ch3.ads (Build_Variant_Record_Equality): New library level
2222         function that factorizes the functionality needed by
2223         Build_Body_For_Renaming and Expand_Freeze_Record_Type to build the body
2224         of a variant record equality subprogram.
2225         * exp_ch3.adb (Build_Variant_Record_Equality): New subprogram.
2226         (Build_Variant_Record_Equality): New local procedure of
2227         Expand_Freeze_Record_Type containing all the code specific for freezing
2228         the record type that cannot be place in the new library level function.
2230 2018-05-24  Ed Schonberg  <schonberg@adacore.com>
2232         * einfo.ads, einfo.adb (Is_Activation_Record): New flag on
2233         in_parameters, used when unesting subprograms for LLVM, to indicate
2234         that a generated parameter carries the activation record from the
2235         enclosing subprogram.
2236         * exp_unst.adb (Check_Static_Type): Handle array attributes of types
2237         whose bounds may contain up-level references that need to be added to
2238         an activation recoord.
2239         (Add_Extra_Formal): Set Is_Activation_Record on new formal.
2241 2018-05-24  Yannick Moy  <moy@adacore.com>
2243         * pprint.adb (Expression_Image): Improve the printing of expressions,
2244         by taking more cases into account, in particular qualified expressions
2245         and aggregates.  Also count more the number of parentheses to close
2246         after the expression.
2248 2018-05-24  Javier Miranda  <miranda@adacore.com>
2250         * sem_ch3.adb (Is_Visible_Component): For untagged types add missing
2251         check for renamed discriminants.
2252         * sem_ch4.adb (Analyze_Overloaded_Selected_Component,
2253         Analyze_Selected_Component, Check_Misspelled_Selector): For calls to
2254         Is_Visible_Component pass the associated selector node to allow
2255         checking renamed discriminants on untagged types.
2257 2018-05-24  Ed Schonberg  <schonberg@adacore.com>
2259         * sem_ch8.adb (Analyze_Use_Type): Do not assign the Prev_Use_Clause
2260         link to a use_type clause if this would cause an infinite loop in the
2261         machinery that detects redundant use clauses. This may happen when the
2262         redundant clauses appear in the context of a child unit and the context
2263         of its parent.
2265 2018-05-24  Piotr Trojanek  <trojanek@adacore.com>
2267         * sinfo.ads: Fix grammar in comment.
2269 2018-05-24  Justin Squirek  <squirek@adacore.com>
2271         * einfo.ads, einfo.adb (Append_Entity): Modified to use Link_Entities
2272         and manage doubly-linked entity chain.
2273         (Nested_Scenarios): Removed entity field used for optimization during
2274          elaboration to make room for the new field Prev_Entity.
2275         (Link_Entities): Added to replace redundant calls to Set_Next_Entity
2276         and Set_Prev_Entity as well as centralize changes to the entity chain.
2277         (Predicated_Parent): Modified to use Node38.
2278         (Prev_Entity): Added to fetch new node field Prev_Entity in all entity
2279         types.
2280         (Remove_Entity): Moved from sem_util.
2281         (Set_Nested_Scenarios): Deleted.
2282         (Set_Predicated_Parent): Modified to use Node38.
2283         (Set_Prev_Entity): Added to set Prev_Entity field.
2284         (Set_Validated_Object): Modified to use Node38.
2285         (Unlink_Next_Entity): Added to process Prev_Entity when an unlinking
2286         action is required.
2287         (Validated_Object): Modified to use Node38.
2288         (Write_Field36_Name): Remove Nested_Scenarios, Validated_Object, and
2289         predicated parent cases.
2290         (Write_Field38_Name): Add predicated parent and Validated_Object cases.
2291         * sem_ch3.adb (Process_Subtype): Add guard to protect against
2292         inappropriate marking of Predicated_Parent to non-itype subtypes.
2293         (Make_Class_Wide_Type): Preserve Prev_Entity field and set in new type.
2294         (Copy_And_Swap): Add setting of Prev_Entity.
2295         (Build_derived_Record_Type): Replace Set_Next_Entity w/ Link_Entities.
2296         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Replace Set_Next_Entity
2297         w/ Link_Entities.
2298         (New_Overloaded_Entity): Remove block created to search for previous
2299         entities in the entity chain with relevant calls to Prev_Entity as well
2300         as replace duplicated code from Remove_Entity_And_Homonym with a call
2301         to that subprogram.
2302         * sem_ch7.adb (Exchange_Declarations): Replace Set_Next_Entity w/
2303         Link_Entities.
2304         * sem_elab.adb (Find_And_Process_Nested_Scenarios): Remove global and
2305         initial subprogram declarations related to Nested_Scenarios.
2306         (Process_Nested_Scenarios): Deleted.
2307         (Save_Scenario): Deleted.
2308         (Traverse_Body): Remove optimization for Nested_Scenarios so as to free
2309         node space in the entity tree.
2310         * sem_util.adb, sem_util.ads (Remove_Entity): Moved to einfo.
2311         (Remove_Entity_And_Homonym): Added to separate functionality of
2312         Remove_Entity from the homonym chain directly.
2313         * exp_attr.adb (Expand_N_Attribute_Reference): Replace Set_Next_Entity
2314         w/ Link_Entities and Unlink_Next_Entity.
2315         * exp_ch3.adb (Expand_N_Object_Declaration): Replace Set_Next_Entity w/
2316         Link_Entities.
2317         * exp_ch6.adb (Replace_Renaming_Declaration_Id): Replace
2318         Set_Next_Entity w/ Link_Entities.
2319         * exp_disp.adb (Expand_Dispatching_Call): Replace Set_Next_Entity w/
2320         Link_Entities and Unlink_Next_Entity.
2321         * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): Replace
2322         call to Remove_Entity with its new incarnation.
2323         * exp_util.adb (New_Class_Wide_Subtype): Add setting of Prev_Entity.
2324         * freeze.adb (Freeze_Record_Type): Replace Set_Next_Entity w/
2325         Link_Entities.
2327 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2329         * sem_ch10.adb (Expand_Limited_With_Clause): Update the call to
2330         Install_Limited_Withed_Unit.
2331         (Expand_With_Clause): Update the call to Install_Withed_Unit.
2332         (Implicit_With_On_Parent): Update the call to Install_Withed_Unit.
2333         (Install_Context_Clauses): Update the call to Install_Withed_Unit.
2334         (Install_Limited_Context_Clauses): Update the calls to
2335          Install_Limited_Withed_Unit.
2336         (Install_Limited_Withed_Unit): Renamed to better illustrate its
2337         purpose.
2338         (Install_Private_With_Clauses): Update the calls to Install_Withed_Unit
2339         and Install_Limited_Withed_Unit.
2340         (Install_With_Clause): Uninstall a limited with clause if a [private]
2341         with clause is given for the same package.
2342         (Install_Withed_Unit): Renamed to better illustrate its purpose.
2343         (Remove_Limited_With_Unit): New routine.
2345 2018-05-24  Eric Botcazou  <ebotcazou@adacore.com>
2347         * raise-gcc.c (__gnat_SEH_error_handler): Remove prototype.
2348         (__gnat_personality_seh0): Adjust and beef up comments, and
2349         fix formatting throughout.
2350         (__gnat_adjust_context): Deal minimally with version 2.
2351         * seh_init.c (__gnat_map_SEH): Fix formatting.
2352         (_gnat_SEH_error_handler): Adjust comments.
2353         (__gnat_install_SEH_handler): Fix formatting.
2355 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2357         * exp_ch7.adb, sem_ch3.adb, sem_res.adb: Minor reformatting.
2359 2018-05-24  Ed Schonberg  <schonberg@adacore.com>
2361         * exp_aggr.adb (Flatten): Add a warning on an others clause in an array
2362         aggregate with static bounds when named associations cover all index
2363         positions and the others clause is redundant.
2365 2018-05-24  Raphael Amiard  <amiard@adacore.com>
2367         * libgnat/a-cohama.ads: Add documentation.
2369 2018-05-24  Raphael Amiard  <amiard@adacore.com>
2371         * libgnat/a-convec.ads: Add documentation.
2373 2018-05-24  Justin Squirek  <squirek@adacore.com>
2375         * exp_ch3.adb (Expand_N_Object_Declaration): Ignore raising an error in
2376         expansion for limited tagged types when the node to be expanded is a
2377         raise expression due to it not representing a valid object.
2378         * exp_ch5.adb (Expand_N_Assignment_Statement): Add exception to error
2379         message regarding assignments to limited types to ignore genereated
2380         code.
2382 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2384         * exp_util.adb (New_Class_Wide_Subtype): Capture and restore relevant
2385         Ghost-related attributes of the class-wide subtype because the copy
2386         clobbers them.
2388 2018-05-24  Justin Squirek  <squirek@adacore.com>
2390         * sem_res.adb (Resolve_Entity_Name): Add guard to protect against
2391         marking use clauses as effective when the reference appears within
2392         generated code.
2394 2018-05-24  Cyrille Comar  <comar@adacore.com>
2396         * doc/gnat_rm/the_gnat_library.rst: Fix typos.
2397         * gnat_rm.texi: Regenerate.
2399 2018-05-24  Bob Duff  <duff@adacore.com>
2401         * exp_ch7.adb (Expand_Cleanup_Actions): Create a mark unconditionally
2402         for build-in-place functions with a caller-unknown-size result.
2403         (Create_Finalizer): For build-in-place functions with a
2404         caller-unknown-size result, check at run time whether we need to
2405         release the secondary stack.
2407 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2409         * sem_prag.adb (Analyze_Pragma): Use the full view of an internally
2410         generated incomplete type.
2412 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2414         * expander.adb (Expand): Update the save and restore of the Ghost
2415         region.
2416         * exp_ch3.adb (Freeze_Type): Likewise.
2417         * exp_disp.adb (Make_DT): Likewise.
2418         * exp_util.adb (Build_DIC_Procedure_Body): Likewise.
2419         (Build_DIC_Procedure_Declaration): Likewise.
2420         (Build_Invariant_Procedure_Body): Likewise.
2421         (Build_Invariant_Procedure_Declaration): Likewise.
2422         (Make_Predicate_Call): Likewise.
2423         * freeze.adb (Add_To_Result): Insert the freeze action of a living
2424         entity prior to the start of the enclosing ignored Ghost region.
2425         (Freeze_Entity): Update the save and restore of the Ghost region.
2426         * ghost.adb (Install_Ghost_Mode): Reimplemented.
2427         (Install_Ghost_Region): New routine.
2428         (Mark_And_Set_Ghost_Assignment): Install a region rather than a mode.
2429         (Mark_And_Set_Ghost_Body): Likewise.
2430         (Mark_And_Set_Ghost_Completion): Likewise.
2431         (Mark_And_Set_Ghost_Declaration): Likewise.
2432         (Mark_And_Set_Ghost_Instantiation): Likewise.
2433         (Mark_And_Set_Ghost_Procedure_Call): Likewise.
2434         (Name_To_Ghost_Mode): New routine.
2435         (Restore_Ghost_Region): New routine.
2436         * ghost.ads (Install_Ghost_Region): New routine.
2437         (Restore_Ghost_Region): New routine.
2438         * opt.ads: Add new global variable Ignored_Ghost_Region.
2439         * rtsfind.adb (Load_RTU): Update the save and restore of the Ghost
2440         region. Install a clean region.
2441         * sem.adb (Analyze): Likewise.
2442         (Do_Analyze): Likewise.
2443         * sem_ch3.adb (Analyze_Object_Declaration): Likewise
2444         (Derive_Progenitor_Subprograms): Use local variable Iface_Alias to
2445         capture the ultimate alias of the current primitive.
2446         (Process_Full_View): Update the save and restore of the Ghost region.
2447         Do not inherit DIC and invariant procedures.
2448         * sem_ch5.adb (Analyze_Assignment): Update the save and restore of the
2449         Ghost region.
2450         * sem_ch6.adb (Analyze_Procedure_Call): Likewise.
2451         (Analyze_Subprogram_Body_Helper): Likewise.
2452         * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise.
2453         * sem_ch12.adb (Analyze_Package_Instantiation): Likewise.
2454         (Analyze_Subprogram_Instantiation): Likewise.
2455         (Instantiate_Package_Body): Likewise.
2456         (Instantiate_Subprogram_Body): Likewise.
2457         * sem_ch13.adb (Build_Predicate_Functions): Likewise.
2458         (Build_Predicate_Function_Declaration): Likewise.
2459         * sem_disp.adb
2460         (Add_Dispatching_Operation): Do not consider DIC and invariant
2461         procedures.
2462         (Check_Dispatching_Operation): Use Add_Dispatching_Operation to collect
2463         a dispatching subprogram.
2464         (Check_Operation_From_Private_View): Likewise.
2465         (Override_Dispatching_Operation): Likewise.
2466         * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Update the save
2467         and restore of the Ghost region.
2468         (Analyze_Initial_Condition_In_Decl_Part): Likewise.
2469         (Analyze_Pragma): Update the save and restore of the Ghost region.
2470         (Analyze_Pre_Post_Condition_In_Decl_Part): Likewise.
2471         * sem_util.adb (Is_Suitable_Primitive): New routine.
2472         * sem_util.ads (Is_Suitable_Primitive): New routine.
2473         * sinfo.ads: Update the section of Ghost regions.
2475 2018-05-24  Piotr Trojanek  <trojanek@adacore.com>
2477         * doc/gnat_rm/implementation_defined_pragmas.rst (Contract_Cases):
2478         Change "condition" to "case guard" after renaming in the contract
2479         grammar.
2480         * gnat_rm.texi: Regenerate.
2482 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2484         * exp_util.adb (Expand_Static_Predicates_In_Choices): Indicate that the
2485         construct with discrete choices no longer contains a subtype with
2486         predicates since the expansion already handled this case.
2488 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2490         * freeze.adb (Wrap_Imported_Subprogram): Generate an unchecked
2491         conversion to the return type to avoid a side effect where an imported
2492         relocated function generates a new anonymous access type, whose
2493         accessibility level does not agree with with that of the wrapper.
2495 2018-05-24  Javier Miranda  <miranda@adacore.com>
2497         * sem_util.adb (Abstract_Interface_List): Add missing support for
2498         private types whose full view is a synchronized type.
2499         * sem_ch3.adb (Build_Derived_Private_Type): Skip building the full
2500         derivation of a private type parent type is a task type with
2501         discriminants as gigi does not use such type directly.
2503 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2505         * sem_elab.adb (Build_Variable_Reference_Marker): Do not create a
2506         variable marker when the reference appears in the formal part of a
2507         compilation unit instance because there is no place to insert it.
2508         (In_Compilation_Instance_Formal_Part): New routine.
2510 2018-05-24  Piotr Trojanek  <trojanek@adacore.com>
2512         * layout.ads, repinfo.ads: Fix references to renamed Backend_Layout
2513         configuration parameter.
2515 2018-05-24  Doug Rupp  <rupp@adacore.com>
2517         * argv-lynxos178-raven-cert.c: New file.
2518         * libgnat/system-lynxos178-x86.ads: New file.
2520 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2522         * exp_disp.adb, freeze.adb, gnat1drv.adb, sem_ch5.adb, sem_spark.adb:
2523         Minor reformattings.
2525 2018-05-23  Pascal Obry  <obry@adacore.com>
2527         * adaint.c (win32_wait): Properly free the handle/pid lists when
2528         WaitForMultipleObjects fails (return WAIT_FAILED).
2530 2018-05-23  Pascal Obry  <obry@adacore.com>
2532         * adaint.c (win32_wait): Add missing parentheses.
2534 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2536         * exp_ch3.adb (Check_Large_Modular_Array): Moved to Freeze.
2537         (Expand_N_Object_Declaration): Do not check for a large modular array
2538         here.
2539         * freeze.adb (Check_Large_Modular_Array): Moved from Exp_Ch3.
2540         (Freeze_Object_Declaration): Code cleanup. Check for a large modular
2541         array.
2542         * sem_ch3.adb: Minor reformatting.
2544 2018-05-23  Ed Schonberg  <schonberg@adacore.com>
2546         * einfo.ads: New attribute on types: Predicated_Parent, to simplify the
2547         retrieval of the applicable predicate function to an itype created for
2548         a constrained array component.
2549         * einfo.adb: Subprograms for Predicated_Parent.
2550         (Predicate_Function): Use new attribute.
2551         * exp_util.adb (Make_Predicate_Call): If the predicate function is not
2552         available for a subtype, retrieve it from the base type, which may have
2553         been frozen after the subtype declaration and not captured by the
2554         subtype declaration.
2555         * sem_aggr.adb (Resolve_Array_Aggregate): An Others association is
2556         legal within a generated initiqlization procedure, as may happen with a
2557         predicate check on a component, when the predicate function applies to
2558         the base type of the component.
2559         * sem_ch3.adb (Analyze_Subtype_Declaration): Clean up inheritance of
2560         predicates for subtype declarations and for subtype indications in
2561         other contexts.
2562         (Process_Subtype): Likewise. Handle properly the case of a private type
2563         with unknown discriminants whose full view is an unconstrained array.
2564         Use Predicated_Parent to indicate source of predicate function on an
2565         itype whose parent is itself an itype.
2566         (Complete_Private_Subtype): If the private view has unknown
2567         discriminants and the full view is an unconstrained array, set base
2568         type of completion to the full view of parent.
2569         (Inherit_Predicate_Flags): Prevent double assignment of predicate
2570         function and flags.
2571         (Build_Subtype): For a constrained array component, propagate predicate
2572         information from original component type declaration.
2574 2018-05-23  Boris Yakobowski  <yakobowski@adacore.com>
2576         * libgnat/a-ngelfu.ads (Arctanh, Arccoth): Fix faulty preconditions.
2578 2018-05-23  Arnaud Charlet  <charlet@adacore.com>
2580         * checks.adb (Minimize_Eliminate_Overflows): Default initialize Lo and
2581         Hi.
2582         * sem_elab.adb: Make "out" parameters instead of "in out" when
2583         relevant.
2585 2018-05-23  Bob Duff  <duff@adacore.com>
2587         * gnatbind.adb (List_Applicable_Restrictions): Add
2588         No_Implementation_Restrictions to the list of restrictions not to list.
2589         Remove double negative "not No_Restriction_List".  Comment the
2590         commentary that is output, so it won't cause errors if used directly in
2591         a gnat.adc.
2593 2018-05-23  Ed Schonberg  <schonberg@adacore.com>
2595         * sem_prag.adb (Inherit_Class_Wide_Pre): Refine legality check on
2596         class-wide precondition on a type extension when ancestor does not have
2597         a class-wide precondition.  Previously the compiler accepted such a
2598         precondition when the ancestor had a class-wide postcondition.
2600 2018-05-23  Javier Miranda  <miranda@adacore.com>
2602         * sem_attr.adb (Valid_Scalars): Do not invoke Error_Attr_P to report
2603         the warning on occurrences of this attribute whose evaluation is always
2604         true (since that subprogram aborts processing the attribute). In
2605         addition, replace the node by its boolean result 'True' (required
2606         because the backend has no knowledge of this attribute).
2608 2018-05-23  Bob Duff  <duff@adacore.com>
2610         * libgnat/a-convec.adb: (Insert, Insert_Space): Suppress warnings. The
2611         code in question is not reachable in the case where Count_Type'Last is
2612         out of range.
2614 2018-05-23  Yannick Moy  <moy@adacore.com>
2616         * doc/gnat_rm/implementation_defined_pragmas.rst: Clarify meaning of
2617         local pragma Warnings Off without On.
2618         * gnat_rm.texi: Regenerate.
2620 2018-05-23  Olivier Hainque  <hainque@adacore.com>
2622         * libgnat/g-excact.ads (Is_Foreign_Exception): New predicate.
2623         * libgnat/g-excact.adb: Implement.
2625 2018-05-23  Ed Schonberg  <schonberg@adacore.com>
2627         * sem_ch5.adb (Analyze_Iterator_Specification): If a subtype indication
2628         is present, verify its legality when the domain of iteration is a
2629         GNAT-specific formal container, as is already done for arrays and
2630         predefined containers.
2632 2018-05-23  Yannick Moy  <moy@adacore.com>
2634         * sem_util.adb (Enclosing_Declaration): Fix the case of a named number
2635         declaration, which was not taken into account.
2637 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2639         * debug.adb: Switch -gnatd_s is now used to stop elaboration checks on
2640         synchronized suspension.
2641         * rtsfind.ads: Add entries for units Ada.Synchronous_Barriers and
2642         Ada.Synchronous_Task_Control and routines Suspend_Until_True and
2643         Wait_For_Release.
2644         * sem_elab.adb: Document switch -gnatd_s.
2645         (In_Task_Body): New routine.
2646         (Is_Potential_Scenario): Code cleanup. Stop the traversal of a task
2647         body when the current construct denotes a synchronous suspension call,
2648         and restriction No_Entry_Calls_In_Elaboration_Code or switch -gnatd_s
2649         is in effect.
2650         (Is_Synchronous_Suspension_Call): New routine.
2651         * switch-c.adb (Scan_Front_End_Switches): Switch -gnatJ now sets switch
2652         -gnatd_s.
2654 2018-05-23  Javier Miranda  <miranda@adacore.com>
2656         * exp_disp.adb (Make_DT): Restrict the initialization of
2657         External_Tag and Expanded_Name to an empty string to the case where
2658         both pragmas apply (i.e. No_Tagged_Streams and Discard_Names), since
2659         restricted runtimes are compiled with pragma Discard_Names.
2660         * doc/gnat_rm/implementation_defined_pragmas.rst,
2661         doc/gnat_rm/implementation_defined_characteristics.rst: Add
2662         documentation.
2663         * gnat_rm.texi: Regenerate.
2665 2018-05-23  Maroua Maalej  <maalej@adacore.com>
2667         * sem_spark.adb: Fix of some permission rules of pointers in SPARK.
2669 2018-05-23  Ed Schonberg  <schonberg@adacore.com>
2671         * sem_ch5.adb (Preanalyze_Range): The pre-analysis of the domain of
2672         iteration of an Ada2012 loop is performed to determine the type of the
2673         domain, but full analysis is performed once the loop is rewritten as a
2674         while-loop during expansion. The pre-analysis suppresses expansion; it
2675         must also suppress the generation of freeze nodes, which may otherwise
2676         appear in the wrong scope before rewritting.
2678 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2680         * sem_elab.adb: Update the section on suppressing elaboration warnings.
2682 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2684         * einfo.adb (Is_Elaboration_Checks_OK_Id): Use predicate
2685         Is_Elaboration_Target.
2686         (Is_Elaboration_Target): New routine.
2687         (Is_Elaboration_Warnings_OK_Id): Use predicate Is_Elaboration_Target.
2688         (Set_Is_Elaboration_Checks_OK_Id): Use predicate Is_Elaboration_Target.
2689         (Set_Is_Elaboration_Warnings_OK_Id): Use predicate
2690         Is_Elaboration_Target.
2691         * einfo.ads: Add new synthesized attribute Is_Elaboration_Target along
2692         with occurrences in nodes.
2693         (Is_Elaboration_Target): New routine.
2694         * sem_prag.adb (Analyze_Pragma): Suppress elaboration warnings when an
2695         elaboration target is subject to pragma Warnings (Off, ...).
2697 2018-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2699         * repinfo.adb (List_Type_Info): Remove obsolete stuff.
2701 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2703         * einfo.adb: Flag304 is now Is_Elaboration_Warnings_OK_Id.
2704         (Is_Elaboration_Warnings_OK_Id): New routine.
2705         (Set_Is_Elaboration_Warnings_OK_Id): New routine.
2706         (Write_Entity_Flags): Output Flag304.
2707         * einfo.ads: Add new attribute Is_Elaboration_Warnings_OK_Id along with
2708         occurrences in entities.
2709         (Is_Elaboration_Warnings_OK_Id): New routine along with pragma Inline.
2710         (Set_Is_Elaboration_Warnings_OK_Id): New routine along with pragma
2711         Inline.
2712         * sem_attr.adb (Analyze_Access_Attribute): Capture the state of
2713         elaboration warnings.
2714         * sem_ch3.adb (Analyze_Object_Declaration): Capture the state of
2715         elaboration warnings.
2716         * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Capture the
2717         state of elaboration warnings.
2718         (Analyze_Subprogram_Body_Helper): Capture the state of elaboration
2719         warnings.
2720         (Analyze_Subprogram_Declaration): Capture the state of elaboration
2721         warnings.
2722         * sem_ch9.adb (Analyze_Entry_Declaration): Capture the state of
2723         elaboration warnings.
2724         (Analyze_Single_Task_Declaration): Capture the state of elaboration
2725         warnings.
2726         (Analyze_Task_Type_Declaration): Capture the state of elaboration
2727         warnings.
2728         * sem_ch12.adb (Analyze_Generic_Package_Declaration): Capture the state
2729         of elaboration warnings.
2730         (Analyze_Generic_Subprogram_Declaration): Capture the state of
2731         elaboration warnings.
2732         * sem_elab.adb: Add a section on suppressing elaboration warnings.
2733         Type Processing_Attributes includes component Suppress_Warnings
2734         intended to suppress any elaboration warnings along a path in the
2735         graph.  Update Initial_State to include a value for this component.
2736         Types Target_Attributes and Task_Attriutes include component
2737         Elab_Warnings_OK to indicate whether the target or task has elaboration
2738         warnings enabled.  component Elab_Warnings_OK.
2739         (Build_Access_Marker): Propagate attribute
2740         Is_Elaboration_Warnings_OK_Node from the attribute to the generated
2741         call marker.
2742         (Extract_Instantiation_Attributes): Set the value for Elab_Warnings_OK.
2743         (Extract_Target_Attributes): Set the value for Elab_Warnings_OK.
2744         (Extract_Task_Attributes): Set the value for Elab_Warnings_OK.
2745         (Process_Conditional_ABE_Access): Suppress futher elaboration warnings
2746         when already in this mode or when the attribute or target have warnings
2747         suppressed.
2748         (Process_Conditional_ABE_Activation_Impl): Do not emit any diagnostics
2749         if warnings are suppressed.
2750         (Process_Conditional_ABE_Call): Suppress further elaboration warnings
2751         when already in this mode, or the target or call have warnings
2752         suppressed.
2753         (Process_Conditional_ABE_Call_Ada): Do not emit any diagnostics if
2754         warnings are suppressed.
2755         (Process_Conditional_ABE_Call_SPARK): Do not emit any diagnostics if
2756         warnings are suppressed.
2757         (Process_Conditional_ABE_Instantiation): Suppress further elaboration
2758         warnings when already in this mode or when the instantiation has
2759         warnings suppressed.
2760         (Process_Conditional_ABE_Instantiation_Ada): Do not emit any
2761         diagnostics if warnings are suppressed.
2762         (Process_Conditional_ABE_Variable_Assignment_Ada): Use the more
2763         specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off.
2764         (Process_Conditional_ABE_Variable_Assignment_SPARK): Use the more
2765         specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off.
2766         (Process_Task_Object): Suppress further elaboration warnings when
2767         already in this mode, or when the object, activation call, or task type
2768         have warnings suppressed. Update the processing state to indicate that
2769         the path goes through a task body.
2770         * sinfo.adb (Is_Elaboration_Warnings_OK_Node): Accept attribute
2771         references.
2772         (Set_Is_Elaboration_Warnings_OK_Node): Accept attribute references.
2773         * sinfo.ads: Attribute Is_Elaboration_Warnings_OK_Node now applies to
2774         attribute references.
2776 2018-05-23  Piotr Trojanek  <trojanek@adacore.com>
2778         * einfo.ads: Minor reformatting.
2780 2018-05-23  Ed Schonberg  <schonberg@adacore.com>
2782         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
2783         anonymous_access_to_ subprogram formal, apply a conversion to force an
2784         accsssibility check that will fail statically, enforcing 3.10.2 (13).
2786 2018-05-23  Daniel Mercier  <mercier@adacore.com>
2788         * gnat1drv.adb: Turn off length expansion in CodePeer mode.
2790 2018-05-23  Bob Duff  <duff@adacore.com>
2792         * freeze.adb: (Check_Address_Clause): Deal with build-in-place
2793         aggregates in addition to build-in-place calls.
2795 2018-05-23  Bob Duff  <duff@adacore.com>
2797         * einfo.ads: Minor reformatting.
2798         * sem_ch3.adb: Likewise.
2799         * sinfo.ads: Likewise.
2801 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2803         * exp_ch3.adb (Default_Initialize_Object): Do not optimize scalar array
2804         initialization when the component type has predicates.
2805         * exp_ch4.adb (Expand_N_Allocator): Do not optimize scalar array
2806         allocation when the component type has predicates.
2808 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2810         * einfo.adb, exp_disp.adb, sem_ch3.adb, sem_ch6.adb, sem_prag.adb:
2811         Minor reformatting.
2813 2018-05-22  Justin Squirek  <squirek@adacore.com>
2815         * sem_ch6.adb (Analyze_Expression_Function): Propagate flags from the
2816         original function spec into the generated function spec due to
2817         expansion of expression functions during analysis.
2818         (Analyze_Subprogram_Body_Helper): Modify check on formal parameter
2819         references from the body to the subprogram spec in the case of
2820         expression functions because of inconsistances related to having a
2821         generated body.
2822         * libgnarl/s-osinte__android.ads: Flag parameters as unused.
2823         * libgnarl/s-osinte__lynxos178e.ads: Likewise.
2824         * libgnarl/s-osinte__qnx.adb: Likewise.
2825         * libgnarl/s-osinte__qnx.ads: Likewise.
2827 2018-05-22  Doug Rupp  <rupp@adacore.com>
2829         * init.c (HAVE_ADJUST_CONTEXT_FOR_RAISE): Don't define on VxWorks7 for
2830         AArch64.
2832 2018-05-22  Olivier Hainque  <hainque@adacore.com>
2834         * libgnat/a-except.adb (Exception_Propagation.Propagate_Exception):
2835         Expect an Exception_Occurence object, not an Access.
2836         (Complete_And_Propagate_Occurrence): Adjust accordingly.
2837         (Raise_From_Signal_Handler): Likewise.
2838         (Reraise_Occurrence_No_Defer): If we have a Machine_Occurrence
2839         available in the provided occurrence object, just re-propagate the
2840         latter as a bare "raise;" would do.
2841         * libgnat/a-exexpr.adb (Propagate_Exception): Adjust to spec change.
2842         * libgnat/a-exstat.adb (String_To_EO): Initialize X.Machine_Occurrence
2843         to null, to mark that the occurrence we're crafting from the stream
2844         contents is not being propagated (yet).
2846 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
2848         * exp_aggr.adb (Initialize_Ctrl_Record_Component): Insert the generated
2849         code for a transient component in line with the rest of the
2850         initialization code, rather than before the aggregate. This ensures
2851         that the component has proper visibility of the discriminants.
2853 2018-05-22  Jerome Lambourg  <lambourg@adacore.com>
2855         * adaint.c: Reorganize QNX-specific macros, use syspage to retreive the
2856         number of CPUs.
2858 2018-05-22  Jerome Lambourg  <lambourg@adacore.com>
2860         * sigtramp-qnx.c: Properly restore link register in signal trampoline.
2862 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
2864         * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Strip away any
2865         conversions before extracting the value of the expression.
2866         * exp_ch3.adb (Default_Initialize_Object): Optimize the default
2867         initialization of an array of scalars.
2868         (Get_Simple_Init_Val): Add processing for array types. Remove the
2869         processing of strings because this case is already handled by the array
2870         case.
2871         (Needs_Simple_Initialization): Moved to Sem_Util.
2872         (Simple_Init_Array_Type): New routine.
2873         (Simple_Init_Initialize_Scalars_Type): Reimplemented to use the new
2874         facilities from Sem_Util.
2875         (Simple_Initialization_OK): New routine.
2876         * exp_ch3.ads (Needs_Simple_Initialization): Moved to Sem_Util.
2877         * exp_ch4.adb (Expand_N_Allocator): Optimize the default allocation of
2878         an array of scalars.
2879         * sem_prag.adb (Analyze_Float_Value): New routine.
2880         (Analyze_Integer_Value): New routine.
2881         (Analyze_Pragma): Reimplement the analysis of pragma Initialize_Scalars
2882         to handled the extended form of the pragma.
2883         (Analyze_Type_Value_Pair): New routine.
2884         * sem_util.adb: Add invalid value-related data structures.
2885         (Examine_Array_Bounds): New routine.
2886         (Has_Static_Array_Bounds): Reimplemented.
2887         (Has_Static_Non_Empty_Array_Bounds): New routine.
2888         (Invalid_Scalar_Value): New routine.
2889         (Needs_Simple_Initialization): Moved from Exp_Ch3.
2890         (Set_Invalid_Scalar_Value): New routines.
2891         * sem_util.ads (Has_Static_Non_Empty_Array_Bounds): New routine.
2892         (Invalid_Scalar_Value): New routine.
2893         (Needs_Simple_Initialization): Moved from Exp_Ch3.
2894         (Set_Invalid_Scalar_Value): New routines.
2895         * snames.ads-tmpl: Add names for the salar type families used by pragma
2896         Initialize_Scalars.
2898 2018-05-22  Javier Miranda  <miranda@adacore.com>
2900         * exp_disp.adb (Make_DT): Initialize the External_Tag with an empty
2901         string when pragma No_Tagged_Streams is applicable to the tagged type,
2902         and initialize the Expanded_Name with an empty string when pragma
2903         Discard_Names is applicable to the tagged type.
2905 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
2907         * sem_ch6.adb (Check_Conformance): Add RM reference for rule that a
2908         formal subprogram is never subtype conformqnt, and thus cannot be the
2909         prefix of 'Access.  Reject as well the attribute when applied to a
2910         renaming of a formal subprogram.
2912 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
2914         * exp_ch3.adb (Build_Array_Init_Proc): Update the call to
2915         Needs_Simple_Initialization.
2916         (Build_Init_Statements): Update the call to Get_Simple_Init_Val.
2917         (Check_Subtype_Bounds): Renamed to Extract_Subtype_Bounds. Update the
2918         profile and comment on usage.
2919         (Default_Initialize_Object): Do not use New_Copy_Tree to set the proper
2920         Sloc of a value obtained from aspect Default_Value because this could
2921         potentially replicate large trees. The proper Sloc is now set in
2922         Get_Simple_Init_Val.
2923         (Get_Simple_Init_Val): Reorganized by breaking the various cases into
2924         separate routines. Eliminate the use of global variables.
2925         (Init_Component): Update the call to Get_Simple_Init_Val.
2926         (Needs_Simple_Initialization): Update the parameter profile and all
2927         uses of T.
2928         (Simple_Init_Defaulted_Type): Copy the value of aspect Default_Value
2929         and set the proper Sloc.
2930         * exp_ch3.ads (Get_Simple_Init_Val): Update the parameter profile and
2931         comment on usage.
2932         (Needs_Simple_Initialization): Update the parameter profile.
2934 2018-05-22  Patrick Bernardi  <bernardi@adacore.com>
2936         * sem_ch3.adb (Build_Discriminant_Constraints): Raise an error if the
2937         user tries to use a subtype indication as a discriminant constraint.
2939 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
2941         * exp_ch4.ads, exp_ch4.adb, exp_util.adb, expander.adb: Remove mention
2942         of N_Reduction_Expression and N_Reduction_Expression_Parameter.
2943         * par-ch4.adb: Remove parsing routines for reduction expressions.
2944         * sem.adb, sinfo.ads, sinfo.adb, sem_ch4.ads, sem_ch4.adb, sem_res.adb,
2945         sem_spark.adb, sprint.adb: Remove analysis routines for reduction
2946         expressions.
2948 2018-05-22  Arnaud Charlet  <charlet@adacore.com>
2950         * sem_ch8.adb (Check_Frozen_Renaming): Do not emit error in
2951         Relaxed_RM_Semantics mode.
2953 2018-05-22  Arnaud Charlet  <charlet@adacore.com>
2955         * comperr.adb (Delete_SCIL_Files): Take into account
2956         N_Generic_Package_Renaming_Declaration.
2958 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
2960         * sem_ch3.adb (Search_Derivation_Levels): Whenever a parent type is
2961         private, use the full view if available, because it may include renamed
2962         discriminants whose values are stored in the corresponding
2963         Stored_Constraint.
2965 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
2967         * einfo.ads, einfo.adb: New attribute Hidden_In_Formal_Instance,
2968         defined on packages that are actuals for formal packages, in order to
2969         set/reset the visibility of the formals of a formal package with given
2970         actuals, when there are subsequent uses of those formals in the
2971         enclosing generic, as required by RN 12.7 (10).
2972         * atree.ads, atree.adb: Add operations for Elist30.
2973         * atree.h: Add Elist30.
2974         * sem_ch12.adb (Analyze_Formal_Package_Instantiation): Collect formals
2975         that are not defaulted and are thus not visible within the current
2976         instance.
2977         (Check_Formal_Packages): Reset visibility of formals of a formal
2978         package that are not defaulted, on exit from current instance.
2980 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
2982         * sem_prag.adb (Analyze_Input_Output): Emit an error when a non-null,
2983         non-'Result output appears in the output list of a function.
2985 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
2987         * exp_attr.adb (Build_Array_VS_Func): Reimplemented.
2988         (Build_Record_VS_Func): Reimplemented.
2989         (Expand_N_Attribute): Reimplement the handling of attribute
2990         'Valid_Scalars.
2991         * sem_attr.adb (Analyze_Attribute): Reimplement the handling of
2992         attribute 'Valid_Scalars.
2993         * sem_util.adb (Scalar_Part_Present): Reimplemented.
2994         (Validated_View): New routine.
2995         * sem_util.ads (Scalar_Part_Present): Update the parameter profile and
2996         comment on usage.
2997         (Validated_View): New routine.
2998         * doc/gnat_rm/implementation_defined_attributes.rst: Update the
2999         documentation of attribute 'Valid_Scalars.
3000         * gnat_rm.texi: Regenerate.
3002 2018-05-22  Bob Duff  <duff@adacore.com>
3004         * binde.adb: (Choose): Ignore a pragma Elaborate_Body that appears in
3005         the spec of a SAL_Interface package.
3007 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
3009         * freeze.adb (Freeze_Entity): When analyzing delayed aspects of an
3010         entity E within a generic unit, indicate that there are no remaining
3011         delayed aspects after invoking Analyze_Aspects_At_Freeze_Point. The
3012         entity E is not frozen yet but the aspects should not be reanalyzed at
3013         the freeze point, which may be outside of the generic and may not have
3014         the proper visibility.
3016 2018-05-22  Bob Duff  <duff@adacore.com>
3018         * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
3019         the new --split-line-before-record, --indent-named-statements and
3020         --no-align-modes gnatpp switches.
3022 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
3024         * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Handle properly
3025         a second argument that is a constant of a given string value.
3027 2018-05-22  Doug Rupp  <rupp@adacore.com>
3029         * sigtramp-vxworks-target.inc: Align stack to 128bits on AArch64.
3031 2018-05-22  Jerome Lambourg  <lambourg@adacore.com>
3033         * sigtramp-qnx.c: Fix stack alignment issue in the signal trampoline.
3035 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
3037         * freeze.adb (Freeze_Fixed_Point_Type): If the first subtype has
3038         delayed aspects, analyze them now, os that the representation of the
3039         type (size, bounds) can be computed and validated.
3041 2018-05-22  Olivier Hainque  <hainque@adacore.com>
3043         * libgnat/s-dwalin.adb (Enable_Cache): Skip symbols outside of the
3044         executable code section boundaries.
3046 2018-05-22  Javier Miranda  <miranda@adacore.com>
3048         * locales.c: New implementation for the Ada.Locales package.
3049         * libgnat/a-locale.ads: Remove comment indicating that this is not
3050         implemented.
3051         * doc/gnat_rm/standard_library_routines.rst: Remove comment indicating
3052         that this is not implemented.
3053         * gnat_rm.texi: Regenerate.
3055 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
3057         * exp_ch5.adb, freeze.adb, pprint.adb, sem_ch4.adb, sem_res.adb: Minor
3058         reformattings.
3060 2018-05-22  Justin Squirek  <squirek@adacore.com>
3062         * sem_ch12.adb (In_Same_Declarative_Part): Moved to sem_util.
3063         (Freeze_Subprogram_Body, Install_Body): Modify calls to
3064         In_Same_Declarative_Part.
3065         * sem_prag.adb (Analyze_Pragma-Pragma_Pure_Function): Add check to
3066         verify pragma declaration is within the same declarative list with
3067         corresponding error message.
3068         * sem_util.adb, sem_util.ads (In_Same_Declarative_Part): Moved from
3069         sem_ch12.adb and generalized to be useful outside the scope of
3070         freezing.
3072 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
3074         * sem_ch6.adb (Analyze_Subprogram_Declaration): Set the proper
3075         categorization of the unit after processing the aspects in case one of
3076         its aspects is converted into a categorization pragma.
3078 2018-05-21  Ed Schonberg  <schonberg@adacore.com>
3080         * freeze.adb (Warn_Overlay): Do not emit a wawrning on an object
3081         declaration with an explicit address clause and a type with default
3082         initialization, if the declaration carries an aspect
3083         Suppress_Initialization.
3085 2018-05-21  Daniel Mercier  <mercier@adacore.com>
3087         * pprint.adb: Use mixed case for attribute names.
3089 2018-05-21  Hristian Kirtchev  <kirtchev@adacore.com>
3091         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Rename the call to
3092         Analyze_Aspect_Specifications_On_Body_Or_Stub.
3093         (Analyze_Subprogram_Body_Helper): Rename the calls to
3094         Analyze_Aspect_Specifications_On_Body_Or_Stub.
3095         * sem_ch9.adb (Analyze_Entry_Body): Rename the call to
3096         Analyze_Aspect_Specifications_On_Body_Or_Stub.
3097         * sem_ch10.adb: Add with and use clause for Sem_Ch13.
3098         (Analyze_Package_Body_Stub): Add constant Id. Decorate the package stub
3099         prior to analyzing its aspects.
3100         (Analyze_Protected_Body_Stub): Add constant Id. Decorate the package
3101         stub prior to analyzing its aspects. Save and restore the configuration
3102         switches.
3103         (Analyze_Task_Body_Stub): Add constant Id. Decorate the package stub
3104         prior to analyzing its aspects.
3105         * sem_ch13.adb (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed
3106         to Analyze_Aspects_On_Subprogram_Body_Or_Stub.
3107         * sem_ch13.ads (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed
3108         to Analyze_Aspects_On_Subprogram_Body_Or_Stub.
3109         * sem_prag.adb: Code reformatting.
3110         (Analyze_Refined_Depends_Global_Post): Consider task body stubs.
3112 2018-05-21  Jerome Lambourg  <lambourg@adacore.com>
3114         * gcc-interface/Makefile.in: Add g-soliop__qnx.ads to the runtime build
3115         for QNX.
3117 2018-05-21  Hristian Kirtchev  <kirtchev@adacore.com>
3119         * exp_cg.adb: Remove with and use clause for Exp_Disp.
3120         * exp_ch9.adb: Remove with and use clause for Exp_Disp.
3121         * exp_disp.adb (Is_Predefined_Dispatching_Operation): Moved to Sem_Util.
3122         (Is_Predefined_Interface_Primitive): Moved to Sem_Util.
3123         (Is_Predefined_Internal_Operation): Moved to Sem_Util.
3124         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved to Sem_Util.
3125         (Is_Predefined_Interface_Primitive): Moved to Sem_Util.
3126         (Is_Predefined_Internal_Operation): Moved to Sem_Util.
3127         * exp_dist.adb: Remove with and use clause for Exp_Disp.
3128         * freeze.adb: Remove with and use clause for Exp_Disp.
3129         * sem_cat.adb: Remove with and use clause for Exp_Disp.
3130         * sem_ch6.adb: Remove with and use clause for Exp_Disp.
3131         * sem_ch12.adb: Remove with and use clause for Exp_Disp.
3132         * sem_elab.adb (Check_Overriding_Primitive): Do not process predefined
3133         primitives.
3134         * sem_util.adb: Remove with and use clause for Exp_Disp.
3135         (Is_Predefined_Dispatching_Operation): Moved from Exp_Disp.
3136         (Is_Predefined_Interface_Primitive): Moved from Exp_Disp.
3137         (Is_Predefined_Internal_Operation): Moved from Exp_Disp.
3138         * sem_util.ads (Is_Predefined_Dispatching_Operation): Moved from
3139         Exp_Disp.
3140         (Is_Predefined_Interface_Primitive): Moved from Exp_Disp.
3141         (Is_Predefined_Internal_Operation): Moved from Exp_Disp.
3143 2018-05-21  Ed Schonberg  <schonberg@adacore.com>
3145         * sem_res.adb (Valid_Conversion): Improve error message on an illegal
3146         type conversion whose expression has a limited view of a type.
3148 2018-05-21  Ed Schonberg  <schonberg@adacore.com>
3150         * exp_ch5.adb (Build_Formal_Container_Iteration): If source has
3151         explicit name for iterator loop, preserve that name in expanded
3152         construct, for possible use in exit statements.
3154 2018-05-21  Javier Miranda  <miranda@adacore.com>
3156         * sem_ch4.adb (Analyze_Membership_Op): Avoid compiler crash when the
3157         spec of a unit has Ada 2012 membership tests with multiple choices and
3158         the unit body is not compiled under Ada 2012 mode.
3160 2018-05-21  Doug Rupp  <rupp@adacore.com>
3162         * sigtramp-vxworks-target.inc: Set cfa_reg properly from sigcontext
3163         pregs.
3164         (CFI_COMMON_REGS): Restore LR jic probed from prologue.
3165         (REGNO_PC_OFFSET): Change to correct value for Aarch64.
3167 2018-05-21  Jose Ruiz  <ruiz@adacore.com>
3169         * doc/gnat_ugn/gnat_utility_programs.rst, exp_attr.adb,
3170         libgnarl/s-tassta.adb: Minor typo fixes
3172 2018-05-21  Ed Schonberg  <schonberg@adacore.com>
3174         * sem_ch4.adb (Analyze_One_Call): Recognize complex cases where an
3175         indexed call originally in prefix forn is itself the prefix of a
3176         further call.
3178 2018-05-21  Piotr Trojanek  <trojanek@adacore.com>
3180         * sem_eval.adb (Is_Null_Range): Clarify access to the full view of a
3181         type.
3182         (Not_Null_Range): Same as above.
3184 2018-05-21  Hristian Kirtchev  <kirtchev@adacore.com>
3186         * exp_ch3.adb: Minor reformatting.
3187         * exp_ch6.adb: Likewise.
3188         * freeze.adb: Likewise.
3189         * inline.adb: Likewise.
3190         * sem_util.adb: Likewise.
3192 2018-05-21  Yannick Moy  <moy@adacore.com>
3194         * inline.adb (Expand_Inlined_Call.Process_Formals): Use a type
3195         conversion instead of an unchecked type conversion when inlining a
3196         return statement, unless type qualification is required (for character
3197         and string literal) or no check can result from the conversion (for
3198         access types).
3199         * opt.ads: Update comment.
3201 2018-05-21  Hristian Kirtchev  <kirtchev@adacore.com>
3203         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Install the elaboration
3204         model of the compilation unit spec, if any.
3205         * sem_ch7.adb (Analyze_Package_Body_Helper): Install the elaboration
3206         model of the compilation unit spec, if any.
3207         * sem_ch10.adb (Analyze_Subunit): Install the elaboration model of the
3208         parent compilation unit spec, if any.
3209         * sem_elab.adb (Check_Elaboration_Scenarios): Restore the elaboration
3210         model of the main unit.
3211         (Is_Same_Unit): The routine now uses Unit_Entity.
3212         (Is_Subunit): Removed.
3213         (Normalize_Unit): Removed.
3214         (Unit_Entity): New routine.
3215         * sem_prag.adb (Analyze_Pragma): Reimplement the handling of pragma
3216         Elaboration_Checks. The analysis now ensures that the pragma appears at
3217         the configuration level, and on the initial declaration of a unit.
3218         Other placements are either flagged as illegal, or ignored.
3219         (Check_Duplicate_Elaboration_Checks_Pragma): New routine.
3220         (Ignore_Elaboration_Checks_Pragma): New routine.
3221         * sem_util.adb (Install_Elaboration_Model): New routine.
3222         * sem_util.ads (Install_Elaboration_Model): New routine.
3223         * doc/gnat_rm/implementation_defined_pragmas.rst: Update the
3224         documentation of pragma Elaboration_Checks.
3225         * gnat_rm.texi: Regenerate.
3227 2018-05-21  Olivier Hainque  <hainque@adacore.com>
3229         * libgnat/s-trasym__dwarf.adb (Executable_Name): Return argv[0] instead
3230         of empty string when argv[0] couldn't be found on PATH.
3231         (Enable_Cache): Raise Program_Error instead of attempting a null
3232         pointer dereference when the Exec_Module initialization failed.
3234 2018-05-21  Piotr Trojanek  <trojanek@adacore.com>
3236         * libgnarl/a-reatim.ads (Clock_Time): Remove External aspect.
3237         * libgnarl/a-taside.ads (Tasking_State): Likewise.
3238         * libgnat/a-calend.ads (Clock_Time): Likewise.
3240 2018-05-21  Yannick Moy  <moy@adacore.com>
3242         * sem_ch6.adb (Analyze_Procedure_Call): Refine test to recognize prefix
3243         call notation in inlined call in GNATprove mode.
3245 2018-05-21  Hristian Kirtchev  <kirtchev@adacore.com>
3247         * einfo.adb (Is_External_State): An abstract state is also external
3248         when it is declared with option "synchronous".
3249         * einfo.ads: Update the documentation of synthesized attribute
3250         Is_External_State.
3251         * sem_util.adb (Find_Simple_Properties): New routine.
3252         (Is_Enabled_External_Property): New routine.
3253         (State_Has_Enabled_Property): Reimplemented. The two flavors of option
3254         External have precedence over option Synchronous when determining
3255         whether a property is in effect.
3257 2018-05-21  Yannick Moy  <moy@adacore.com>
3259         * sem_eval.adb (Static_Length): Take into account case of variable of
3260         subtype string literal.
3262 2018-05-21  Olivier Hainque  <hainque@adacore.com>
3264         * libgnat/s-objrea.ads (Get_Memory_Bounds): Rename as Get_Xcode_Bounds.
3265         (Object_Section): Rename Flag_Alloc component as Flag_Xcode.
3266         * libgnat/s-objrea.adb (Get_Xcode_Bounds): Adjust to new subprogram and
3267         component name.
3268         (Get_Section, ELF case): Set Flag_Xcode from SHF_EXECINSTR.
3269         * libgnat/s-dwalin.adb (Open): Adjust to the Get_Memory_Bounds name
3270         change.
3272 2018-05-21  Olivier Hainque  <hainque@adacore.com>
3274         * libgnat/s-dwalin.ads (Dwarf_Context): Change type of Load_Address to
3275         Address, and type of Low, High to Storage_Offset.
3276         (Low): Rename as Low_Address and convey that the return value is a
3277         runtime reference accounting for a load address.
3278         * libgnat/s-dwalin.adb (Read_Aranges_Entry): Adjust to the
3279         address/offset type changes.
3280         (Aranges_Lookup): Likewise.
3281         (Symbolic_Address): Likewise.
3282         (Symbolic_Traceback): Likewise.
3283         (Dump_Cache): Likewise.
3284         (Is_Inside): Likewise.
3285         (Open): Likewise.
3286         (Set_Load_Address): Likewise.
3287         (Low_Address): Likewise, and account for C.Load_Address.
3288         * libgnat/s-trasym__dwarf.adb (Lt): Use Low_Address instead of Low.
3289         (Multi_Module_Symbolic_Traceback): Compare address in traceback
3290         with module Low_Address instead of Low.
3292 2018-05-21  Olivier Hainque  <hainque@adacore.com>
3294         * libgnat/s-dwalin.ads (Dwarf_Context): Rename Load_Slide as
3295         Load_Address.
3296         * libgnat/s-dwalin.adb (Is_Inside): Adjust accordingly.
3297         (Set_Load_Address): Likewise.
3298         (Symbolic_Traceback): Likewise.
3300 2018-05-21  Olivier Hainque  <hainque@adacore.com>
3302         * libgnat/s-trasym__dwarf.adb (Add_Module_To_Cache): Expect a
3303         Load_Address argument and pass it down to Init_Module.
3304         * libgnat/s-tsmona__linux.adb (Build_Cache_For_All_Modules): Pass
3305         lm.l_addr as the Load_Address to Add_Module_To_Cache.
3307 2018-05-21  Piotr Trojanek  <trojanek@adacore.com>
3309         * einfo.adb (Has_Discriminants): Stronger assertion.
3310         (Set_Has_Discriminants): Stronger assertion.
3311         * sem_ch13.adb (Push_Scope_And_Install_Discriminants): Adapt to respect
3312         the stronger assertion on Has_Discriminant.
3313         (Uninstall_Discriminants_And_Pop_Scope): Same as above.
3314         * sem_util.adb (New_Copy_Tree): Same as above.
3315         * sem_ch7.adb (Generate_Parent_References): Prevent calls to
3316         Has_Discriminant on non-type entities that might happen when the
3317         compiled code has errors.
3318         * sem_ch3.adb (Derived_Type_Declaration): Only call
3319         Set_Has_Discriminant on type entities.
3321 2018-05-21  Arnaud Charlet  <charlet@adacore.com>
3323         * exp_unst.adb (Unnest_Subprogram): Unnest all subprograms relevant for
3324         code generation.
3326 2018-05-21  Piotr Trojanek  <trojanek@adacore.com>
3328         * lib.ads: Fix typo in enumeration in comment.
3330 2018-05-21  Ed Schonberg  <schonberg@adacore.com>
3332         * sem_attr.adb (Analyze_Attribute, case Scalar_Storage_Order): The
3333         attribute reference is legal within a generic unit when the prefix is a
3334         formal private type.
3336 2018-05-21  Hristian Kirtchev  <kirtchev@adacore.com>
3338         * exp_ch7.adb (Establish_Transient_Scope): Code cleanup. Do not
3339         delegate the secondary stack management when there is no suitable
3340         transient context, and the transient scope was intended to manage the
3341         secondary stack because this causes premature reclamation. Change the
3342         transient scope creation logic by special casing assignment statements
3343         of controlled components for type initialization procedures.
3344         (Find_Node_To_Be_Wrapped): Renamed to Find_Transient_Context. Update
3345         the comment on usage.
3346         (Find_Transient_Context): Change the initinte loop into a while loop.
3347         Iterations schemes and iterator specifications are not valid transient
3348         contexts because they rely on special processing. Assignment statements
3349         are now treated as a normal transient context, special cases are
3350         handled by the caller. Add special processing for pragma Check.
3351         (Is_OK_Construct): Removed. Its functionality has been merged in
3352         routine Find_Transient_Context.
3353         * sem_ch5.adb (Check_Call): Reimplemented. Add code to properly
3354         retrieve the subprogram being invoked. Use a more accurate predicate
3355         (Requires_Transient_Scope) to determine that the function will emply
3356         the secondary stack.
3358 2018-05-21  Piotr Trojanek  <trojanek@adacore.com>
3360         * ada_get_targ.adb: Fix subprogram body headers.
3361         * adabkend.adb: Likewise.
3362         * checks.adb: Likewise.
3363         * exp_ch3.adb: Likewise.
3364         * exp_ch5.adb: Likewise.
3365         * exp_ch9.adb: Likewise.
3366         * exp_dist.adb: Likewise.
3367         * exp_tss.adb: Likewise.
3368         * inline.adb: Likewise.
3369         * lib-writ.adb: Likewise.
3370         * lib-xref-spark_specific.adb: Likewise.
3371         * libgnarl/s-osinte__darwin.adb: Likewise.
3372         * libgnarl/s-stusta.adb: Likewise.
3373         * libgnarl/s-taprop__solaris.adb: Likewise.
3374         * libgnarl/s-tposen.adb: Likewise.
3375         * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
3376         * libgnarl/s-vxwext__kernel.adb: Likewise.
3377         * libgnat/a-btgbso.adb: Likewise.
3378         * libgnat/a-cfdlli.adb: Likewise.
3379         * libgnat/a-cfhama.adb: Likewise.
3380         * libgnat/a-cfinve.adb: Likewise.
3381         * libgnat/a-cimutr.adb: Likewise.
3382         * libgnat/a-coboho.adb: Likewise.
3383         * libgnat/a-cofove.adb: Likewise.
3384         * libgnat/a-cofuve.adb: Likewise.
3385         * libgnat/a-comutr.adb: Likewise.
3386         * libgnat/a-exexda.adb: Likewise.
3387         * libgnat/a-tags.adb: Likewise.
3388         * libgnat/a-tideau.adb: Likewise.
3389         * libgnat/a-wtdeau.adb: Likewise.
3390         * libgnat/a-ztdeau.adb: Likewise.
3391         * libgnat/g-alleve.adb: Likewise.
3392         * libgnat/s-excdeb.adb: Likewise.
3393         * libgnat/s-parint.adb: Likewise.
3394         * libgnat/s-shasto.adb: Likewise.
3395         * libgnat/s-traceb__hpux.adb: Likewise.
3396         * prepcomp.adb: Likewise.
3397         * sem_ch4.adb: Likewise.
3398         * sem_ch6.adb: Likewise.
3399         * sem_dist.adb: Likewise.
3400         * sem_prag.adb: Likewise.
3401         * sem_util.adb: Likewise.
3402         * sinfo.adb: Likewise.
3403         * switch.adb: Likewise.
3405 2018-05-04  John Marino  <gnugcc@marino.st>
3407         PR ada/85635
3408         * link.c (BSD platforms): Add missing backslash.
3410 2018-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3412         PR ada/85540
3413         * init.c (__gnat_handle_vms_condition): Add missing parentheses.
3415 2018-04-25  Eric Botcazou  <ebotcazou@adacore.com>
3417         PR ada/85007
3418         * gnat_ugn.texi: Regenerate.
3420 2018-03-23  Eric Botcazou  <ebotcazou@adacore.com>
3422         PR ada/85007
3423         * gnatlink.adb (Gnatlink): Remove handling of -b switch.
3424         * doc/gnat_ugn/building_executable_programs_with_gnat.rst (gnatlink):
3425         Remove documentation of -b switch.
3427 2018-03-23  Eric Botcazou  <ebotcazou@adacore.com>
3429         PR ada/85036
3430         * gnatlink.adb (Process_Args): Drop existing link switches if multiple
3431         switches are passed for --LINK.
3433 2018-03-12  Eric Botcazou  <ebotcazou@adacore.com>
3435         PR ada/82813
3436         * gcc-interface/misc.c (gnat_post_options): Disable string overflow
3437         warnings.
3439 2018-03-10  Eric Botcazou  <ebotcazou@adacore.com>
3441         * gcc-interface/trans.c (node_has_volatile_full_access) <N_Identifier>:
3442         Consider only entities for objects.
3444 2018-03-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3446         * gcc-interface/Makefile.in (OSCONS_CPP): Remove redundant
3447         $(GNATLIBCFLAGS).
3448         (OSCONS_EXTRACT): Add $(GNATLIBCFLAGS_FOR_C).
3450 2018-03-06  Eric Botcazou  <ebotcazou@adacore.com>
3452         * gcc-interface/trans.c (convert_with_check): Fix typo in the condition
3453         guarding the overflow check emitted for the upper bound of a floating-
3454         point conversion.
3456 2018-03-06  Eric Botcazou  <ebotcazou@adacore.com>
3458         * gcc-interface/utils.c (def_builtin_1): Bail out on error_mark_node.
3460 2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
3462         * libgnat/i-cexten.ads (Float_128): New type.
3464 2018-02-02  Eric Botcazou  <ebotcazou@adacore.com>
3466         * gcc-interface/decl.c (array_type_has_nonaliased_component): Return
3467         false if the component type is a pointer.
3469 2018-01-11  Gary Dismukes  <dismukes@adacore.com>
3471         * exp_ch3.adb (Default_Initialize_Object): Call New_Copy_Tree on the
3472         result of Get_Simple_Init_Value and pass the source location of the
3473         object declaration's object_definition.
3475 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3477         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Handle
3478         properly object declarations with initializations that are
3479         build-in-place function calls, when there is an address specification,
3480         either as an aspect specification or an explicit attribute
3481         specification clause, for the initialized object.
3482         * freeze.adb (Check_Address_Clause): Do not remove side-effects from
3483         initial expressions in the case of a build-in-place call.
3485 2018-01-11  Piotr Trojanek  <trojanek@adacore.com>
3487         * sem_eval.adb (Is_Null_Range): Retrieve the full view when called on a
3488         private (sub)type; refactor to avoid early return statement.
3489         (Not_Null_Range): Same as above.
3491 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3493         * freeze.adb (Freeze_Entity): Ensure that a Ghost type is not
3494         concurrent, nor effectively volatile.
3495         * ghost.adb (Check_Ghost_Type): New routine.
3496         * ghost.ads (Check_Ghost_Type): New routine.
3497         * sem_util.adb (Is_Declaration): Reimplemented. The routine can now
3498         consider specific subsets of declarations.
3499         (Is_Declaration_Other_Than_Renaming): Removed. Its functionality is
3500         replicated by Is_Declaration.
3501         * sem_util.ads (Is_Declaration): New parameter profile. Update the
3502         comment on usage.
3503         (Is_Declaration_Other_Than_Renaming): Removed.
3505 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3507         * sem_ch5.adb (Analyze_Assignment): Assignments to variables that act
3508         as Part_Of consituents of single protected types are illegal when they
3509         take place inside a protected function.
3510         (Diagnose_Non_Variable_Lhs): Use Within_Function to check for an
3511         enclosing function.
3512         (Is_Protected_Part_Of_Constituent): New routine.
3513         (Within_Function): New routine.
3515 2018-01-11  Arnaud Charlet  <charlet@adacore.com>
3517         Bump copyright notices to 2018.
3519 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3521         * binde.adb, par-ch6.adb, par-ch9.adb, sem_ch12.adb, sem_ch13.adb:
3522         Minor reformatting.
3524 2018-01-11  Justin Squirek  <squirek@adacore.com>
3526         * par-ch6.adb (Scan_Body_Or_Expression_Function): Add additional check
3527         to make sure a given expression function is properly parenthesized.
3529 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3531         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Check the
3532         categorization of a subprogram body which does not complete a previous
3533         declaration.
3535 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3537         * sem_ch10.adb (Check_Private_Child_Unit): Ensure that the enclosing
3538         scope of package Ada is Standard.
3540 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3542         * sem_ch13.adb (Replace_Type_Ref): Handle properly reference to a
3543         subcomponent of the current entity when building the body for a dynamic
3544         predicate function for a record with composite subcomponents.
3546 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3548         * exp_aggr.adb (Convert_Aggr_In_Object_Decl): Update the call to
3549         Establish_Transient_Scope.
3550         (Convert_To_Assignments): Update the call to Establish_Transient_Scope.
3551         (Expand_Array_Aggregate): Update the call to Establish_Transient_Scope.
3552         * exp_ch6.adb (Expand_Call_Helper): Update the call to
3553         Establish_Transient_Scope.
3554         (Make_Build_In_Place_Call_In_Object_Declaration): Update the call to
3555         Establish_Transient_Scope.
3556         * exp_ch7.adb (Establish_Transient_Scope): Restructured. Delegate the
3557         management of the secondary stack to an enclosing scope if there is no
3558         suitable construct to wrap, and the transient scope was intended to
3559         manage the secondary stack.
3560         (Find_Node_To_Be_Wrapped): Restructured. A case_statement_alternative
3561         is a valid boundary for a transient expression which comes from the
3562         statements of the alternative, otherwise alternatives cannot be
3563         wrapped. Assignments of controlled objects which have controlled
3564         actions suppressed now stop the traversal as there is no point in
3565         looking for an enclosing construct. Add several N_xxx_Body choices to
3566         the termination conditions for completeness.
3567         * exp_ch7.ads (Establish_Transient_Scope): Update the parameter profile
3568         and the associated comment on usage.
3569         * exp_smem.adb (Add_Shared_Var_Lock_Procs): Update the call to
3570         Establish_Transient_Scope.
3571         (Add_Write_After): Update the call to Establish_Transient_Scope.
3572         * sem_res.adb (Check_Initialization_Call): Removed.
3573         (Resolve_Actuals): Account for additional cases where finalization
3574         actions are required by utilizing predicate Needs_Finalization rather
3575         than Is_Controlled.
3576         (Resolve_Call): Type initialization procedures can now utilize
3577         transient scopes to manage the secondary stack, thus preventing leaks
3578         during initialization.  Remove the previous kludgy algorithm which
3579         attempts to manage the secondary stack at the object creation site.
3581 2018-01-11  Jerome Lambourg  <lambourg@adacore.com>
3583         * libgnat/g-soliop__qnx.ads: New.
3584         * adaint.c, adaint.h, cstreams.c, s-oscons-tmplt.c, sysdep.c: Update
3585         for QNX.
3587 2018-01-11  Bob Duff  <duff@adacore.com>
3589         * par-ch9.adb (P_Protected_Operation_Declaration_Opt): Give an error if
3590         a null procedure occurs in a protected definition.
3592 2018-01-11  Bob Duff  <duff@adacore.com>
3594         * binderr.ads, namet.ads: Minor reformatting.
3596 2018-01-11  Bob Duff  <duff@adacore.com>
3598         * doc/gnat_ugn/gnat_utility_programs.rst: Improve documentation of
3599         xml2gnat.
3601 2018-01-11  Bob Duff  <duff@adacore.com>
3603         * binde.adb (Force_Elab_Order): Give an error if there are duplicate
3604         unit names.
3606 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3608         * sem_ch6.adb (Freeze_Expr_Types): If an access value is the
3609         controlling argument of a dispatching call. freeze the corresponding
3610         designated type.
3612 2018-01-11  Ben Brosgol  <brosgol@adacore.com>
3614         * doc/Makefile: Add Sphinx option -W to treat warnings as errors.
3616 2018-01-11  Ben Brosgol  <brosgol@adacore.com>
3618         * doc/gnat_rm/implementation_defined_aspects.rst: Minor type/wording
3619         corrections.
3620         * gnat_rm.texi: Regenerate.
3622 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3624         * sem_ch12.adb (Check_Fixed_Point_Type): Do not apply check if the
3625         formsl type corresponding to the actual fixed point type is private,
3626         because in this case there can be no suspicious arithmetic operations
3627         in the generic unless they reference a formal subprogram.  Clarify
3628         warning.
3630 2018-01-11  Javier Miranda  <miranda@adacore.com>
3632         * exp_util.adb (Remove_Side_Effects): No action done for functions
3633         returning class-wide types since it requires generating code using
3634         'reference and the CCG target has no secondary stack.
3635         * gnat1drv.adb: Disable building static dispatch tables when generating
3636         C code.
3638 2018-01-11  Piotr Trojanek  <trojanek@adacore.com>
3640         * libgnat/a-direio.ads, libgnat/a-sequio.ads, libgnat/a-ststio.ads,
3641         libgnat/a-textio.ads, libgnat/a-witeio.ads, libgnat/a-ztexio.ads
3642         (File_Type): Add Default_Initial_Condition aspect.
3644 2018-01-11  Pascal Obry  <obry@adacore.com>
3646         * libgnat/s-os_lib.adb (Normalize_Pathname): New implementation.
3648 2018-01-11  Bob Duff  <duff@adacore.com>
3650         * doc/gnat_ugn/gnat_utility_programs.rst: Rewrite gnatpp documentation
3651         to match what the Libadalang-based version does.
3652         * doc/gnat_ugn/about_this_guide.rst: Update reference.
3654 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3656         * sem_res.adb (Uses_SS): A controlled type requires the secondary stack
3657         if it contains at least one component declaration employing a function
3658         call returning on the secondary stack.
3660 2018-01-11  Yannick Moy  <moy@adacore.com>
3662         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
3663         Update description of restriction SPARK_05 with SPARK 2014.
3664         * gnat_rm.texi: Regenerate.
3666 2018-01-11  Vasiliy Fofanov  <fofanov@adacore.com>
3668         * doc/gnat_ugn/gnat_utility_programs.rst: Fix layout.
3670 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3672         * exp_aggr.adb, exp_ch9.adb, exp_util.adb, sem_aggr.adb, sem_ch3.adb,
3673         sem_res.adb, sem_util.adb: Minor reformatting.
3675 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3677         * sem_prag.adb (Analyze_Pragma, case Predicate): Indicate that the type
3678         has a delayed aspect which must be processed at the point the type is
3679         frozen. This mimics what is done when the predicate is provided by a
3680         source aspect.
3682 2018-01-11  Doug Rupp  <rupp@adacore.com>
3684         * init.c (vxworks): Add macro checks for __aarch64__.
3686 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3688         * exp_util.adb (Add_Failure_Expression): New routine.
3689         (Make_Predicate_Check): Reimplement the handling of Predicate_Failure.
3690         * sem_util.adb (Is_Current_Instance): Code cleanup.
3692 2018-01-11  Patrick Bernardi  <bernardi@adacore.com>
3694         * libgnat/s-parame*.adb, libgnat/s-parame*.ads: Remove unneeded
3695         Default_Sec_Stack_Size.
3696         * libgnat/s-secsta.adb (SS_Allocate): Handle the fixed secondary stack
3697         limit check so that the integer index does not overflow. Check the
3698         dynamic stack allocation does not cause the secondary stack pointer to
3699         overflow.
3700         (SS_Info): Align colons.
3701         (SS_Init): Cover the case when bootstraping with an old compiler that
3702         does not set Default_SS_Size.
3704 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3706         * sem_ch3.adb (Add_Internal_Interface_Entities): When checking the
3707         legality of an inherited operation that may require overriding, ignore
3708         primitive_wrappers that correspond to explicit operations that override
3709         an interface primitive.
3710         * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity): If the
3711         operation to which the class-wide expression applies is a protected op.
3712         with a primitive_wrapper, verify that the updated inherited expression
3713         does not contain an internal call to a protected function.  This
3714         completes the implementation of AI12-0166.
3716 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3718         * ali.adb: Document the remaining letters available for ALI lines.
3719         (Scan_ALI): A with clause is internal when it is encoded on a 'Z' line.
3720         * ali.ads: Update type With_Record. Field
3721         Implicit_With_From_Instantiation is no longer in use. Add field
3722         Implicit_With.
3723         * csinfo.adb (CSinfo): Remove the setup for attribute
3724         Implicit_With_From_Instantiation.
3725         * lib-writ.adb (Collect_Withs): Correct the logic which marks a unit as
3726         either implicitly or explicitly withed.
3727         (Is_Implicit_With_Clause): New routine.
3728         (Write_ALI): Rename array Implicit_With to Has_Implicit_With to avoid
3729         confusion with the with clause attribute by the same name.
3730         (Write_With_Lines): Update the emission of 'W', 'Y', and 'Z' headers.
3731         * rtsfind.adb (Maybe_Add_With): Code cleanup.
3732         * sem_ch8.adb (Present_System_Aux): Code cleanup.
3733         * sem_ch10.adb (Expand_With_Clause): Mark the with clause as generated
3734         for a parent unit.
3735         (Implicit_With_On_Parent): Mark the with clause as generated for a
3736         parent unit.
3737         * sem_ch12.adb (Inherit_Context): With clauses inherited by an
3738         instantiation are no longer marked as Implicit_With_From_Instantiation
3739         because they are already marked as implicit.
3740         * sem_elab.adb (Ensure_Prior_Elaboration_Static): Remove the kludge
3741         which marks implicit with clauses as related to an instantiation.
3742         * sinfo.adb (Implicit_With_From_Instantiation): Removed.
3743         (Parent_With): New routine.
3744         (Set_Implicit_With_From_Instantiation): Removed.
3745         (Set_Parent_With): New routine.
3746         * sinfo.ads: Update the documentation of attribute Implicit_With.
3747         Remove attribute Implicit_With_From_Instantiation along with
3748         occurrences in nodes.  Add attribute Parent_With along with occurrences
3749         in nodes.
3750         (Implicit_With_From_Instantiation): Removed along with pragma Inline.
3751         (Parent_With): New routine along with pragma Inline.
3752         (Set_Implicit_With_From_Instantiation): Removed along with pragma Inline.
3753         (Set_Parent_With): New routine along with pragma Inline.
3755 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3757         * sem_util.adb (Find_Enclosing_Scope): Return the unique defining
3758         entity when the enclosing construct is a body.
3760 2018-01-11  Patrick Bernardi  <bernardi@adacore.com>
3762         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Simplified
3763         Secondary_Stack_Size handling as a pragma is now generated for the
3764         corresponding aspect instead of an attribute.  Pragma expression is
3765         relocated instead of evaluated. Discriminant of the corresponding
3766         record type is referenced rather than the type discriminant.
3767         (Create_Secondary_Stack_For_Task, Make_Task_Create_Call): Update
3768         Secondary_Stack_Size rep item checks to only look for the pragma rep.
3769         * sem_ch13.adb (Analyze_One_Aspect): Transform
3770         Aspect_Secondary_Stack_Size into a pragma instead of an attribute
3771         because the attribute does not have visibility on a task type's
3772         discriminants when the type's definition is expanded.
3773         (Analyze_Attribute_Definition_Clause): Remove handling of
3774         Attribute_Secondary_Stack_Size.
3775         * snames.adb-tmpl, snames.ads-tmpl: Remove
3776         Attribute_Secondary_Stack_Size, no longer used.
3778 2018-01-11  Justin Squirek  <squirek@adacore.com>
3780         * sem_ch8.adb: Minor comment fix.
3782 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3784         * exp_ch4.adb (Process_Action): Do not abandon the inspection of an
3785         individual action because the action may denote a complex expression,
3786         such as a case statement, which in turn may contain additional
3787         transient objects.
3789 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3791         * sem_aggr.adb (Resolve_Iterated_Component_Association): Perform
3792         analysis on a copy of the expression with a copy of the index variable,
3793         because full expansion will rewrite construct into a loop with the
3794         original loop variable.
3795         * exp_aggr.adb (Gen_Assign): Defer analysis and resolution if the
3796         expression is an iterated component association. Full analysis takes
3797         place when construct is rewritten as a loop.
3798         (In_Place_Assign_OK, Safe_Component): An iterated_component_association
3799         is not safe for in-place assignment.
3800         * sem_util.adb (Remove_Entity): Handle properly the case of an isolated
3801         entity with no homonym and no other entity in the scope.
3803 2018-01-11  Justin Squirek  <squirek@adacore.com>
3805         * sem_prag.adb (Analyze_Pragma:Pragma_Loop_Variant): Modify error
3806         message to be printed on the pragma argument identifier.
3808 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3810         * exp_util.adb (Build_Invariant_Procedure_Declaration): Set the last
3811         entity of the generated invariant procedure in order to construct a
3812         proper entity chain.
3814 2018-01-11  Piotr Trojanek  <trojanek@adacore.com>
3816         * sem_ch13.adb (Build_Predicate_Functions): Fix minor issues in
3817         comment.
3819 2018-01-11  Arnaud Charlet  <charlet@adacore.com>
3821         * einfo.ads, einfo.adb (Activation_Record_Component,
3822         Set_Activation_Record_Component, Set_Is_Uplevel_Referenced_Entity):
3823         Allow E_Discriminant.
3825 2018-01-10  Eric Botcazou  <ebotcazou@adacore.com>
3827         * gcc-interface/decl.c (gnat_to_gnu_component_type): Apply the check
3828         for atomic access once the component size is taken into account and
3829         also do it if the component type is Atomic or Volatile_Full_Access.
3831 2018-01-04  Eric Botcazou  <ebotcazou@adacore.com>
3833         * gnatvsn.ads: Bump copyright year.
3835 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
3836             Alan Hayward  <alan.hayward@arm.com>
3837             David Sherwood  <david.sherwood@arm.com>
3839         * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_BITSIZE
3840         as polynomial.
3842 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
3843             Alan Hayward  <alan.hayward@arm.com>
3844             David Sherwood  <david.sherwood@arm.com>
3846         * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_PRECISION
3847         as polynomial.
3849 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
3850             Alan Hayward  <alan.hayward@arm.com>
3851             David Sherwood  <david.sherwood@arm.com>
3853         * gcc-interface/utils.c (gnat_types_compatible_p): Handle
3854         polynomial TYPE_VECTOR_SUBPARTS.
3856 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
3857             Alan Hayward  <alan.hayward@arm.com>
3858             David Sherwood  <david.sherwood@arm.com>
3860         * gcc-interface/misc.c (enumerate_modes): Handle polynomial
3861         GET_MODE_NUNITS.
3863 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
3865         Update copyright years.
3867         * gnat_ugn.texi: Bump @copying's copyright year.
3868         * gnat_rm.texi: Likewise.
3870 Copyright (C) 2018 Free Software Foundation, Inc.
3872 Copying and distribution of this file, with or without modification,
3873 are permitted in any medium without royalty provided the copyright
3874 notice and this notice are preserved.